Bug #4379 » eval_location.patch
vm_eval.c | ||
---|---|---|
rb_block_t block;
|
||
volatile int parse_in_eval;
|
||
volatile int mild_compile_error;
|
||
volatile int is_user_file = FALSE;
|
||
if (file == 0) {
|
||
file = rb_sourcefile();
|
||
line = rb_sourceline();
|
||
} else {
|
||
is_user_file = TRUE;
|
||
}
|
||
parse_in_eval = th->parse_in_eval;
|
||
... | ... | |
if (rb_obj_is_kind_of(scope, rb_cBinding)) {
|
||
GetBindingPtr(scope, bind);
|
||
envval = bind->env;
|
||
if (strcmp(file, "(eval)") == 0 && bind->filename != Qnil) {
|
||
if (!is_user_file && strcmp(file, "(eval)") == 0 && bind->filename != Qnil) {
|
||
file = RSTRING_PTR(bind->filename);
|
||
line = bind->line_no;
|
||
}
|
||
... | ... | |
if (state) {
|
||
if (state == TAG_RAISE) {
|
||
VALUE errinfo = th->errinfo;
|
||
if (strcmp(file, "(eval)") == 0) {
|
||
if (!is_user_file && strcmp(file, "(eval)") == 0) {
|
||
VALUE mesg, errat, bt2;
|
||
extern VALUE rb_get_backtrace(VALUE info);
|
||
ID id_mesg;
|