aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/jni.cc9
2 files changed, 12 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index eaec78d..49142ac 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -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.
diff --git a/libjava/jni.cc b/libjava/jni.cc
index 6beb6f7..48c63b0 100644
--- a/libjava/jni.cc
+++ b/libjava/jni.cc
@@ -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);