X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=Repair%2FRepairCompiler%2FMCC%2FIR%2FStructureGenerator.java;fp=Repair%2FRepairCompiler%2FMCC%2FIR%2FStructureGenerator.java;h=f464977f157f27f3f4dd1892a29b75254bf97931;hb=4f679c5086094000b2da04c0b8ef1ba917537338;hp=b3a6664b89d26462d5d9c61d961e970f671c1270;hpb=84c8d11d9ae9b0c0d1744505a689b80131596623;p=repair.git diff --git a/Repair/RepairCompiler/MCC/IR/StructureGenerator.java b/Repair/RepairCompiler/MCC/IR/StructureGenerator.java index b3a6664..f464977 100755 --- a/Repair/RepairCompiler/MCC/IR/StructureGenerator.java +++ b/Repair/RepairCompiler/MCC/IR/StructureGenerator.java @@ -84,9 +84,10 @@ public class StructureGenerator { private void generatecomputesize() { int max=TypeDescriptor.counter; - cr.outputline("void computesizes(struct "+rg.name+"_state * obj) {"); + cr.outputline("void computesizes() {"); cr.outputline("int i;"); - cr.outputline(rg.name+"_statecomputesizes(obj,arsize,arnumelements);"); + //moved this to caller + //cr.outputline(rg.name+"_statecomputesizes(obj,arsize,arnumelements);"); cr.outputline("for(i=0;i<"+max+";i++) {"); cr.outputline("int bits=arsize[i];"); cr.outputline("int bytes=bits>>3;"); @@ -97,6 +98,7 @@ public class StructureGenerator { } private void generateheader() { + int max=TypeDescriptor.counter; crhead.outputline("#include \""+rg.headername + "\""); crhead.outputline("int getfield(int type, int fieldindex);"); crhead.outputline("int isArray(int type, int fieldindex);"); @@ -106,7 +108,9 @@ public class StructureGenerator { crhead.outputline("int sizeBytes(int type);"); crhead.outputline("int getnumfields(int type);"); crhead.outputline("bool issubtype(int subtype, int type);"); - crhead.outputline("void computesizes(struct "+rg.name+"_state *);"); + crhead.outputline("void computesizes();"); + crhead.outputline("extern int arsize["+max+"];"); + crhead.outputline("extern int* arnumelements["+max+"];"); }