PatchSet 7430 
Date: 2006/10/06 18:50:53
Author: guilhem
Branch: HEAD
Tag: (none) 
Log:
Fix for bug #69

2006-10-06  Guilhem Lavaux  <[EMAIL PROTECTED]>

        * kaffe/kaffevm/jni/jni-helpers.c
        (KaffeJNI_ToReflectedMethod, KaffeJNI_ToReflectedField): Iterate
        over all superclasses of a given class to find the given field or
        method.

        Fix bug #69.

Members: 
        ChangeLog:1.4930->1.4931 
        kaffe/kaffevm/jni/jni-helpers.c:1.15->1.16 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4930 kaffe/ChangeLog:1.4931
--- kaffe/ChangeLog:1.4930      Sat Sep 30 20:21:48 2006
+++ kaffe/ChangeLog     Fri Oct  6 18:50:53 2006
@@ -1,3 +1,12 @@
+2006-10-06  Guilhem Lavaux  <[EMAIL PROTECTED]>
+
+       * kaffe/kaffevm/jni/jni-helpers.c
+       (KaffeJNI_ToReflectedMethod, KaffeJNI_ToReflectedField): Iterate
+       over all superclasses of a given class to find the given field or
+       method.
+
+       Fix bug #69.
+       
 2006-09-30  Guilhem Lavaux  <[EMAIL PROTECTED]>
 
        * kaffe/kaffevm/jar.c
Index: kaffe/kaffe/kaffevm/jni/jni-helpers.c
diff -u kaffe/kaffe/kaffevm/jni/jni-helpers.c:1.15 
kaffe/kaffe/kaffevm/jni/jni-helpers.c:1.16
--- kaffe/kaffe/kaffevm/jni/jni-helpers.c:1.15  Sun Jun 11 23:12:11 2006
+++ kaffe/kaffe/kaffevm/jni/jni-helpers.c       Fri Oct  6 18:50:58 2006
@@ -155,16 +155,22 @@
        cls_local = unveil(cls);
        clazz = (Hjava_lang_Class *)cls_local;
        refMeth = NULL;
-       for (allMethods = Kaffe_get_class_methods(clazz), i = 0;
-            i < CLASS_NMETHODS(clazz); 
-            i++, allMethods++)
+       do
          {
-           if (allMethods == (Method *)mid)
+           for (allMethods = Kaffe_get_class_methods(clazz), i = 0;
+                i < CLASS_NMETHODS(clazz); 
+                i++, allMethods++)
              {
-               refMeth = KaffeVM_makeReflectMethod(clazz, i);
-               break;
+               if (allMethods == (Method *)mid)
+                 {
+                   refMeth = KaffeVM_makeReflectMethod(clazz, i);
+                   break;
+                 }
              }
+           clazz = clazz->superclass;
          }
+       while (clazz != NULL && refMeth == NULL);
+
        END_EXCEPTION_HANDLING();
        
        return (jobject) refMeth;
@@ -184,16 +190,21 @@
        cls_local = unveil(cls);
        clazz = (Hjava_lang_Class *)cls_local;
        refField = NULL;
-       for (allFields = CLASS_FIELDS(clazz), i = 0;
-            i < CLASS_NFIELDS(clazz);
-            i++, allFields++)
+       do
          {
-           if (allFields == (Field *)fid)
+           for (allFields = CLASS_FIELDS(clazz), i = 0;
+                i < CLASS_NFIELDS(clazz);
+                i++, allFields++)
              {
-               refField = KaffeVM_makeReflectField(clazz, i);
-               break;
+               if (allFields == (Field *)fid)
+                 {
+                   refField = KaffeVM_makeReflectField(clazz, i);
+                   break;
+                 }
              }
+           clazz = clazz->superclass;
          }
+       while (clazz != NULL && refField == NULL);
 
        END_EXCEPTION_HANDLING();
        

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

Reply via email to