Attach handling of "this" to ProtoParameter

This commit is contained in:
caheckman 2020-07-24 15:31:08 -04:00
parent bcc0f7fe38
commit 004a99bb87
29 changed files with 338 additions and 149 deletions

View file

@ -29,7 +29,6 @@ src/main/java/ghidra/program/database/package.html||GHIDRA||||END|
src/main/java/ghidra/program/model/address/package.html||GHIDRA||||END|
src/main/java/ghidra/program/model/block/package.html||GHIDRA||||END|
src/main/java/ghidra/program/model/data/package.html||GHIDRA||||END|
src/main/java/ghidra/program/model/graph/package.html||GHIDRA||||END|
src/main/java/ghidra/program/model/lang/package.html||GHIDRA||||END|
src/main/java/ghidra/program/model/listing/package.html||GHIDRA||||END|
src/main/java/ghidra/program/model/mem/package.html||GHIDRA||||END|

View file

@ -228,6 +228,14 @@
</element>
</zeroOrMore>
<zeroOrMore>
<element name="inferptrbounds">
<oneOrMore>
<ref name="range_type"/>
</oneOrMore>
</element>
</zeroOrMore>
<zeroOrMore>
<ref name="segmentop_type"/>
</zeroOrMore>

View file

@ -40,6 +40,14 @@
</element>
</optional>
<zeroOrMore>
<element name="inferptrbounds">
<oneOrMore>
<ref name="range_type"/>
</oneOrMore>
</element>
</zeroOrMore>
<optional>
<element name="segmented_address">
<attribute name="space"/>

View file

@ -653,7 +653,8 @@ public class SleighLanguage implements Language {
XmlElement element = parser.start("processor_spec");
while (!parser.peek().isEnd()) {
element = parser.start("properties", "segmented_address", "segmentop", "programcounter",
"data_space", "context_data", "volatile", "jumpassist", "incidentalcopy",
"data_space", "inferptrbounds", "context_data", "volatile", "jumpassist",
"incidentalcopy",
"register_data", "default_symbols", "default_memory_blocks");
if (element.getName().equals("properties")) {
while (!parser.peek().isEnd()) {
@ -822,6 +823,11 @@ public class SleighLanguage implements Language {
parser.discardSubTree();
}
}
else if (element.getName().equals("inferptrbounds")) {
while (parser.peek().isStart()) {
parser.discardSubTree();
}
}
else if (element.getName().equals("segmentop")) {
InjectPayloadSleigh payload = parseSegmentOp(element, parser);
addAdditionInject(payload);

View file

@ -41,7 +41,6 @@ public abstract class ConstantPool {
public long value; // Primitive value of the object (if tag == PRIMITIVE)
public byte[] byteData;
public DataType type;
public boolean hasThisPtr = false;
public boolean isConstructor = false;
public StringBuilder build(long ref, PcodeDataTypeManager dtmanage) {
@ -72,9 +71,6 @@ public abstract class ConstantPool {
else {
SpecXmlUtils.encodeStringAttribute(buf, "tag", "primitive");
}
if (hasThisPtr) {
SpecXmlUtils.encodeBooleanAttribute(buf, "hasthis", true);
}
if (isConstructor) {
SpecXmlUtils.encodeBooleanAttribute(buf, "constructor", true);
}