summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authoreban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-12-10 10:06:20 +0000
committereban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2001-12-10 10:06:20 +0000
commite9c20dacbffe6372b6df9627b698bdff1c9642d0 (patch)
treeb380bdb991d8f5e4e67cef76fd92ddfed88c79db /parse.y
parent82e28c6b959c11603612a044664c11ed57b0ffdc (diff)
* parse.y (gettable): should freeze __FILE__ string(__LINE__ is Fixnum).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1901 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y6
1 files changed, 3 insertions, 3 deletions
diff --git a/parse.y b/parse.y
index 274798456d..da7cc60065 100644
--- a/parse.y
+++ b/parse.y
@@ -4088,13 +4088,13 @@ gettable(id)
return NEW_FALSE();
}
else if (id == k__FILE__) {
- return NEW_STR(rb_str_new2(ruby_sourcefile));
- }
- else if (id == k__LINE__) {
VALUE f = rb_str_new2(ruby_sourcefile);
OBJ_FREEZE(f);
return NEW_STR(f);
}
+ else if (id == k__LINE__) {
+ return NEW_LIT(INT2FIX(ruby_sourceline));
+ }
else if (is_local_id(id)) {
if (dyna_in_block() && rb_dvar_defined(id)) return NEW_DVAR(id);
if (local_id(id)) return NEW_LVAR(id);