aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-09 02:45:03 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-01-09 02:45:03 +0000
commit4c0c299964b8357aec10d577e685c73f86c6eed3 (patch)
tree47a72e8e2f75f0e44ec382cae6ee0aea4cbc029c
parente6358072514105ec4fbe39a308637834642fb15d (diff)
downloadruby-4c0c299964b8357aec10d577e685c73f86c6eed3.tar.gz
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
-rw-r--r--enumerator.c16
-rw-r--r--gc.c2
-rw-r--r--vm.c2
3 files changed, 11 insertions, 9 deletions
diff --git a/enumerator.c b/enumerator.c
index d61d79e897..98c2b47641 100644
--- a/enumerator.c
+++ b/enumerator.c
@@ -13,6 +13,7 @@
************************************************/
#include "internal.h"
+#include "id.h"
/*
* Document-class: Enumerator
@@ -102,10 +103,16 @@
*/
VALUE rb_cEnumerator;
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_eqq, id_next, id_result, id_lazy, id_receiver, id_arguments, id_memo, id_method, id_force;
+static ID id_rewind, id_new, id_yield, id_to_enum;
+static ID id_next, id_result, id_lazy, id_receiver, id_arguments, id_memo, id_method, id_force;
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;
struct enumerator {
@@ -2414,16 +2421,11 @@ void
Init_Enumerator(void)
{
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_new = rb_intern("new");
- id_initialize = rb_intern("initialize");
id_next = rb_intern("next");
id_result = rb_intern("result");
id_lazy = rb_intern("lazy");
- id_eqq = rb_intern("===");
id_receiver = rb_intern("receiver");
id_arguments = rb_intern("arguments");
id_memo = rb_intern("memo");
diff --git a/gc.c b/gc.c
index 8e4190f352..b00dda8ffb 100644
--- a/gc.c
+++ b/gc.c
@@ -2669,7 +2669,7 @@ rb_undefine_finalizer(VALUE obj)
static void
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_obj_class(block));
}
diff --git a/vm.c b/vm.c
index 8197619ea5..2675c7de42 100644
--- a/vm.c
+++ b/vm.c
@@ -3076,7 +3076,7 @@ Init_VM(void)
vm_init_redefined_flag();
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);
rb_obj_freeze(rb_block_param_proxy);
rb_gc_register_mark_object(rb_block_param_proxy);