diff --git a/src/pmc/bkmarshal.c b/src/pmc/bkmarshal.c index 76e7252..9e96a72 100644 --- a/src/pmc/bkmarshal.c +++ b/src/pmc/bkmarshal.c @@ -67,11 +67,11 @@ blizkost_marshal_arg(BLIZKOST_NEXUS, PMC *arg) { c_str = Parrot_str_to_cstring(interp, pkg); result = sv_2mortal(newSVpv(c_str, strlen(c_str))); } - else if (VTABLE_does(interp, arg, CONST_STRING(interp, "invokable"))) { + else if (VTABLE_isa(interp, arg, CONST_STRING(interp, "String"))) { char *c_str = Parrot_str_to_cstring(interp, VTABLE_get_string(interp, arg)); result = sv_2mortal(newSVpv(c_str, strlen(c_str))); } - else if (VTABLE_isa(interp, arg, CONST_STRING(interp, "Sub"))) { + else if (VTABLE_does(interp, arg, CONST_STRING(interp, "invokable"))) { CV *wrapper = blizkost_wrap_callable(nexus, arg); result = sv_2mortal(newRV_inc((SV*)wrapper)); }