private void appendToFragment(byte[] raw, int pos, int len) throws DhtException { while (0 < len) { if (currChunk.free() == 0) { int typeCode = typeOf(currChunkPtr); currChunk.setFragment(); currFragments.add(endChunk(typeCode)); currChunk = openChunk(typeCode); } int n = Math.min(len, currChunk.free()); currChunk.append(raw, pos, n); currPackedSize += n; pos += n; len -= n; } }
private void appendToFragment(byte[] raw, int pos, int len) throws DhtException { while (0 < len) { if (currChunk.free() == 0) { int typeCode = typeOf(currChunkPtr); currChunk.setFragment(); currFragments.add(endChunk(typeCode)); currChunk = openChunk(typeCode); } int n = Math.min(len, currChunk.free()); currChunk.append(raw, pos, n); currPackedSize += n; pos += n; len -= n; } }
boolean ofsDelta(long inflatedSize, long negativeOffset) { final int ofsPtr = encodeVarInt(negativeOffset); final int ofsLen = varIntBuf.length - ofsPtr; if (free() < 10 + ofsLen || maxObjects <= objectsTotal) return false; header(Constants.OBJ_OFS_DELTA, inflatedSize); objectsOfsDelta++; currentObjectType = Constants.OBJ_OFS_DELTA; currentObjectBase = null; if (append(varIntBuf, ofsPtr, ofsLen)) return true; rollback(); return false; }
boolean ofsDelta(long inflatedSize, long negativeOffset) { final int ofsPtr = encodeVarInt(negativeOffset); final int ofsLen = varIntBuf.length - ofsPtr; if (free() < 10 + ofsLen || maxObjects <= objectsTotal) return false; header(Constants.OBJ_OFS_DELTA, inflatedSize); objectsOfsDelta++; currentObjectType = Constants.OBJ_OFS_DELTA; currentObjectBase = null; if (append(varIntBuf, ofsPtr, ofsLen)) return true; rollback(); return false; }
return; if (currChunk.append(raw, pos, len)) { currPackedSize += len; return; case OBJ_REF_DELTA: w.adjustObjectCount(1, typeOld); if (!w.append(dataOld, hdrPos, hdrLen)) throw panicCannotInsert(); break; if (dataPos < dataEnd && !w.append(dataOld, dataPos, dataEnd - dataPos)) throw panicCannotInsert(); dataOld = null; if (w.append(raw, pos, len)) { currPackedSize += len; } else {
return; if (currChunk.append(raw, pos, len)) { currPackedSize += len; return; case OBJ_REF_DELTA: w.adjustObjectCount(1, typeOld); if (!w.append(dataOld, hdrPos, hdrLen)) throw panicCannotInsert(); break; if (dataPos < dataEnd && !w.append(dataOld, dataPos, dataEnd - dataPos)) throw panicCannotInsert(); dataOld = null; if (w.append(raw, pos, len)) { currPackedSize += len; } else {