use predefined ids in a few more places
Saves a little space on x86: text data bss dec hex filename 3684110 11968 34240 3730318 38eb8e ruby.before 3684086 11968 34240 3730294 38eb76 ruby.after * enumerator.c: include id.h, define aliases (Init_Enumeerator): remove unnecessary rb_intern calls * gc.c (should_be_callable): use idCall * vm.c (Init_VM): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
e635807251
commit
4c0c299964
16
enumerator.c
16
enumerator.c
@ -13,6 +13,7 @@
|
|||||||
************************************************/
|
************************************************/
|
||||||
|
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
|
#include "id.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Document-class: Enumerator
|
* Document-class: Enumerator
|
||||||
@ -102,10 +103,16 @@
|
|||||||
*/
|
*/
|
||||||
VALUE rb_cEnumerator;
|
VALUE rb_cEnumerator;
|
||||||
VALUE rb_cLazy;
|
VALUE rb_cLazy;
|
||||||
static ID id_rewind, id_each, id_new, id_initialize, id_yield, id_call, id_size, id_to_enum;
|
static ID id_rewind, id_new, id_yield, id_to_enum;
|
||||||
static ID id_eqq, id_next, id_result, id_lazy, id_receiver, id_arguments, id_memo, id_method, id_force;
|
static ID id_next, id_result, id_lazy, id_receiver, id_arguments, id_memo, id_method, id_force;
|
||||||
static VALUE sym_each, sym_cycle;
|
static VALUE sym_each, sym_cycle;
|
||||||
|
|
||||||
|
#define id_call idCall
|
||||||
|
#define id_each idEach
|
||||||
|
#define id_eqq idEqq
|
||||||
|
#define id_initialize idInitialize
|
||||||
|
#define id_size idSize
|
||||||
|
|
||||||
VALUE rb_eStopIteration;
|
VALUE rb_eStopIteration;
|
||||||
|
|
||||||
struct enumerator {
|
struct enumerator {
|
||||||
@ -2414,16 +2421,11 @@ void
|
|||||||
Init_Enumerator(void)
|
Init_Enumerator(void)
|
||||||
{
|
{
|
||||||
id_rewind = rb_intern("rewind");
|
id_rewind = rb_intern("rewind");
|
||||||
id_each = rb_intern("each");
|
|
||||||
id_call = rb_intern("call");
|
|
||||||
id_size = rb_intern("size");
|
|
||||||
id_yield = rb_intern("yield");
|
id_yield = rb_intern("yield");
|
||||||
id_new = rb_intern("new");
|
id_new = rb_intern("new");
|
||||||
id_initialize = rb_intern("initialize");
|
|
||||||
id_next = rb_intern("next");
|
id_next = rb_intern("next");
|
||||||
id_result = rb_intern("result");
|
id_result = rb_intern("result");
|
||||||
id_lazy = rb_intern("lazy");
|
id_lazy = rb_intern("lazy");
|
||||||
id_eqq = rb_intern("===");
|
|
||||||
id_receiver = rb_intern("receiver");
|
id_receiver = rb_intern("receiver");
|
||||||
id_arguments = rb_intern("arguments");
|
id_arguments = rb_intern("arguments");
|
||||||
id_memo = rb_intern("memo");
|
id_memo = rb_intern("memo");
|
||||||
|
2
gc.c
2
gc.c
@ -2669,7 +2669,7 @@ rb_undefine_finalizer(VALUE obj)
|
|||||||
static void
|
static void
|
||||||
should_be_callable(VALUE block)
|
should_be_callable(VALUE block)
|
||||||
{
|
{
|
||||||
if (!rb_obj_respond_to(block, rb_intern("call"), TRUE)) {
|
if (!rb_obj_respond_to(block, idCall, TRUE)) {
|
||||||
rb_raise(rb_eArgError, "wrong type argument %"PRIsVALUE" (should be callable)",
|
rb_raise(rb_eArgError, "wrong type argument %"PRIsVALUE" (should be callable)",
|
||||||
rb_obj_class(block));
|
rb_obj_class(block));
|
||||||
}
|
}
|
||||||
|
2
vm.c
2
vm.c
@ -3076,7 +3076,7 @@ Init_VM(void)
|
|||||||
vm_init_redefined_flag();
|
vm_init_redefined_flag();
|
||||||
|
|
||||||
rb_block_param_proxy = rb_obj_alloc(rb_cObject);
|
rb_block_param_proxy = rb_obj_alloc(rb_cObject);
|
||||||
rb_add_method(rb_singleton_class(rb_block_param_proxy), rb_intern("call"), VM_METHOD_TYPE_OPTIMIZED,
|
rb_add_method(rb_singleton_class(rb_block_param_proxy), idCall, VM_METHOD_TYPE_OPTIMIZED,
|
||||||
(void *)OPTIMIZED_METHOD_TYPE_BLOCK_CALL, METHOD_VISI_PUBLIC);
|
(void *)OPTIMIZED_METHOD_TYPE_BLOCK_CALL, METHOD_VISI_PUBLIC);
|
||||||
rb_obj_freeze(rb_block_param_proxy);
|
rb_obj_freeze(rb_block_param_proxy);
|
||||||
rb_gc_register_mark_object(rb_block_param_proxy);
|
rb_gc_register_mark_object(rb_block_param_proxy);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user