/*
* call-seq:
* VM::InstructionSequence.load(String) => VM::InstructionSequence
*
* Load a VM::InstuctionSequence from a string (only available on YARV).
*/
static VALUE iseq_marshal_load(VALUE klass, VALUE str)
{
VALUE arr;
if( ruby_safe_level >= 4
|| (ruby_safe_level >= 1 && OBJ_TAINTED(str)))
{
/* no playing with knives in the sandbox */
rb_raise(rb_eSecurityError, "Insecure: can't load iseq");
}
arr = marshal_load(str);
convert_placeholders_to_modules(arr);
VALUE iseq = iseq_load(Qnil, arr, 0, Qnil);
return iseq;
}