summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-07-04 07:30:11 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-07-04 07:30:11 +0000
commit27cafcfc89675f6fbd00830e0c59acaa994e0d5c (patch)
tree216e3386a428fcec2bc4d3aed1f14f4c4f3e71b5 /parse.y
parent56ff2b50f314e8d38ef37cdb08356546c0631b05 (diff)
parse.y: remove global_symbols.op_sym
* parse.y (global_symbols): remove op_sym, cache by fstring instead. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y27
1 files changed, 5 insertions, 22 deletions
diff --git a/parse.y b/parse.y
index eb79ac14c2..47899c196c 100644
--- a/parse.y
+++ b/parse.y
@@ -10152,7 +10152,6 @@ static struct symbols {
st_table *sym_id;
st_table *id_str;
st_table *pinned_dsym;
- VALUE op_sym[tLAST_OP_ID];
int minor_marked;
int pinned_dsym_minor_marked;
} global_symbols = {tLAST_TOKEN};
@@ -10183,9 +10182,6 @@ rb_gc_mark_symbols(int full_mark)
{
if (full_mark || global_symbols.minor_marked == 0) {
rb_mark_tbl(global_symbols.id_str);
- rb_gc_mark_locations(global_symbols.op_sym,
- global_symbols.op_sym + numberof(global_symbols.op_sym));
-
if (!full_mark) global_symbols.minor_marked = 1;
}
@@ -10797,27 +10793,14 @@ rb_id2str(ID id)
int i = 0;
if (id < INT_MAX && rb_ispunct((int)id)) {
- VALUE str = global_symbols.op_sym[i = (int)id];
- if (!str) {
- char name[2];
- name[0] = (char)id;
- name[1] = 0;
- str = rb_fstring_new(name, 1);
- global_symbols.op_sym[i] = str;
- global_symbols.minor_marked = 0;
- }
- return str;
+ char name[1];
+ name[0] = (char)id;
+ return rb_fstring_new(name, 1);
}
for (i = 0; i < op_tbl_count; i++) {
if (op_tbl[i].token == id) {
- VALUE str = global_symbols.op_sym[i];
- if (!str) {
- const char *name = op_tbl[i].name;
- str = rb_fstring_new(name, op_tbl_len(i));
- global_symbols.op_sym[i] = str;
- global_symbols.minor_marked = 0;
- }
- return str;
+ const char *name = op_tbl[i].name;
+ return rb_fstring_new(name, op_tbl_len(i));
}
}
}