Merge pull request #409 from Alkarex/patch-1
[mono.git] / mono / interpreter / interp.h
index f403a92d7c7c65c95e6922aed2ece80b90f6351f..0953e5a54cfb93f1448dd9a80a815952469127bb 100644 (file)
@@ -55,8 +55,14 @@ typedef void (*MonoPIFunc) (MonoFunc callme, void *retval, void *obj_this, stack
  * Structure representing a method transformed for the interpreter 
  * This is domain specific
  */
-typedef struct 
+typedef struct _RuntimeMethod
 {
+       /* NOTE: These first two elements (method and
+          next_jit_code_hash) must be in the same order and at the
+          same offset as in MonoJitInfo, because of the jit_code_hash
+          internal hash table in MonoDomain. */
+       MonoMethod *method;
+       struct _RuntimeMethod *next_jit_code_hash;
        guint32 locals_size;
        guint32 args_size;
        guint32 stack_size;
@@ -64,7 +70,6 @@ typedef struct
        guint32 alloca_size;
        unsigned short *code;
        unsigned short *new_body_start; /* after all STINARG instrs */
-       MonoMethod *method;
        MonoPIFunc func;
        int num_clauses;
        MonoExceptionClause *clauses;
@@ -109,6 +114,9 @@ void mono_init_icall (void);
 MonoException *
 mono_interp_transform_method (RuntimeMethod *runtime_method, ThreadContext *context);
 
+MonoDelegate*
+mono_interp_ftnptr_to_delegate (MonoClass *klass, gpointer ftn);
+
 void
 mono_interp_transform_init (void);