private void makeRoom(int offsetNeedingRoom, boolean startBefore, int totalDesired) { if (startBefore) { totalDesired = makeRoomBeforeFirst(offsetNeedingRoom, totalDesired); } else { totalDesired = makeRoomAfterFirst(offsetNeedingRoom, totalDesired); } if (totalDesired > 0) { throw new RuntimeException("LocalHeap must be initialized larger for required text of length "+totalDesired); } }
private void makeRoom(int offsetNeedingRoom, boolean startBefore, int totalDesired) { if (startBefore) { totalDesired = makeRoomBeforeFirst(offsetNeedingRoom, totalDesired); } else { totalDesired = makeRoomAfterFirst(offsetNeedingRoom, totalDesired); } if (totalDesired > 0) { throw new RuntimeException("LocalHeap must be initialized larger for required text of length "+totalDesired); } }
private void makeRoom(int offsetNeedingRoom, boolean startBefore, int totalDesired) { if (startBefore) { totalDesired = makeRoomBeforeFirst(offsetNeedingRoom, totalDesired); } else { totalDesired = makeRoomAfterFirst(offsetNeedingRoom, totalDesired); } if (totalDesired > 0) { throw new RuntimeException("LocalHeap must be initialized larger for required text of length "+totalDesired); } }
private void makeSpaceForPrepend(int offset, int textLength) { if (tat[offset] > tat[offset + 1]) { // null or empty string detected so change to simple set tat[offset + 1] = tat[offset]; } int start = tat[offset] - textLength; if (start < 0) { // must move this right first. makeRoomBeforeFirst(offset, textLength); start = tat[offset] - textLength; } if (start < 0) { start = 0; } int limit = offset - 3 < 0 ? 0 : tat[offset - 3]; if (start < limit) { int stop = tat[offset + 4]; int space = stop - limit; int need = tat[offset + 1] - start; if (need > space) { makeRoom(offset, true, need); } // we have some space so just shift the existing data. int len = tat[offset + 1] - tat[offset]; System.arraycopy(data, tat[offset], data, start, len); tat[offset] = start; tat[offset + 1] = start + len; } }
private void makeSpaceForPrepend(int offset, int textLength) { if (tat[offset] > tat[offset + 1]) { // null or empty string detected so change to simple set tat[offset + 1] = tat[offset]; } int start = tat[offset] - textLength; if (start < 0) { // must move this right first. makeRoomBeforeFirst(offset, textLength); start = tat[offset] - textLength; } if (start < 0) { start = 0; } int limit = offset - 3 < 0 ? 0 : tat[offset - 3]; if (start < limit) { int stop = tat[offset + 4]; int space = stop - limit; int need = tat[offset + 1] - start; if (need > space) { makeRoom(offset, true, need); } // we have some space so just shift the existing data. int len = tat[offset + 1] - tat[offset]; System.arraycopy(data, tat[offset], data, start, len); tat[offset] = start; tat[offset + 1] = start + len; } }
private void makeSpaceForPrepend(int offset, int textLength) { if (tat[offset] > tat[offset + 1]) { // null or empty string detected so change to simple set tat[offset + 1] = tat[offset]; } int start = tat[offset] - textLength; if (start < 0) { // must move this right first. makeRoomBeforeFirst(offset, textLength); start = tat[offset] - textLength; } if (start < 0) { start = 0; } int limit = offset - 3 < 0 ? 0 : tat[offset - 3]; if (start < limit) { int stop = tat[offset + 4]; int space = stop - limit; int need = tat[offset + 1] - start; if (need > space) { makeRoom(offset, true, need); } // we have some space so just shift the existing data. int len = tat[offset + 1] - tat[offset]; System.arraycopy(data, tat[offset], data, start, len); tat[offset] = start; tat[offset + 1] = start + len; } }