]> gcc.gnu.org Git - gcc.git/commitdiff
2002-02-01 Adam Megacz <adam@xwt.org>
authorAdam Megacz <adam@xwt.org>
Sat, 2 Feb 2002 04:34:15 +0000 (04:34 +0000)
committerAdam Megacz <megacz@gcc.gnu.org>
Sat, 2 Feb 2002 04:34:15 +0000 (04:34 +0000)
        * prims.cc
        (_Jv_CreateJavaVM): We now use WIN32 instead of
        USE_WIN32_SIGNALLING and USE_WINSOCK.
        (win32_exception_handler): Now throws an exception out of
        the signal handler; assumes SJLJ

From-SVN: r49429

libjava/ChangeLog
libjava/prims.cc

index d26c014f86b6de98c0c64ba9f23b943e7e60b82c..baabfcd518062c0e11163777d910f431fb2a5903 100644 (file)
@@ -1,3 +1,11 @@
+2002-02-01  Adam Megacz <adam@xwt.org>
+
+       * prims.cc
+       (_Jv_CreateJavaVM): We now use WIN32 instead of
+       USE_WIN32_SIGNALLING and USE_WINSOCK.
+       (win32_exception_handler): Now throws an exception out of
+       the signal handler; assumes SJLJ
+       
 2002-02-01  Adam Megacz
 
         * win32-threads.cc:
index 279e3caad02ad07d29cfe4d31223b52b6da4379b..23ee38d50603d53f274220d3c780762e5e5e56d7 100644 (file)
@@ -10,14 +10,14 @@ details.  */
 
 #include <config.h>
 
-#ifdef USE_WIN32_SIGNALLING
+#ifdef WIN32
 #include <windows.h>
-#endif /* USE_WIN32_SIGNALLING */
+#endif /* WIN32 */
 
-#ifdef USE_WINSOCK
+#ifdef WIN32
 #undef __INSIDE_CYGWIN__
 #include <winsock.h>
-#endif /* USE_WINSOCK */
+#endif /* WIN32 */
 
 #include <stdlib.h>
 #include <stdarg.h>
@@ -730,28 +730,19 @@ _Jv_ThisExecutable (const char *name)
     }
 }
 
-#ifdef USE_WIN32_SIGNALLING
+#ifdef WIN32
 
 extern "C" int* win32_get_restart_frame (void *);
 
 LONG CALLBACK
 win32_exception_handler (LPEXCEPTION_POINTERS e)
 {
-  int* setjmp_buf;
-  if (e->ExceptionRecord->ExceptionCode == EXCEPTION_ACCESS_VIOLATION)   
-    setjmp_buf = win32_get_restart_frame (nullp);
+  if (e->ExceptionRecord->ExceptionCode == EXCEPTION_ACCESS_VIOLATION)
+    _Jv_ThrowNullPointerException();
   else if (e->ExceptionRecord->ExceptionCode == EXCEPTION_INT_DIVIDE_BY_ZERO)
-    setjmp_buf = win32_get_restart_frame (arithexception);
+    throw new java::lang::ArithmeticException;
   else
     return EXCEPTION_CONTINUE_SEARCH;
-
-  e->ContextRecord->Ebp = setjmp_buf[0];
-  // FIXME: Why does i386-signal.h increment the PC here, do we need to do it?
-  e->ContextRecord->Eip = setjmp_buf[1];
-  // FIXME: Is this the stack pointer? Do we need it?
-  e->ContextRecord->Esp = setjmp_buf[2];
-
-  return EXCEPTION_CONTINUE_EXECUTION;
 }
 
 #endif
@@ -962,14 +953,11 @@ _Jv_CreateJavaVM (void* /*vm_args*/)
   LTDL_SET_PRELOADED_SYMBOLS ();
 #endif
 
-#ifdef USE_WINSOCK
+#ifdef WIN32
   // Initialise winsock for networking
   WSADATA data;
   if (WSAStartup (MAKEWORD (1, 1), &data))
       MessageBox (NULL, "Error initialising winsock library.", "Error", MB_OK | MB_ICONEXCLAMATION);
-#endif /* USE_WINSOCK */
-
-#ifdef USE_WIN32_SIGNALLING
   // Install exception handler
   SetUnhandledExceptionFilter (win32_exception_handler);
 #elif defined(HAVE_SIGACTION)
This page took 0.080205 seconds and 5 git commands to generate.