* Removed all Id tags.
[cacao.git] / src / vmcore / method.h
index 453ff995ca6c33ef191f40524a218e06f4c78a7e..73b67e90316174fe7f1a41e823f3c022219f0164 100644 (file)
@@ -22,7 +22,6 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: method.h 7447 2007-03-04 14:22:42Z edwin $
 */
 
 
@@ -36,18 +35,17 @@ typedef struct raw_exception_entry raw_exception_entry;
 typedef struct lineinfo            lineinfo; 
 typedef struct method_assumption   method_assumption;
 typedef struct method_worklist     method_worklist;
+typedef struct codeinfo            codeinfo;
 
 #include "config.h"
 #include "vm/types.h"
 
 #include "vm/global.h"
 
-#include "vm/jit/code.h"
-#include "vm/jit/codegen-common.h"
-
 #include "vmcore/descriptor.h"
 #include "vmcore/references.h"
 #include "vmcore/linker.h"
+#include "vmcore/loader.h"
 
 #if defined(ENABLE_JAVASE)
 # include "vmcore/stackmap.h"
@@ -65,6 +63,7 @@ typedef struct method_worklist     method_worklist;
 /* methodinfo *****************************************************************/
 
 struct methodinfo {                 /* method structure                       */
+       java_object_t header;           /* we need this in jit's monitorenter     */
        s4            flags;            /* ACC flags                              */
        utf          *name;             /* name of method                         */
        utf          *descriptor;       /* JavaVM descriptor string of method     */
@@ -105,6 +104,10 @@ struct methodinfo {                 /* method structure                       */
 #if defined(ENABLE_REPLACEMENT)
        s4            hitcountdown;     /* decreased for each hit                 */
 #endif
+
+#if defined(ENABLE_DEBUG_FILTER)
+       u1            filtermatches;    /* flags indicating which filters the method matches */
+#endif
 };
 
 
@@ -154,16 +157,26 @@ struct lineinfo {
 
 /* function prototypes ********************************************************/
 
+bool method_load(classbuffer *cb, methodinfo *m, descriptor_pool *descpool);
 void method_free(methodinfo *m);
 bool method_canoverwrite(methodinfo *m, methodinfo *old);
 
 methodinfo *method_vftbl_lookup(vftbl_t *vftbl, methodinfo* m);
 
+int32_t                    method_get_parametercount(methodinfo *m);
+java_handle_objectarray_t *method_get_parametertypearray(methodinfo *m);
+java_handle_objectarray_t *method_get_exceptionarray(methodinfo *m);
+classinfo                 *method_returntype_get(methodinfo *m);
+
 void method_add_assumption_monomorphic(methodinfo *m, methodinfo *caller);
 void method_break_assumption_monomorphic(methodinfo *m, method_worklist **wl);
 
 s4   method_count_implementations(methodinfo *m, classinfo *c, methodinfo **found);
 
+java_handle_bytearray_t *method_get_annotations(methodinfo *m);
+java_handle_bytearray_t *method_get_parameterannotations(methodinfo *m);
+java_handle_bytearray_t *method_get_annotationdefault(methodinfo *m);
+
 #if !defined(NDEBUG)
 void method_printflags(methodinfo *m);
 void method_print(methodinfo *m);