diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-03-11 23:13:01 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-03-11 23:13:01 +0000 |
commit | 08f3cfb5859332c0f7a9a574dc64a2a002c50354 (patch) | |
tree | 9b88e32745288764702ef3685d3b10b5b1d175a8 /parse.y | |
parent | 287b046fab9fc07f228977de7e0dc087f29d2516 (diff) | |
download | ruby-08f3cfb5859332c0f7a9a574dc64a2a002c50354.tar.gz |
* internal.h: use T_IMEMO to represent `struct MEMO' value.
memo->v1 and memo->v2 is WB protected values.
So use MEMO_V1/V2_SET() macros to set these values.
memo->u3 is ambiguous (sometimes a VALUE, sometimes an integer
value), so use gc_mark_maybe() in gc.c to mark it.
Rename NEW_MEMO() to MEMO_NEW().
Move MEMO_FOR and NEW_MEMO_FOF macros from node.h.
Export a rb_imemo_new() function for ext/ripper.
* node.h: remove NODE_MEMO.
* enum.c: catch up these change.
* enumerator.c: ditto.
* load.c: ditto.
* ext/objspace/objspace.c (count_nodes): ditto.
* gc.c (gc_mark_children): mark imemo_memo type.
* parse.y (new_args_gen): use T_IMEMO.
(I'm not sure it is working correctly...)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -654,7 +654,7 @@ new_args_gen(struct parser_params *parser, VALUE f, VALUE o, VALUE r, VALUE p, V static inline VALUE new_args_tail_gen(struct parser_params *parser, VALUE k, VALUE kr, VALUE b) { - return (VALUE)rb_node_newnode(NODE_MEMO, k, kr, b); + return (VALUE)MEMO_NEW(k, kr, b); } #define new_args_tail(k,kr,b) new_args_tail_gen(parser, (k),(kr),(b)) |