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; } } }
attributes[i] = new LineNumberTableAttribute(entries); continue;
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; }
attributes[i] = new LineNumberTableAttribute(entries); continue;
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; } } }
attributes[i] = new LineNumberTableAttribute(entries); continue;
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; } } }
return new LineNumberTableAttribute(entries);
for (final LineNumberTableEntry entry : lineNumbersAttribute.getEntries()) { if (entry.getOffset() >= lineNumbers.length) {
return new LineNumberTableAttribute(entries);
for (final LineNumberTableEntry entry : lineNumbersAttribute.getEntries()) { if (entry.getOffset() >= lineNumbers.length) {
return new LineNumberTableAttribute(entries);
for (final LineNumberTableEntry entry : lineNumbersAttribute.getEntries()) { if (entry.getOffset() >= lineNumbers.length) {
return new LineNumberTableAttribute(entries);
return new LineNumberTableAttribute(entries);