PatchSet 6637 
Date: 2005/06/12 07:37:30
Author: guilhem
Branch: HEAD
Tag: (none) 
Log:
Fixed memory allocation in ExceptionDescribe and better exception printing.

        * kaffe/kaffevm/jni.c
        (Kaffe_ExceptionDescribe): Fixed memory allocation. Iterate through
        all causes of an exception.

Members: 
        ChangeLog:1.4163->1.4164 
        kaffe/kaffevm/jni/jni.c:1.32->1.33 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4163 kaffe/ChangeLog:1.4164
--- kaffe/ChangeLog:1.4163      Sat Jun 11 22:55:55 2005
+++ kaffe/ChangeLog     Sun Jun 12 07:37:30 2005
@@ -1,3 +1,9 @@
+2005-06-12  Guilhem Lavaux  <[EMAIL PROTECTED]>
+
+       * kaffe/kaffevm/jni.c
+       (Kaffe_ExceptionDescribe): Fixed memory allocation. Iterate through
+       all causes of an exception.
+
 2005-06-11  Dalibor Topic  <[EMAIL PROTECTED]>
 
        Resynced with GNU Classpath.
Index: kaffe/kaffe/kaffevm/jni/jni.c
diff -u kaffe/kaffe/kaffevm/jni/jni.c:1.32 kaffe/kaffe/kaffevm/jni/jni.c:1.33
--- kaffe/kaffe/kaffevm/jni/jni.c:1.32  Sat Jun  4 20:58:33 2005
+++ kaffe/kaffe/kaffevm/jni/jni.c       Sun Jun 12 07:37:34 2005
@@ -532,7 +532,7 @@
 
        eobj = thread_data->exceptObj;
 
-       if (eobj != 0) {
+       while (eobj != NULL) {
                /* Don't use the java stack printer because the exception
                 * may arise in the IO codec.
                 */
@@ -541,7 +541,7 @@
 
               class = OBJECT_CLASS(&eobj->base);
               cname = CLASS_CNAME(class);
-              realname = KMALLOC(strlen(cname));
+              realname = KMALLOC(strlen(cname)+1);
               pathname2classname(cname, realname);
                               
               msg = unhand(eobj)->detailMessage;
@@ -557,6 +557,13 @@
                       KFREE(realname);
               
               printStackTrace (eobj, NULL, true);
+
+              if (eobj->cause != eobj)
+              {
+                      eobj = eobj->cause;
+                      kprintf(stderr, "caused by: ");
+              } else
+                      eobj = NULL;
        }
        END_EXCEPTION_HANDLING();
 }

_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to