This commit is contained in:
N.V.S.Rahul 2026-08-22 19:01:05 +00:00 committed by GitHub
commit daad4920f6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 2 additions and 8 deletions

View file

@ -17,7 +17,6 @@ package ghidra.app.util.pcodeInject;
import ghidra.javaclass.format.DescriptorDecoder;
import ghidra.javaclass.format.JavaClassConstants;
import ghidra.javaclass.format.constantpool.AbstractConstantPoolInfoJava;
import ghidra.program.model.data.DataType;
import ghidra.program.model.data.DataTypeManager;
@ -57,11 +56,9 @@ public class ArrayMethods {
* and a dimension as its second argument.
* @param pCode is the pcode accumulator
* @param constantPoolIndex
* @param constantPool
* @param dimensions
*/
public static void getPcodeForMultiANewArray(PcodeOpEmitter pCode, int constantPoolIndex,
AbstractConstantPoolInfoJava[] constantPool,
int dimensions) {
//pop all of the dimensions off the stack
for (int i = dimensions; i >= 1; --i){
@ -93,8 +90,7 @@ public class ArrayMethods {
multianewarrayOpArgs[i] = DIMENSION + Integer.toString(i);
}
}
pCode.emitAssignVarnodeFromPcodeOpCall(ARRAY_REF, 4, MULTIANEWARRAY, CLASS_NAME, "dim1",
"dim2");
pCode.emitAssignVarnodeFromPcodeOpCall(ARRAY_REF, 4, MULTIANEWARRAY, multianewarrayOpArgs);

View file

@ -16,7 +16,6 @@
package ghidra.app.util.pcodeInject;
import ghidra.app.plugin.processors.sleigh.SleighLanguage;
import ghidra.javaclass.format.constantpool.AbstractConstantPoolInfoJava;
import ghidra.program.model.lang.InjectContext;
import ghidra.program.model.listing.Program;
import ghidra.program.model.pcode.PcodeOp;
@ -29,11 +28,10 @@ public class InjectMultiANewArray extends InjectPayloadJava {
@Override
public PcodeOp[] getPcode(Program program, InjectContext con) {
AbstractConstantPoolInfoJava[] constantPool = getConstantPool(program);
int constantPoolIndex = (int) con.inputlist.get(0).getOffset();
int dimensions = (int) con.inputlist.get(1).getOffset();
PcodeOpEmitter pCode = new PcodeOpEmitter(language, con.baseAddr, uniqueBase);
ArrayMethods.getPcodeForMultiANewArray(pCode, constantPoolIndex, constantPool, dimensions);
ArrayMethods.getPcodeForMultiANewArray(pCode, constantPoolIndex, dimensions);
return pCode.getPcodeOps();
}
}