if (GetTempPath (buflen, buffer))
SET ("java.io.tmpdir", buffer);
- _Jv_free (buffer);
+ _Jv_Free (buffer);
}
// Use GetUserName to set 'user.name'.
{
if (GetUserName (buffer, &buflen))
SET ("user.name", buffer);
- _Jv_free (buffer);
+ _Jv_Free (buffer);
}
// According to the api documentation for 'GetWindowsDirectory()', the
{
if (GetWindowsDirectory (winHome, MAX_PATH))
SET ("user.home", winHome);
- _Jv_free (winHome);
+ _Jv_Free (winHome);
}
}
}
sprintf (buffer, "%d.%d", (int) osvi.dwMajorVersion,
(int) osvi.dwMinorVersion);
SET ("os.version", buffer);
- _Jv_free (buffer);
+ _Jv_Free (buffer);
}
switch (osvi.dwPlatformId)
break;
}
}
+
+/* Store up to SIZE return address of the current program state in
+ ARRAY and return the exact number of values stored. */
+int
+backtrace (void **__array, int __size)
+{
+ register void *_ebp __asm__ ("ebp");
+ register void *_esp __asm__ ("esp");
+ unsigned int *rfp;
+
+ int i=0;
+ for (rfp = *(unsigned int**)_ebp;
+ rfp && i < __size;
+ rfp = *(unsigned int **)rfp)
+ {
+ int diff = *rfp - (unsigned int)rfp;
+ if ((void*)rfp < _esp || diff > 4 * 1024 || diff < 0) break;
+
+ __array[i++] = (void*)(rfp[1]-4);
+ }
+ return i;
+}