public LineNumberTableConverter(final LineNumberTableAttribute lineNumberTable) { VerifyArgument.notNull(lineNumberTable, "lineNumberTable"); _maxOffset = lineNumberTable.getMaxOffset(); _offset2LineNo = new int[_maxOffset + 1]; Arrays.fill(_offset2LineNo, OffsetToLineNumberConverter.UNKNOWN_LINE_NUMBER); for (final LineNumberTableEntry entry : lineNumberTable.getEntries()) { _offset2LineNo[entry.getOffset()] = entry.getLineNumber(); } // // "Fill in the blanks". Not all offsets from the compiler have line numbers, // so we will assume that offset N has the same line number as (N-1) or (N-2), // etc., looking backward for the most recent line number. // int lastLine = _offset2LineNo[0]; for (int i = 1; i < _maxOffset + 1; i++) { final int thisLine = _offset2LineNo[i]; if (thisLine == OffsetToLineNumberConverter.UNKNOWN_LINE_NUMBER) { _offset2LineNo[i] = lastLine; } else { lastLine = thisLine; } } }
entries[j] = new LineNumberTableEntry( buffer.readUnsignedShort(), buffer.readUnsignedShort()
public LineNumberTableAttribute(final LineNumberTableEntry[] entries) { super(AttributeNames.LineNumberTable, 2 + (VerifyArgument.notNull(entries, "entries").length * 4)); _entries = ArrayUtilities.asUnmodifiableList(entries.clone()); int max = Integer.MIN_VALUE; for (final LineNumberTableEntry entry : entries) { final int offset = entry.getOffset(); if (offset > max) { max = offset; } } _maxOffset = max; }
private static Integer findFirstLineNumber(final TypeDefinition type) { int minLineNumber = Integer.MAX_VALUE; for (final MethodDefinition method : type.getDeclaredMethods()) { final LineNumberTableAttribute attribute = SourceAttribute.find(AttributeNames.LineNumberTable, method.getSourceAttributes()); if (attribute != null && !attribute.getEntries().isEmpty()) { final int firstLineNumber = attribute.getEntries().get(0).getLineNumber(); if (firstLineNumber < minLineNumber) { minLineNumber = firstLineNumber; } } } return minLineNumber; }
entries[j] = new LineNumberTableEntry( buffer.readUnsignedShort(), buffer.readUnsignedShort()
public LineNumberTableAttribute(final LineNumberTableEntry[] entries) { super(AttributeNames.LineNumberTable, 2 + (VerifyArgument.notNull(entries, "entries").length * 4)); _entries = ArrayUtilities.asUnmodifiableList(entries.clone()); int max = Integer.MIN_VALUE; for (final LineNumberTableEntry entry : entries) { final int offset = entry.getOffset(); if (offset > max) { max = offset; } } _maxOffset = max; }
private static Integer findFirstLineNumber(final TypeDefinition type) { int minLineNumber = Integer.MAX_VALUE; for (final MethodDefinition method : type.getDeclaredMethods()) { final LineNumberTableAttribute attribute = SourceAttribute.find(AttributeNames.LineNumberTable, method.getSourceAttributes()); if (attribute != null && !attribute.getEntries().isEmpty()) { final int firstLineNumber = attribute.getEntries().get(0).getLineNumber(); if (firstLineNumber < minLineNumber) { minLineNumber = firstLineNumber; } } } return minLineNumber; }
public LineNumberTableConverter(final LineNumberTableAttribute lineNumberTable) { VerifyArgument.notNull(lineNumberTable, "lineNumberTable"); _maxOffset = lineNumberTable.getMaxOffset(); _offset2LineNo = new int[_maxOffset + 1]; Arrays.fill(_offset2LineNo, OffsetToLineNumberConverter.UNKNOWN_LINE_NUMBER); for (final LineNumberTableEntry entry : lineNumberTable.getEntries()) { _offset2LineNo[entry.getOffset()] = entry.getLineNumber(); } // // "Fill in the blanks". Not all offsets from the compiler have line numbers, // so we will assume that offset N has the same line number as (N-1) or (N-2), // etc., looking backward for the most recent line number. // int lastLine = _offset2LineNo[0]; for (int i = 1; i < _maxOffset + 1; i++) { final int thisLine = _offset2LineNo[i]; if (thisLine == OffsetToLineNumberConverter.UNKNOWN_LINE_NUMBER) { _offset2LineNo[i] = lastLine; } else { lastLine = thisLine; } } }
entries[j] = new LineNumberTableEntry( buffer.readUnsignedShort(), buffer.readUnsignedShort()
public LineNumberTableAttribute(final LineNumberTableEntry[] entries) { super(AttributeNames.LineNumberTable, 2 + (VerifyArgument.notNull(entries, "entries").length * 4)); _entries = ArrayUtilities.asUnmodifiableList(entries.clone()); int max = Integer.MIN_VALUE; for (final LineNumberTableEntry entry : entries) { final int offset = entry.getOffset(); if (offset > max) { max = offset; } } _maxOffset = max; }
private static Integer findFirstLineNumber(final TypeDefinition type) { int minLineNumber = Integer.MAX_VALUE; for (final MethodDefinition method : type.getDeclaredMethods()) { final LineNumberTableAttribute attribute = SourceAttribute.find(AttributeNames.LineNumberTable, method.getSourceAttributes()); if (attribute != null && !attribute.getEntries().isEmpty()) { final int firstLineNumber = attribute.getEntries().get(0).getLineNumber(); if (firstLineNumber < minLineNumber) { minLineNumber = firstLineNumber; } } } return minLineNumber; }
public LineNumberTableConverter(final LineNumberTableAttribute lineNumberTable) { VerifyArgument.notNull(lineNumberTable, "lineNumberTable"); _maxOffset = lineNumberTable.getMaxOffset(); _offset2LineNo = new int[_maxOffset + 1]; Arrays.fill(_offset2LineNo, OffsetToLineNumberConverter.UNKNOWN_LINE_NUMBER); for (final LineNumberTableEntry entry : lineNumberTable.getEntries()) { _offset2LineNo[entry.getOffset()] = entry.getLineNumber(); } // // "Fill in the blanks". Not all offsets from the compiler have line numbers, // so we will assume that offset N has the same line number as (N-1) or (N-2), // etc., looking backward for the most recent line number. // int lastLine = _offset2LineNo[0]; for (int i = 1; i < _maxOffset + 1; i++) { final int thisLine = _offset2LineNo[i]; if (thisLine == OffsetToLineNumberConverter.UNKNOWN_LINE_NUMBER) { _offset2LineNo[i] = lastLine; } else { lastLine = thisLine; } } }
entries[i] = new LineNumberTableEntry( buffer.readUnsignedShort(), buffer.readUnsignedShort()
if (entry.getOffset() >= lineNumbers.length) { lineNumbers = Arrays.copyOf(lineNumbers, entry.getOffset() + 1); lineNumbers[entry.getOffset()] = entry.getLineNumber();
entries[i] = new LineNumberTableEntry( buffer.readUnsignedShort(), buffer.readUnsignedShort()
if (entry.getOffset() >= lineNumbers.length) { lineNumbers = Arrays.copyOf(lineNumbers, entry.getOffset() + 1); lineNumbers[entry.getOffset()] = entry.getLineNumber();
entries[i] = new LineNumberTableEntry( buffer.readUnsignedShort(), buffer.readUnsignedShort()
if (entry.getOffset() >= lineNumbers.length) { lineNumbers = Arrays.copyOf(lineNumbers, entry.getOffset() + 1); lineNumbers[entry.getOffset()] = entry.getLineNumber();
entries[i] = new LineNumberTableEntry( buffer.readUnsignedShort(), buffer.readUnsignedShort()
entries[i] = new LineNumberTableEntry( buffer.readUnsignedShort(), buffer.readUnsignedShort()