[llvm-commits] [vmkit] r51047 - /vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Tue May 13 08:02:24 PDT 2008
Author: geoffray
Date: Tue May 13 10:02:24 2008
New Revision: 51047
URL: http://llvm.org/viewvc/llvm-project?rev=51047&view=rev
Log:
Darwin requires to preallocate rp.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp
Modified: vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp?rev=51047&r1=51046&r2=51047&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp Tue May 13 10:02:24 2008
@@ -125,7 +125,6 @@
char* buf = (char*)alloca(len + 1);
const char* cur = str;
int top = 0;
- char* rp = 0;
char c = 1;
while (c != 0) {
while (((c = cur[top]) != 0) && c != envSeparator[0]) {
@@ -134,8 +133,10 @@
if (top != 0) {
memcpy(buf, cur, top);
buf[top] = 0;
+ char* rp = (char*)malloc(4096);
+ memset(rp, 0, 4096);
rp = realpath(buf, rp);
- if (rp != 0) {
+ if (rp[4095] == 0 && strlen(rp) != 0) {
struct stat st;
stat(rp, &st);
if ((st.st_mode & S_IFMT) == S_IFDIR) {
@@ -145,9 +146,12 @@
temp[len] = dirSeparator[0];
temp[len + 1] = 0;
bootClasspath.push_back(temp);
+ free(rp);
} else {
bootClasspath.push_back(rp);
}
+ } else {
+ free(rp);
}
}
cur = cur + top + 1;
More information about the llvm-commits
mailing list