[llvm-commits] CVS: llvm-java/runtime/runtime.c

Alkis Evlogimenos alkis at cs.uiuc.edu
Thu Mar 31 17:56:48 PST 2005



Changes in directory llvm-java/runtime:

runtime.c updated: 1.23 -> 1.24
---
Log message:

Instead of calling class initialization functions one by one, create
an array of initialization functions to run before main. This also
includes string constant initialization functions as well.


---
Diffs of the changes:  (+8 -2)

 runtime.c |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)


Index: llvm-java/runtime/runtime.c
diff -u llvm-java/runtime/runtime.c:1.23 llvm-java/runtime/runtime.c:1.24
--- llvm-java/runtime/runtime.c:1.23	Mon Mar 28 13:19:27 2005
+++ llvm-java/runtime/runtime.c	Thu Mar 31 19:56:36 2005
@@ -352,11 +352,17 @@
 
 const JNIEnv llvm_java_JNIEnv = &llvm_java_JNINativeInterface;
 
-extern void llvm_java_static_init(void);
+typedef void (*ClassInitializerFunction)(void);
+
+extern const ClassInitializerFunction llvm_java_class_initializers;
+
 extern void llvm_java_main(int, char**);
 
 int main(int argc, char** argv) {
-  llvm_java_static_init();
+  const ClassInitializerFunction* classInit = &llvm_java_class_initializers;
+  while (*classInit)
+    (*classInit++)();
+
   llvm_java_main(argc, argv);
   return 0;
 }






More information about the llvm-commits mailing list