public void snapshotChanges ( int originBase , Bytez origin ) { int sumLen = 0 ; for ( int i = 0 ; i < curIndex ; i ++ ) { sumLen += changeLength [ i ] ; } snapshot = new byte [ sumLen ] ; int targetIdx = 0 ; for ( int i = 0 ; i < curIndex ; i ++ ) { int changeOffset = changeOffsets [ i ] ; int len = changeLength [ i ] ; for ( int ii = 0 ; ii < len ; ii ++ ) { snapshot [ targetIdx ++ ] = origin . get ( changeOffset + ii ) ; } } rebase ( originBase ) ; }
collects all changes and rebases .