summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-eval
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-09-30 10:14:25 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-09-30 10:14:25 +0900
commit3e3048ddd15ab6e593830f4f63b97b044a529e4a (patch)
tree52e257348174df5430db5625929eed3565c1fcf6 /mrbgems/mruby-eval
parentd85cce9539df91b8391c2a7f51820cb48a395839 (diff)
parenta10d36e0a294e5fc7af9af212f9f8eba33387692 (diff)
downloadmruby-3e3048ddd15ab6e593830f4f63b97b044a529e4a.tar.gz
mruby-3e3048ddd15ab6e593830f4f63b97b044a529e4a.zip
Merge pull request #2599 from SatoshiOdawara/fix_target_class_in_instance_eval
target_class should not be TT_ICLASS in instance_eval(string); ref #1152
Diffstat (limited to 'mrbgems/mruby-eval')
-rw-r--r--mrbgems/mruby-eval/src/eval.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/mrbgems/mruby-eval/src/eval.c b/mrbgems/mruby-eval/src/eval.c
index e97a09e80..5f6e03ed7 100644
--- a/mrbgems/mruby-eval/src/eval.c
+++ b/mrbgems/mruby-eval/src/eval.c
@@ -1,4 +1,5 @@
#include "mruby.h"
+#include "mruby/class.h"
#include "mruby/compile.h"
#include "mruby/irep.h"
#include "mruby/proc.h"
@@ -206,6 +207,9 @@ f_instance_eval(mrb_state *mrb, mrb_value self)
mrb_get_args(mrb, "s|zi", &s, &len, &file, &line);
mrb->c->ci->acc = CI_ACC_SKIP;
+ if (mrb->c->ci->target_class->tt == MRB_TT_ICLASS) {
+ mrb->c->ci->target_class = mrb->c->ci->target_class->c;
+ }
return mrb_run(mrb, create_proc_from_string(mrb, s, len, mrb_nil_value(), file, line), self);
}
else {