OSDN Git Service

Moved ChangeLog entry into correct ChangeLog file
[pf3gnuchains/gcc-fork.git] / libjava / win32.cc
index 912ca1c..af1163f 100644 (file)
@@ -88,7 +88,7 @@ _Jv_platform_initProperties (java::util::Properties* newprops)
       if (GetTempPath (buflen, buffer))
        SET ("java.io.tmpdir", buffer);
 
-      _Jv_free (buffer);
+      _Jv_Free (buffer);
     }
   
   // Use GetUserName to set 'user.name'.
@@ -98,7 +98,7 @@ _Jv_platform_initProperties (java::util::Properties* newprops)
     {
       if (GetUserName (buffer, &buflen))
         SET ("user.name", buffer);
-      _Jv_free (buffer);
+      _Jv_Free (buffer);
     }
 
   // According to the api documentation for 'GetWindowsDirectory()', the 
@@ -118,7 +118,7 @@ _Jv_platform_initProperties (java::util::Properties* newprops)
             {
               if (GetWindowsDirectory (winHome, MAX_PATH))
                SET ("user.home", winHome);
-              _Jv_free (winHome);
+              _Jv_Free (winHome);
             }
         }
      }
@@ -137,7 +137,7 @@ _Jv_platform_initProperties (java::util::Properties* newprops)
           sprintf (buffer, "%d.%d", (int) osvi.dwMajorVersion,
                   (int) osvi.dwMinorVersion);
           SET ("os.version", buffer);
-          _Jv_free (buffer);
+          _Jv_Free (buffer);
         }
 
       switch (osvi.dwPlatformId)
@@ -195,3 +195,25 @@ _Jv_platform_initProperties (java::util::Properties* newprops)
         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;
+}