diff options
| author | Satoshi Odawara <[email protected]> | 2014-09-29 17:53:08 +0900 |
|---|---|---|
| committer | Satoshi Odawara <[email protected]> | 2014-09-29 17:53:08 +0900 |
| commit | a10d36e0a294e5fc7af9af212f9f8eba33387692 (patch) | |
| tree | 6e44b2fb4808fd00deed476cc79066c76bd9d859 /mrbgems/mruby-eval/src/eval.c | |
| parent | b090f43251ec8e3fffafa98932f359f053db4f90 (diff) | |
| download | mruby-a10d36e0a294e5fc7af9af212f9f8eba33387692.tar.gz mruby-a10d36e0a294e5fc7af9af212f9f8eba33387692.zip | |
target_class should not be TT_ICLASS in instance_eval(string); ref #1152
Diffstat (limited to 'mrbgems/mruby-eval/src/eval.c')
| -rw-r--r-- | mrbgems/mruby-eval/src/eval.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/mrbgems/mruby-eval/src/eval.c b/mrbgems/mruby-eval/src/eval.c index 8ee651718..c0176a1a3 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" @@ -197,6 +198,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 { |
