typedef struct methodinfo methodinfo;
typedef struct raw_exception_entry raw_exception_entry;
-typedef struct lineinfo lineinfo;
+typedef struct lineinfo lineinfo;
+typedef struct localvarinfo localvarinfo;
typedef struct method_assumption method_assumption;
typedef struct method_worklist method_worklist;
typedef struct codeinfo codeinfo;
#include "threads/mutex.hpp"
+#include "vm/breakpoint.hpp"
#include "vm/jit/builtin.hpp"
-#include "vm/descriptor.h"
+#include "vm/descriptor.hpp"
#include "vm/global.h"
#include "vm/linker.hpp"
#include "vm/loader.hpp"
#endif
methoddesc *parseddesc; /* parsed descriptor */
-
+
classinfo *clazz; /* class, the method belongs to */
s4 vftblindex; /* index of method in virtual function */
/* table (if it is a virtual method) */
u2 linenumbercount; /* number of linenumber attributes */
lineinfo *linenumbers; /* array of lineinfo items */
+#if defined(ENABLE_JAVASE) && defined(ENABLE_JVMTI)
+ uint16_t localvarcount; /* number of local variable attributes */
+ localvarinfo* localvars; /* array of localvarinfo items */
+#endif
+
u1 *stubroutine; /* stub for compiling or calling natives */
codeinfo *code; /* current code of this method */
methodinfo *overwrites; /* method that is directly overwritten */
method_assumption *assumptions; /* list of assumptions about this method */
+ BreakpointTable* breakpoints; /* breakpoints in this method */
+
#if defined(ENABLE_REPLACEMENT)
s4 hitcountdown; /* decreased for each hit */
#endif
};
+/* localvarinfo ***************************************************************/
+
+struct localvarinfo {
+ uint16_t start_pc;
+ uint16_t length;
+ utf* name;
+ utf* descriptor;
+ uint16_t index;
+};
+
+
/* global variables ***********************************************************/
extern methodinfo *method_java_lang_reflect_Method_invoke;