private void fillTagBounds(long tagStart) { long[] offset = new long[] { tagStart }; while (offset[0] < dumpBuffer.capacity()) { long start = offset[0]; int tag = readTag(offset); TagBounds bounds = tagBounds[tag]; long end = offset[0]; if (bounds == null) { TagBounds newBounds; if (tag == LOAD_CLASS) { newBounds = new LoadClassSegment(this, start, end); } else if (tag == STRING) { newBounds = new StringSegment(this, start, end); } else if (tag == STACK_TRACE) { newBounds = new StackTraceSegment(this, start, end); } else if (tag == STACK_FRAME) { newBounds = new StackFrameSegment(this, start, end); } else { newBounds = new TagBounds(tag, start, end); } tagBounds[tag] = newBounds; } else { bounds.endOffset = end; } } }
private void fillTagBounds(long tagStart) { long[] offset = new long[] { tagStart }; while (offset[0] < dumpBuffer.capacity()) { long start = offset[0]; int tag = readTag(offset); TagBounds bounds = tagBounds[tag]; long end = offset[0]; if (bounds == null) { TagBounds newBounds; if (tag == LOAD_CLASS) { newBounds = new LoadClassSegment(this, start, end); } else if (tag == STRING) { newBounds = new StringSegment(this, start, end); } else if (tag == STACK_TRACE) { newBounds = new StackTraceSegment(this, start, end); } else if (tag == STACK_FRAME) { newBounds = new StackFrameSegment(this, start, end); } else { newBounds = new TagBounds(tag, start, end); } tagBounds[tag] = newBounds; } else { bounds.endOffset = end; } } }
private void fillTagBounds(long tagStart) { long[] offset = new long[] { tagStart }; while (offset[0] < dumpBuffer.capacity()) { long start = offset[0]; int tag = readTag(offset); TagBounds bounds = tagBounds[tag]; long end = offset[0]; if (bounds == null) { TagBounds newBounds; if (tag == LOAD_CLASS) { newBounds = new LoadClassSegment(this, start, end); } else if (tag == STRING) { newBounds = new StringSegment(this, start, end); } else if (tag == STACK_TRACE) { newBounds = new StackTraceSegment(this, start, end); } else if (tag == STACK_FRAME) { newBounds = new StackFrameSegment(this, start, end); } else { newBounds = new TagBounds(tag, start, end); } tagBounds[tag] = newBounds; } else { bounds.endOffset = end; } } }