MonoClass *ret_class = NULL;
int loc_array=0, loc_return=0, loc_serialized_exc=0;
MonoExceptionClause *main_clause;
- MonoMethodHeader *header;
int pos, pos_leave;
gboolean copy_return;
mono_mb_emit_byte (mb, CEE_RET);
+ mono_mb_set_clauses (mb, 1, main_clause);
+
res = mono_remoting_mb_create_and_cache (method, mb, csig, csig->param_count + 16);
mono_mb_free (mb);
- header = ((MonoMethodNormal *)res)->header;
- header->num_clauses = 1;
- header->clauses = main_clause;
-
return res;
}
{
MonoMethodSignature *sig, *csig, *callsig;
MonoExceptionClause *clause;
- MonoMethodHeader *header;
MonoMethodBuilder *mb;
GHashTable *cache = NULL;
MonoClass *target_klass;
clause->handler_len = mono_mb_get_pos (mb) - clause->handler_offset;
+ mono_mb_set_clauses (mb, 1, clause);
+
/* return result */
mono_mb_patch_branch (mb, pos);
mono_mb_emit_ldloc (mb, 0);
mono_mb_free (mb);
- header = ((MonoMethodNormal *)res)->header;
- header->num_clauses = 1;
- header->clauses = clause;
-
return res;
}
static MonoMethod *enter_method, *exit_method, *gettypefromhandle_method;
MonoMethodSignature *sig;
MonoExceptionClause *clause;
- MonoMethodHeader *header;
MonoMethodBuilder *mb;
MonoMethod *res;
GHashTable *cache;
mono_mb_emit_ldloc (mb, ret_local);
mono_mb_emit_byte (mb, CEE_RET);
+ mono_mb_set_clauses (mb, 1, clause);
+
res = mono_mb_create_and_cache (cache, method,
mb, sig, sig->param_count + 16);
mono_mb_free (mb);
- header = ((MonoMethodNormal *)res)->header;
- header->num_clauses = 1;
- header->clauses = clause;
-
return res;
}
MonoMarshalSpec **mspecs;
MonoMethodSignature *sig, *sig_native;
MonoExceptionClause *main_clause = NULL;
- MonoMethodHeader *header;
int pos_leave;
int hr = 0;
int i;
main_clause->handler_len = mono_mb_get_pos (mb) - main_clause->handler_offset;
/* end catch */
+ mono_mb_set_clauses (mb, 1, main_clause);
+
mono_mb_patch_branch (mb, pos_leave);
mono_mb_emit_ldloc (mb, hr);
mono_metadata_free_marshal_spec (mspecs [i]);
g_free (mspecs);
- if (!preserve_sig) {
- header = ((MonoMethodNormal *)res)->header;
- header->num_clauses = 1;
- header->clauses = main_clause;
- }
-
return res;
}
MonoMethodBuilder *mb;
MonoMethodSignature *sig, *csig;
MonoExceptionClause *clause;
- MonoMethodHeader *header;
MonoImage *image;
MonoClass *klass;
GHashTable *cache;
clause->handler_len = mono_mb_get_pos (mb) - clause->handler_offset;
+ mono_mb_set_clauses (mb, 1, clause);
+
mono_mb_patch_branch (mb, pos_leave);
/* end-try */
res = mono_mb_create_and_cache (cache, method, mb, csig, param_count + 16);
mono_mb_free (mb);
- header = ((MonoMethodNormal *)res)->header;
- header->num_clauses = 1;
- header->clauses = clause;
-
return res;
}