8000 vm_eval.c: new names of rb_funcall family · plusplus/ruby@0544c09 · GitHub
[go: up one dir, main page]

Skip to content

Commit 0544c09

Browse files
committed
vm_eval.c: new names of rb_funcall family
* vm_eval.c (rb_funcallv): add better names of rb_funcall2. * vm_eval.c (rb_funcallv_public): ditto for rb_funcall3. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
1 parent 97498d1 commit 0544c09

File tree

5 files changed

+29
-4
lines changed

5 files changed

+29
-4
lines changed

ChangeLog

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
Fri May 31 17:26:42 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
2+
3+
* vm_eval.c (rb_funcallv): add better names of rb_funcall2.
4+
5+
* vm_eval.c (rb_funcallv_public): ditto for rb_funcall3.
6+
17
Fri May 31 17:04:45 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
28

39
* array.c (rb_ary_new_capa): add better names of rb_ary_new2.

README.EXT

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1242,10 +1242,18 @@ rb_scan_args(int argc, VALUE *argv, const char *fmt, ...) ::
12421242
VALUE rb_funcall(VALUE recv, ID mid, int narg, ...) ::
12431243

12441244
Invokes a method. To retrieve mid from a method name, use rb_intern().
1245+
Able to call even private/protected methods.
12451246

12461247
VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv) ::
1248+
VALUE rb_funcallv(VALUE recv, ID mid, int argc, VALUE *argv) ::
12471249

12481250
Invokes a method, passing arguments as an array of values.
1251+
Able to call even private/protected methods.
1252+
1253+
VALUE rb_funcallv_public(VALUE recv, ID mid, int argc, VALUE *argv) ::
1254+
1255+
Invokes a method, passing arguments as an array of values.
1256+
Able to call only public methods.
12491257

12501258
VALUE rb_eval_string(const char *str) ::
12511259

README.EXT.ja

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,7 @@ Cから文字列を経由せずにRubyのメソッドを呼び出すためには
527527
します.その他に引数の指定の仕方が違う以下の関数もあります.
528528

529529
VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)
530+
VALUE rb_funcallv(VALUE recv, ID mid, int argc, VALUE *argv)
530531
VALUE rb_apply(VALUE recv, ID mid, VALUE args)
531532

532533
applyには引数としてRubyの配列を与えます.
@@ -1258,10 +1259,18 @@ VALUE rb_funcall(VALUE recv, ID mid, int narg, ...) ::
12581259

12591260
メソッド呼び出し.文字列からmidを得るためにはrb_intern()を
12601261
使う.
1262+
private/protectedなメソッドでも呼び出せる.
12611263

12621264
VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv) ::
1265+
VALUE rb_funcallv(VALUE recv, ID mid, int argc, VALUE *argv) ::
12631266

12641267
メソッド呼び出し.引数をargc, argv形式で渡す.
1268+
private/protectedなメソッドでも呼び出せる.
1269+
1270+
VALUE rb_funcallv_public(VALUE recv, ID mid, int argc, VALUE *argv) ::
1271+
1272+
メソッド呼び出し.
1273+
publicなメソッドしか呼べない.
12651274

12661275
VALUE rb_eval_string(const char *str)
12671276

include/ruby/ruby.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1463,8 +1463,10 @@ VALUE rb_eval_string(const char*);
14631463
VALUE rb_eval_string_protect(const char*, int*);
14641464
VALUE rb_eval_string_wrap(const char*, int*);
14651465
VALUE rb_funcall(VALUE, ID, int, ...);
1466-
VALUE rb_funcall2(VALUE, ID, int, const VALUE*);
1467-
VALUE rb_funcall3(VALUE, ID, int, const VALUE*);
1466+
VALUE rb_funcallv(VALUE, ID, int, const VALUE*);
1467+
VALUE rb_funcallv_public(VALUE, ID, int, const VALUE*);
1468+
#define rb_funcall2 rb_funcallv
1469+
#define rb_funcall3 rb_funcallv_public
14681470
VALUE rb_funcall_passing_block(VALUE, ID, int, const VALUE*);
14691471
int rb_scan_args(int, const VALUE*, const char*, ...);
14701472
VALUE rb_call_super(int, const VALUE*);

vm_eval.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -802,7 +802,7 @@ rb_funcall(VALUE recv, ID mid, int n, ...)
802802
* \param argv pointer to an array of method arguments
803803
*/
804804
VALUE
805-
rb_funcall2(VALUE recv, ID mid, int argc, const VALUE *argv)
805+
rb_funcallv(VALUE recv, ID mid, int argc, const VALUE *argv)
806806
{
807807
return rb_call(recv, mid, argc, argv, CALL_FCALL);
808808
}
@@ -817,7 +817,7 @@ rb_funcall2(VALUE recv, ID mid, int argc, const VALUE *argv)
817817
* \param argv pointer to an array of method arguments
818818
*/
819819
VALUE
820-
rb_funcall3(VALUE recv, ID mid, int argc, const VALUE *argv)
820+
rb_funcallv_public(VALUE recv, ID mid, int argc, const VALUE *argv)
821821
{
822822
return rb_call(recv, mid, argc, argv, CALL_PUBLIC);
823823
}

0 commit comments

Comments
 (0)
0