You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by dl...@apache.org on 2007/08/12 22:46:39 UTC

svn commit: r565143 - /harmony/enhanced/sandbox/bootjvm/bootJVM/jvm/src/class.h

Author: dlydick
Date: Sun Aug 12 13:46:38 2007
New Revision: 565143

URL: http://svn.apache.org/viewvc?view=rev&rev=565143
Log:
Added typedef struct class_resolve_method;

Added prototypes for suite of OO evaluation functions.

Modified:
    harmony/enhanced/sandbox/bootjvm/bootJVM/jvm/src/class.h

Modified: harmony/enhanced/sandbox/bootjvm/bootJVM/jvm/src/class.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/sandbox/bootjvm/bootJVM/jvm/src/class.h?view=diff&rev=565143&r1=565142&r2=565143
==============================================================================
--- harmony/enhanced/sandbox/bootjvm/bootJVM/jvm/src/class.h (original)
+++ harmony/enhanced/sandbox/bootjvm/bootJVM/jvm/src/class.h Sun Aug 12 13:46:38 2007
@@ -264,6 +264,22 @@
 
 } rclass;
 
+
+/*!
+ * @brief Result of resolving an object with field it should reference
+ * or method it should invoke.
+ *
+ */
+typedef struct
+{
+    jvm_class_index clsidx;  /**< Class containing method to invoke */
+
+    jvm_method_index mthidx;  /**< Method to invoke from @b clsidx */
+
+    jvm_field_index  fldidx;  /**< Field to invoke from @b clsidx */
+
+} class_resolve_member;
+
 /*!
  * @internal Remove effects of packing pragma on other code.
  *
@@ -324,6 +340,9 @@
 extern rboolean classutil_class_is_a(jvm_class_index clsidx1,
                                      jvm_class_index clsidx2);
 
+extern rboolean classutil_object_is_a(jvm_object_hash objhash1,
+                                      jvm_class_index clsidx2);
+
 extern rboolean classutil_class_implements_interface(
                                                jvm_class_index clsidx1,
                                                jvm_class_index clsidx2);
@@ -332,12 +351,50 @@
                                                jvm_class_index clsidx1,
                                                jvm_class_index clsidx2);
 
+extern rboolean classutil_class_same_package_as(
+                                               jvm_class_index clsidx1,
+                                               jvm_class_index clsidx2);
+
 extern rboolean classutil_class_is_accessible_to(
                                                jvm_class_index clsidx1,
                                                jvm_class_index clsidx2);
 
-extern rboolean
-      classutil_interface_implemented_by_arrays(jvm_class_index clsidx);
+extern rboolean classutil_interface_implemented_by_arrays(
+                                               jvm_class_index clsidx);
+
+extern rboolean classutil_field_is_accessible_to(
+                                       CONSTANT_Fieldref_info *fldref1,
+                                       jvm_class_index         clsidx2);
+
+extern rboolean classutil_method_is_accessible_to(
+                                      CONSTANT_Methodref_info *mthref1,
+                                      jvm_class_index          clsidx2);
+
+extern rboolean classutil_interface_method_is_accessible_to(
+                              CONSTANT_InterfaceMethodref_info *mthref1,
+                                      jvm_class_index          clsidx2);
+
+extern jvm_object_hash classutil_direct_superclass_parent_object_of(
+           jvm_class_index clsidx1,
+           jvm_object_hash objhash2);
+
+extern rvoid classutil_class_has_a_field(class_resolve_member *rc,
+                                              jvm_object_hash  objhash1,
+                                              ClassFile       *pcfs2,
+                                       CONSTANT_Fieldref_info *fldref2);
+
+extern rvoid classutil_class_has_a_method(
+                                         class_resolve_member *rc,
+                                              jvm_object_hash  objhash1,
+                                              ClassFile       *pcfs2,
+                                      CONSTANT_Methodref_info *mthref2,
+                                              rboolean    isaccessible);
+
+extern rvoid classutil_class_has_an_interface_method(
+                                         class_resolve_member *rc,
+                                              jvm_object_hash  objhash1,
+                                              ClassFile       *pcfs2,
+                             CONSTANT_InterfaceMethodref_info *mthref2);
 
 #endif /* _class_h_included_ */