ruby-changes:24966
From: nobu <ko1@a...>
Date: Mon, 24 Sep 2012 10:16:47 +0900 (JST)
Subject: [ruby-changes:24966] nobu:r37018 (trunk): enum.c: id_call
nobu 2012-09-24 10:16:36 +0900 (Mon, 24 Sep 2012) New Revision: 37018 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=37018 Log: enum.c: id_call * enum.c (id_call): intern first and share. Modified files: trunk/enum.c Index: enum.c =================================================================== --- enum.c (revision 37017) +++ enum.c (revision 37018) @@ -19,6 +19,7 @@ VALUE rb_mEnumerable; static ID id_next; +static ID id_call; #define id_each idEach #define id_eqq idEqq #define id_cmp idCmp @@ -2264,9 +2265,9 @@ ENUM_WANT_SVALUE(); if (NIL_P(argp->state)) - v = rb_funcall(argp->categorize, rb_intern("call"), 1, i); + v = rb_funcall(argp->categorize, id_call, 1, i); else - v = rb_funcall(argp->categorize, rb_intern("call"), 2, i, argp->state); + v = rb_funcall(argp->categorize, id_call, 2, i, argp->state); if (v == alone) { if (!NIL_P(argp->prev_value)) { @@ -2462,9 +2463,9 @@ if (!NIL_P(argp->sep_pat)) header_p = rb_funcall(argp->sep_pat, id_eqq, 1, i); else if (NIL_P(argp->state)) - header_p = rb_funcall(argp->sep_pred, rb_intern("call"), 1, i); + header_p = rb_funcall(argp->sep_pred, id_call, 1, i); else - header_p = rb_funcall(argp->sep_pred, rb_intern("call"), 2, i, argp->state); + header_p = rb_funcall(argp->sep_pred, id_call, 2, i, argp->state); if (RTEST(header_p)) { if (!NIL_P(argp->prev_elts)) rb_funcall(argp->yielder, id_lshift, 1, argp->prev_elts); @@ -2733,4 +2734,5 @@ rb_define_method(rb_mEnumerable, "slice_before", enum_slice_before, -1); id_next = rb_intern("next"); + id_call = rb_intern("call"); } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/