* jni.cc (_Jv_JNI_AttachCurrentThread): Return error if malloc
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Feb 2000 20:39:36 +0000 (20:39 +0000)
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Feb 2000 20:39:36 +0000 (20:39 +0000)
fails.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31986 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/jni.cc

index eaec78d..49142ac 100644 (file)
@@ -1,3 +1,8 @@
+2000-02-15  Tom Tromey  <tromey@cygnus.com>
+
+       * jni.cc (_Jv_JNI_AttachCurrentThread): Return error if malloc
+       fails.
+
 2000-02-15  Bryce McKinlay  <bryce@albatross.co.nz>
 
        * NEWS: Updated.
index 6beb6f7..48c63b0 100644 (file)
@@ -1415,16 +1415,21 @@ _Jv_JNI_AttachCurrentThread (JavaVM *, jstring name, void **penv, void *args)
   if (_Jv_ThreadCurrent () != NULL)
     return 0;
 
-  // FIXME: NULL return?
   JNIEnv *env = (JNIEnv *) _Jv_MallocUnchecked (sizeof (JNIEnv));
+  if (env == NULL)
+    return JNI_ERR;
   env->p = &_Jv_JNIFunctions;
   env->ex = NULL;
   env->klass = NULL;
-  // FIXME: NULL return?
   env->locals
     = (_Jv_JNI_LocalFrame *) _Jv_MallocUnchecked (sizeof (_Jv_JNI_LocalFrame)
                                                  + (FRAME_SIZE
                                                     * sizeof (jobject)));
+  if (env->locals == NULL)
+    {
+      _Jv_Free (env);
+      return JNI_ERR;
+    }
   *penv = reinterpret_cast<void *> (env);
 
   java::lang::Thread *t = new gnu::gcj::jni::NativeThread (group, name);