Corrected test failures. Changed Composite and Pointer toString

implementations to dump components using getName() instead of
getDisplayName() which lacks sufficient details.
This commit is contained in:
ghidra1 2020-02-24 10:58:39 -05:00
parent 9c1fc2514b
commit 38898b91b9
10 changed files with 57 additions and 42 deletions

View file

@ -672,7 +672,7 @@ abstract class CompositeDB extends DataTypeDB implements Composite {
for (DataTypeComponent dtc : getComponents()) {
DataType dataType = dtc.getDataType();
buffer.append(pad + dtc.getOffset());
buffer.append(pad + dataType.getDisplayName());
buffer.append(pad + dataType.getName());
if (dataType instanceof BitFieldDataType) {
BitFieldDataType bfDt = (BitFieldDataType) dataType;
buffer.append("(");

View file

@ -460,7 +460,7 @@ class DataTypeComponentDB implements InternalDataTypeComponent {
buffer.append(" " + getOrdinal());
buffer.append(" " + getOffset());
DataType dt = getDataType();
buffer.append(" " + dt.getDisplayName());
buffer.append(" " + dt.getName());
if (isFlexibleArrayComponent) {
buffer.append("[0]");
}

View file

@ -66,21 +66,19 @@ class PointerDB extends DataTypeDB implements Pointer {
@Override
protected String doGetName() {
String pointerName = PointerDataType.POINTER_NAME;
DataType dt = getDataType();
int storedLen = record.getByteValue(PointerDBAdapter.PTR_LENGTH_COL); // -1 indicates default size
// -1 length indicates default size from data organization
int storedLen = record.getByteValue(PointerDBAdapter.PTR_LENGTH_COL);
String lenStr = storedLen > 0 ? Integer.toString(storedLen * 8) : "";
if (dt == null) {
if (storedLen > 0) {
pointerName += Integer.toString(storedLen * 8);
}
return PointerDataType.POINTER_NAME + lenStr;
}
else {
pointerName = dt.getName() + " *";
if (storedLen > 0) {
pointerName += Integer.toString(storedLen * 8);
}
}
return pointerName;
return dt.getName() + " *" + lenStr;
}
@Override
public String toString() {
return getName(); // always include pointer length
}
@Override
@ -137,6 +135,7 @@ class PointerDB extends DataTypeDB implements Pointer {
@Override
public String getDisplayName() {
// NOTE: Pointer display name only specifies length if null base type
validate(lock);
String localDisplayName = displayName;
if (localDisplayName == null) {

View file

@ -380,7 +380,7 @@ public abstract class CompositeDataTypeImpl extends GenericDataType implements C
for (DataTypeComponent dtc : getComponents()) {
DataType dataType = dtc.getDataType();
buffer.append(pad + dtc.getOffset());
buffer.append(pad + dataType.getDisplayName());
buffer.append(pad + dataType.getName());
if (dataType instanceof BitFieldDataType) {
BitFieldDataType bfDt = (BitFieldDataType) dataType;
buffer.append("(");

View file

@ -357,7 +357,7 @@ public class DataTypeComponentImpl implements InternalDataTypeComponent, Seriali
StringBuffer buffer = new StringBuffer();
buffer.append(" " + ordinal);
buffer.append(" " + offset);
buffer.append(" " + dataType.getDisplayName());
buffer.append(" " + dataType.getName());
if (isFlexibleArrayComponent) {
buffer.append("[ ]");
}

View file

@ -253,6 +253,7 @@ public class PointerDataType extends BuiltIn implements Pointer {
@Override
public String getDisplayName() {
// NOTE: Pointer display name only specifies length if null base type
if (displayName == null) {
DataType dt = getDataType();
if (dt == null) {
@ -582,4 +583,9 @@ public class PointerDataType extends BuiltIn implements Pointer {
}
return super.getName();
}
@Override
public String toString() {
return getName(); // always include pointer length
}
}