Class LineNumberTableWriter
java.lang.Object
com.ibm.wala.shrike.shrikeCT.ClassWriter.Element
com.ibm.wala.shrike.shrikeCT.LineNumberTableWriter
This class helps emit LineNumberTable attributes.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintcopyInto(byte[] buf, int offset) Copy the bytes into 'buf' at offset 'offset'.intgetSize()static int[]makeRawTable(int[] newLineMap) voidsetRawTable(int[] table) Set the raw table entries.
-
Constructor Details
-
LineNumberTableWriter
Build an empty LineNumberTable.- Throws:
IllegalArgumentException- if w is null
-
-
Method Details
-
setRawTable
public void setRawTable(int[] table) Set the raw table entries. Consider calling LineNumberTableWriter.makeRawTable to build the raw entries.- Parameters:
table- a flattened sequence of (startPC, lineNumber) pairs
-
getSize
public int getSize()- Specified by:
getSizein classClassWriter.Element- Returns:
- the number of bytes that will be generated.
-
copyInto
Description copied from class:ClassWriter.ElementCopy the bytes into 'buf' at offset 'offset'.- Specified by:
copyIntoin classClassWriter.Element- Returns:
- the number of bytes copies, which must be equal to getSize()
- Throws:
IllegalArgumentException
-
makeRawTable
- Parameters:
newLineMap- an array indexed by bytecode offset, mapping each bytecode offset to its line number (or 0 if there is no line or it's not known)- Returns:
- the line numbers in "raw" format, a flattened sequence of (startPC, lineNumber) pairs
- Throws:
IllegalArgumentException- if newLineMap == null
-