fix segmentation fault in BasicObject#inspect

This commit is contained in:
takkaw
2013-01-14 20:33:49 +09:00
parent 618d7339f1
commit 5aafbca0e4
+7 -2
View File
@@ -1139,8 +1139,13 @@ mrb_bob_missing(mrb_state *mrb, mrb_value mod)
mrb_raise(mrb, E_TYPE_ERROR, "name should be a symbol");
}
inspect = mrb_funcall(mrb, mod, "inspect", 0);
if (RSTRING_LEN(inspect) > 64) {
if (mrb_respond_to(mrb,mod,mrb_intern(mrb,"inspect"))){
inspect = mrb_funcall(mrb, mod, "inspect", 0);
if (RSTRING_LEN(inspect) > 64) {
inspect = mrb_any_to_s(mrb, mod);
}
}
else {
inspect = mrb_any_to_s(mrb, mod);
}