[vmkit-commits] [vmkit] r72940 - /vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Fri Jun 5 03:47:41 PDT 2009


Author: geoffray
Date: Fri Jun  5 05:47:30 2009
New Revision: 72940

URL: http://llvm.org/viewvc/llvm-project?rev=72940&view=rev
Log:
New bugfix for datarace. Don't set the value unprotected.


Modified:
    vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp?rev=72940&r1=72939&r2=72940&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp Fri Jun  5 05:47:30 2009
@@ -55,9 +55,12 @@
     char* buf = (char*)alloca((keyName->size << 1) + 1 + 11);
     nativeName(buf, "static_buf");
     bool unused = false;
-    _staticCallBuf = initialLoader->loadInLib(buf, unused);
-    if (!_staticCallBuf)
+    intptr_t res = initialLoader->loadInLib(buf, unused);
+    if (res) {
+      _staticCallBuf = res;
+    } else {
       initialLoader->getCompiler()->staticCallBuf(this);
+    }
     assert(_staticCallBuf && "No call buf");
   }
   return _staticCallBuf;
@@ -68,9 +71,12 @@
     char* buf = (char*)alloca((keyName->size << 1) + 1 + 11);
     nativeName(buf, "virtual_buf");
     bool unused = false;
-    _virtualCallBuf = initialLoader->loadInLib(buf, unused);
-    if (!_virtualCallBuf)
+    intptr_t res = initialLoader->loadInLib(buf, unused);
+    if (res) { 
+      _virtualCallBuf = res;
+    } else {
       initialLoader->getCompiler()->virtualCallBuf(this);
+    }
     assert(_virtualCallBuf && "No call buf");
   }
   return _virtualCallBuf;
@@ -81,9 +87,12 @@
     char* buf = (char*)alloca((keyName->size << 1) + 1 + 11);
     nativeName(buf, "static_ap");
     bool unused = false;
-    _staticCallAP = initialLoader->loadInLib(buf, unused);
-    if (!_staticCallAP)
+    intptr_t res = initialLoader->loadInLib(buf, unused);
+    if (res) {
+      _staticCallAP = res;
+    } else {
       initialLoader->getCompiler()->staticCallAP(this);
+    }
     assert(_staticCallAP && "No call AP");
   }
   return _staticCallAP;
@@ -94,9 +103,12 @@
     char* buf = (char*)alloca((keyName->size << 1) + 1 + 11);
     nativeName(buf, "virtual_ap");
     bool unused = false;
-    _virtualCallAP = initialLoader->loadInLib(buf, unused);
-    if (!_virtualCallAP)
+    intptr_t res = initialLoader->loadInLib(buf, unused);
+    if (res) {
+      _virtualCallAP = res;
+    } else {
       initialLoader->getCompiler()->virtualCallAP(this);
+    }
     assert(_virtualCallAP && "No call AP");
   }
   return _virtualCallAP;





More information about the vmkit-commits mailing list