Class StringTable
- java.lang.Object
-
- ghidra.app.util.bin.format.dwarf4.next.StringTable
-
public class StringTable extends java.lang.ObjectA offset-to-String string table backed by a simple byte array (encoded as UTF-8).Requested strings are instantiated when requested.
-
-
Constructor Summary
Constructors Constructor Description StringTable(byte[] bytes)Creates a StringTable using the bytes contained in the supplied array.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(int offset, java.lang.String s)Modifies the string table to add a string at a specified offset, growing the internal byte[] storage as necessary to accommodate the string at the offset.voidclear()intgetByteCount()java.lang.StringgetStringAtOffset(long offset)Returns the string found atoffset, or throws anIOExceptionif the offset is out of bounds.booleanisValid(long offset)Returns true if the specified offset is a valid offset for this string table.static StringTablereadStringTable(ByteProvider bp)Create aStringTableby reading the entire contents of aByteProviderinto memory.
-
-
-
Method Detail
-
readStringTable
public static StringTable readStringTable(ByteProvider bp) throws java.io.IOException
Create aStringTableby reading the entire contents of aByteProviderinto memory.If the specified
ByteProvideris null, an empty string table will be constructed.- Parameters:
bp-- Returns:
- Throws:
java.io.IOException
-
isValid
public boolean isValid(long offset)
Returns true if the specified offset is a valid offset for this string table.- Parameters:
offset-- Returns:
-
clear
public void clear()
-
getStringAtOffset
public java.lang.String getStringAtOffset(long offset) throws java.io.IOExceptionReturns the string found atoffset, or throws anIOExceptionif the offset is out of bounds.- Parameters:
offset-- Returns:
- a string, never null.
- Throws:
java.io.IOException- if not found
-
getByteCount
public int getByteCount()
-
add
public void add(int offset, java.lang.String s)Modifies the string table to add a string at a specified offset, growing the internal byte[] storage as necessary to accommodate the string at the offset.Used for unit tests to construct a custom string table for test cases.
- Parameters:
offset- where to place the string in the tables- string to insert into table
-
-