[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