Initialize class objects first as in the staic blocks there might be references to...
authorjzhou <jzhou>
Tue, 5 Jun 2012 02:23:17 +0000 (02:23 +0000)
committerjzhou <jzhou>
Tue, 5 Jun 2012 02:23:17 +0000 (02:23 +0000)
Robust/src/IR/Flat/BuildCode.java
Robust/src/IR/Flat/BuildCodeMGC.java
Robust/src/IR/Flat/BuildCodeMultiCore.java
Robust/src/IR/Flat/BuildCodeTran.java

index c18d65f23c7f5b068d0f31cc9a36165013745fca..11e4b0ccde09b118164e000aa26cef623bdeb786 100644 (file)
@@ -428,9 +428,8 @@ public class BuildCode {
       outmethod.println("    ((struct garbagelist *)global_defs_p)->array[i]=NULL;");
       outmethod.println("  }");
     }
-    outputStaticBlocks(outmethod);
     outputClassObjects(outmethod);
-
+    outputStaticBlocks(outmethod);
 
     additionalCodeAtTopOfMain(outmethod);
     for(BuildCodeExtension bcx: extensions) {
index a88e0cb38b9745766f4de8fc7f8b9010dd63ff27..7c81c3d6b9b6217f22a4e843121c5e84136fd534 100644 (file)
@@ -162,8 +162,8 @@ public class BuildCodeMGC extends BuildCode {
       outmethod.println("  }");
     }
 
-    outputStaticBlocks(outmethod);
     outputClassObjects(outmethod);
+    outputStaticBlocks(outmethod);
 
     if ((GENERATEPRECISEGC) || state.MULTICOREGC || state.PMC) {
       outmethod.println("  struct ArrayObject * stringarray=allocate_newarray(NULL, STRINGARRAYTYPE, argc-1);");
index 16dc93b1889d69554308f4ffc880ff83a9aae8b1..1ca99786a173e9db996158aede2d79614fd125cd 100644 (file)
@@ -386,8 +386,8 @@ public class BuildCodeMultiCore extends BuildCode {
       outmethod.println("  }");
     }
 
-    outputStaticBlocks(outmethod);
     outputClassObjects(outmethod);
+    outputStaticBlocks(outmethod);
 
     outmethod.println("}");
   }
index 7be13a5c5fa9445efdbac1d335983f8e4be205a5..13214b7def9b0ab8529bf84cc8a18f499d177e44 100644 (file)
@@ -127,8 +127,8 @@ public class BuildCodeTran extends BuildCode {
       outmethod.println("  }");
     }
 
-    outputStaticBlocks(outmethod);
     outputClassObjects(outmethod);
+    outputStaticBlocks(outmethod);
     additionalCodeAtTopOfMain(outmethod);
 
     if (state.DSM) {