question: protected void shiftEnd ( int newSize ) { int oldSize = getArrayLength ( ) ; int oldGapEnd = g1 ; int upperSize = oldSize - oldGapEnd ; int arrayLength = getNewArraySize ( newSize ) ; int newGapEnd = arrayLength - upperSize ; resize ( arrayLength ) ; g1 = newGapEnd ; if ( upperSize != 0 ) { System . arraycopy ( array , oldGapEnd , array , newGapEnd , upperSize ) ; } }
target:  Make the gap bigger, moving any necessary data and updating the appropriate marks