fix error reporting for JITted methods
svn: r3250
This commit is contained in:
parent
14cd52ecd0
commit
58cc9eaf85
|
@ -5267,8 +5267,6 @@ Scheme_Object *scheme_get_native_arity(Scheme_Object *closure)
|
||||||
has_rest = 1;
|
has_rest = 1;
|
||||||
} else
|
} else
|
||||||
has_rest = 0;
|
has_rest = 0;
|
||||||
if (is_method && v)
|
|
||||||
--v;
|
|
||||||
a = scheme_make_arity(v, has_rest ? -1 : v);
|
a = scheme_make_arity(v, has_rest ? -1 : v);
|
||||||
l = scheme_make_pair(a, l);
|
l = scheme_make_pair(a, l);
|
||||||
}
|
}
|
||||||
|
@ -5279,9 +5277,13 @@ Scheme_Object *scheme_get_native_arity(Scheme_Object *closure)
|
||||||
|
|
||||||
if (((Scheme_Native_Closure *)closure)->code->code == on_demand_jit_code) {
|
if (((Scheme_Native_Closure *)closure)->code->code == on_demand_jit_code) {
|
||||||
Scheme_Closure c;
|
Scheme_Closure c;
|
||||||
|
Scheme_Object *a;
|
||||||
c.so.type = scheme_closure_type;
|
c.so.type = scheme_closure_type;
|
||||||
c.code = ((Scheme_Native_Closure *)closure)->code->u2.orig_code;
|
c.code = ((Scheme_Native_Closure *)closure)->code->u2.orig_code;
|
||||||
return scheme_get_or_check_arity((Scheme_Object *)&c, -1);
|
a = scheme_get_or_check_arity((Scheme_Object *)&c, -1);
|
||||||
|
if (SCHEME_CLOSURE_DATA_FLAGS(c.code) & CLOS_IS_METHOD)
|
||||||
|
a = scheme_box(a);
|
||||||
|
return a;
|
||||||
}
|
}
|
||||||
|
|
||||||
return get_arity_code(closure, 0, 0);
|
return get_arity_code(closure, 0, 0);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user