Hi, I'm writing XS bindings for JavaScriptCore (WebKit's JavaScript engine) and a lot of the functions in the API throw an exception. The exception it self is a JavaScript variable (kind of like an SV* for Perl).
At first I though of rethrowing that variable wrapped as an SV but I don't know how to do this. I read somewhere that Perl_croak_sv can do that but I get a runtime because the symbol is undefined: /* undefined symbol: Perl_croak_sv */ SV *err; err = jsc_perl_js_value_to_sv(ctx, exception); Perl_croak_sv(aTHX_ err); For now I reverted at returning the error as a JSON string and to use croak but I'm leaking the string with the message since I can't free it after croak(): char *error; error = jsc_perl_js_value_to_json(ctx, exception); croak("%s", error);/* How can we throw an SV ? */ free(error);/* FIXME is this free called ? */ Is it possible to throw an blessed exception from XS code? If so how can I achieve this? Otherwise, how can I propagate an error as a string and free the string? -- Emmanuel Rodriguez