mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 10:49:34 +02:00
Merge remote-tracking branch 'origin/GP-895_EnumOrdering' (Closes #2909)
This commit is contained in:
commit
d1c491b357
1 changed files with 10 additions and 4 deletions
|
@ -764,6 +764,9 @@ int4 TypeEnum::compareDependency(const Datatype &op) const
|
||||||
const TypeEnum *te = (const TypeEnum *) &op;
|
const TypeEnum *te = (const TypeEnum *) &op;
|
||||||
map<uintb,string>::const_iterator iter1,iter2;
|
map<uintb,string>::const_iterator iter1,iter2;
|
||||||
|
|
||||||
|
if (namemap.size() != te->namemap.size()) {
|
||||||
|
return (namemap.size() < te->namemap.size()) ? -1 : 1;
|
||||||
|
}
|
||||||
iter1 = namemap.begin();
|
iter1 = namemap.begin();
|
||||||
iter2 = te->namemap.begin();
|
iter2 = te->namemap.begin();
|
||||||
while(iter1 != namemap.end()) {
|
while(iter1 != namemap.end()) {
|
||||||
|
@ -1287,18 +1290,21 @@ void TypeCode::saveXml(ostream &s) const
|
||||||
void TypeCode::restoreXml(const Element *el,TypeFactory &typegrp)
|
void TypeCode::restoreXml(const Element *el,TypeFactory &typegrp)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
const List &list(el->getChildren());
|
||||||
|
List::const_iterator iter;
|
||||||
|
iter = list.begin();
|
||||||
|
if (iter != list.end()) {
|
||||||
|
// Traditionally a <prototype> tag implies variable length, without a "varlength" attribute
|
||||||
|
flags |= variable_length;
|
||||||
|
}
|
||||||
restoreXmlBasic(el);
|
restoreXmlBasic(el);
|
||||||
if (proto != (FuncProto *)0) {
|
if (proto != (FuncProto *)0) {
|
||||||
delete proto;
|
delete proto;
|
||||||
proto = (FuncProto *)0;
|
proto = (FuncProto *)0;
|
||||||
}
|
}
|
||||||
const List &list(el->getChildren());
|
|
||||||
List::const_iterator iter;
|
|
||||||
iter = list.begin();
|
|
||||||
if (iter == list.end()) return; // No underlying prototype
|
if (iter == list.end()) return; // No underlying prototype
|
||||||
Architecture *glb = typegrp.getArch();
|
Architecture *glb = typegrp.getArch();
|
||||||
factory = &typegrp;
|
factory = &typegrp;
|
||||||
flags |= variable_length;
|
|
||||||
proto = new FuncProto();
|
proto = new FuncProto();
|
||||||
proto->setInternal( glb->defaultfp, typegrp.getTypeVoid() );
|
proto->setInternal( glb->defaultfp, typegrp.getTypeVoid() );
|
||||||
proto->restoreXml(*iter,glb);
|
proto->restoreXml(*iter,glb);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue