diff --git a/ghidra/ghidra_scripts/MSVC7Mangle.java b/ghidra/ghidra_scripts/MSVC7Mangle.java index b62ed52..7bf4ab5 100644 --- a/ghidra/ghidra_scripts/MSVC7Mangle.java +++ b/ghidra/ghidra_scripts/MSVC7Mangle.java @@ -59,7 +59,6 @@ import ghidra.program.model.symbol.Namespace; import ghidra.program.model.symbol.Reference; import ghidra.program.model.symbol.SourceType; import ghidra.program.model.symbol.Symbol; -import ghidra.program.model.symbol.SymbolIterator; import java.util.Arrays; import java.util.ArrayList; @@ -86,12 +85,8 @@ public class MSVC7Mangle extends GhidraScript{ setCurrentSelection(addr); } - final SymbolIterator iter = currentProgram.getSymbolTable() - .getPrimarySymbolIterator(currentSelection, true); - - while (iter.hasNext() && !monitor.isCancelled()) { - final Symbol s = iter.next(); - + for (final Symbol s : currentProgram.getSymbolTable() + .getPrimarySymbolIterator(currentSelection, true)) { mangle(s); // Also mangle everything referenced inside functions @@ -303,9 +298,9 @@ public class MSVC7Mangle extends GhidraScript{ scalar deleting destructor. */ final Reference[] refs = getReferencesTo(f.getEntryPoint()); - for (int i = 0; i < refs.length; i++) { - final Data data = getDataContaining (refs[i].getFromAddress()); - final Function func = getFunctionContaining(refs[i].getFromAddress()); + for (final Reference ref : refs) { + final Data data = getDataContaining (ref.getFromAddress()); + final Function func = getFunctionContaining(ref.getFromAddress()); if (data != null) { final Symbol s = getSymbolAt(data.getRoot() @@ -481,12 +476,12 @@ public class MSVC7Mangle extends GhidraScript{ // freaks out at is actually useful (and Optional still // helped us out here) String mangledArgs = ""; - for (int i = 0; i < args.length; i++) { - final String mangledArg = mangleType(args[i], dict, loc); + for (final DataType arg : args) { + final String mangledArg = mangleType(arg, dict, loc); mangledArgs += mangledArg.length() == 1 ? mangledArg : - backref(args[i], argDict).orElse(mangledArg); + backref(arg, argDict).orElse(mangledArg); } return mangledArgs + (f.hasVarArgs() ? "Z" : "@"); } @@ -592,8 +587,8 @@ public class MSVC7Mangle extends GhidraScript{ ins = ins.getNext() ) { final Reference[] refs = ins.getReferencesFrom(); - for (int i = 0; i < refs.length; i++) { - final Symbol symbol = getSymbolAt(refs[i].getToAddress()); + for (final Reference ref : refs) { + final Symbol symbol = getSymbolAt(ref.getToAddress()); // Guard against spurious references to nonexisting things if ( @@ -605,10 +600,10 @@ public class MSVC7Mangle extends GhidraScript{ d.getBaseDataType() instanceof Undefined || d.getBaseDataType() instanceof DefaultDataType ) && - refs[i].getSource() != SourceType.USER_DEFINED + ref.getSource() != SourceType.USER_DEFINED ) ) { - removeReference(refs[i]); + removeReference(ref); continue; }