[ruby-cvs:57091] ko1:r49942 (trunk): * internal.h: use T_IMEMO to represent `struct MEMO' value.

ko1 at ruby-lang.org ko1 at ruby-lang.org
Thu Mar 12 08:13:03 JST 2015


ko1	2015-03-12 08:13:01 +0900 (Thu, 12 Mar 2015)

  New Revision: 49942

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=49942

  Log:
    * 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...)

  Modified files:
    trunk/ChangeLog
    trunk/enum.c
    trunk/enumerator.c
    trunk/ext/objspace/objspace.c
    trunk/gc.c
    trunk/internal.h
    trunk/load.c
    trunk/node.h
    trunk/parse.y


More information about the ruby-cvs mailing list