From 5675cdbd418509bdb1abbc4442a681b808ed35e8 Mon Sep 17 00:00:00 2001 From: matz Date: Fri, 3 Feb 2006 09:15:42 +0000 Subject: * eval.c: unify ruby_class (for method definition) and ruby_cbase (for constant reference). * eval.c (rb_call0): use TMP_ALLOC() instead of allocating a temporary array object. * eval.c (eval): need not to protect $SAFE value. [ruby-core:07177] * error.c (Init_Exception): change NameError to direct subclass of Exception so that default rescue do not handle it silently. * struct.c (rb_struct_select): update RDoc description. [ruby-core:7254] * numeric.c (int_upto): return an enumerator if no block is attached to the method. * numeric.c (int_downto): ditto. * numeric.c (int_dotimes): ditto. * enum.c (enum_first): new method Enumerable#first to take first n element from an enumerable. * enum.c (enum_group_by): new method Enumerable#group_by that groups enumerable values according to their block values. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/dbm/dbm.c | 24 ++++++------------------ ext/gdbm/gdbm.c | 11 ++--------- ext/iconv/iconv.c | 2 +- ext/openssl/ossl_asn1.c | 2 +- ext/openssl/ossl_config.c | 2 +- ext/openssl/ossl_pkcs7.c | 4 ++-- ext/openssl/ossl_ssl.c | 2 +- ext/openssl/ossl_x509name.c | 2 +- ext/sdbm/init.c | 11 ++--------- ext/socket/socket.c | 2 +- ext/syck/rubyext.c | 6 +++--- ext/win32ole/win32ole.c | 2 +- 12 files changed, 22 insertions(+), 48 deletions(-) (limited to 'ext') diff --git a/ext/dbm/dbm.c b/ext/dbm/dbm.c index 5573cb415d..6e03e0eeeb 100644 --- a/ext/dbm/dbm.c +++ b/ext/dbm/dbm.c @@ -426,20 +426,10 @@ fdbm_invert(obj) return hash; } -static VALUE each_pair _((VALUE)); +static VALUE fdbm_store(VALUE,VALUE,VALUE); static VALUE -each_pair(obj) - VALUE obj; -{ - return rb_funcall(obj, rb_intern("each_pair"), 0, 0); -} - -static VALUE fdbm_store _((VALUE,VALUE,VALUE)); - -static VALUE -update_i(pair, dbm) - VALUE pair, dbm; +update_i(VALUE pair, VALUE dbm) { Check_Type(pair, T_ARRAY); if (RARRAY(pair)->len < 2) { @@ -450,19 +440,17 @@ update_i(pair, dbm) } static VALUE -fdbm_update(obj, other) - VALUE obj, other; +fdbm_update(VALUE obj, VALUE other) { - rb_iterate(each_pair, other, update_i, obj); + rb_block_call(other, rb_intern("each_pair"), 0, 0, update_i, obj); return obj; } static VALUE -fdbm_replace(obj, other) - VALUE obj, other; +fdbm_replace(VALUE obj, VALUE other) { fdbm_clear(obj); - rb_iterate(each_pair, other, update_i, obj); + rb_block_call(other, rb_intern("each_pair"), 0, 0, update_i, obj); return obj; } diff --git a/ext/gdbm/gdbm.c b/ext/gdbm/gdbm.c index a5d86e70af..cb59ff3c1e 100644 --- a/ext/gdbm/gdbm.c +++ b/ext/gdbm/gdbm.c @@ -530,13 +530,6 @@ fgdbm_invert(obj) static VALUE each_pair _((VALUE)); -static VALUE -each_pair(obj) - VALUE obj; -{ - return rb_funcall(obj, rb_intern("each_pair"), 0, 0); -} - static VALUE fgdbm_store _((VALUE,VALUE,VALUE)); static VALUE @@ -555,7 +548,7 @@ static VALUE fgdbm_update(obj, other) VALUE obj, other; { - rb_iterate(each_pair, other, update_i, obj); + rb_block_call(other, rb_intern("each_pair"), 0, 0, update_i, obj); return obj; } @@ -564,7 +557,7 @@ fgdbm_replace(obj, other) VALUE obj, other; { fgdbm_clear(obj); - rb_iterate(each_pair, other, update_i, obj); + rb_block_call(other, rb_intern("each_pair"), 0, 0, update_i, obj); return obj; } diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c index cebbd912fe..37224d884b 100644 --- a/ext/iconv/iconv.c +++ b/ext/iconv/iconv.c @@ -522,7 +522,7 @@ get_iconv_opt(struct rb_iconv_opt_t *opt, VALUE options) opt->transliterate = Qundef; opt->discard_ilseq = Qundef; if (!NIL_P(options)) { - rb_iterate(rb_each, options, get_iconv_opt_i, (VALUE)opt); + rb_block_call(options, rb_intern("each"), 0, 0, get_iconv_opt_i, (VALUE)opt); } } diff --git a/ext/openssl/ossl_asn1.c b/ext/openssl/ossl_asn1.c index 8d6bd014ca..e374964211 100644 --- a/ext/openssl/ossl_asn1.c +++ b/ext/openssl/ossl_asn1.c @@ -678,7 +678,7 @@ static VALUE join_der(VALUE enumerable) { VALUE str = rb_str_new(0, 0); - rb_iterate(rb_each, enumerable, join_der_i, str); + rb_block_call(enumerable, rb_intern("each"), 0, 0, join_der_i, str); return str; } diff --git a/ext/openssl/ossl_config.c b/ext/openssl/ossl_config.c index ef89fdfe0d..bf2db6b00e 100644 --- a/ext/openssl/ossl_config.c +++ b/ext/openssl/ossl_config.c @@ -246,7 +246,7 @@ static VALUE ossl_config_set_section(VALUE self, VALUE section, VALUE hash) { VALUE arg[2] = { self, section }; - rb_iterate(rb_each, hash, set_conf_section_i, (VALUE)arg); + rb_block_call(hash, rb_intern("each"), 0, 0, set_conf_section_i, (VALUE)arg); return hash; } diff --git a/ext/openssl/ossl_pkcs7.c b/ext/openssl/ossl_pkcs7.c index 38a7dce7a2..0f6ffc0277 100644 --- a/ext/openssl/ossl_pkcs7.c +++ b/ext/openssl/ossl_pkcs7.c @@ -583,7 +583,7 @@ ossl_pkcs7_set_certificates(VALUE self, VALUE ary) certs = pkcs7_get_certs_or_crls(self, 1); while((cert = sk_X509_pop(certs))) X509_free(cert); - rb_iterate(rb_each, ary, ossl_pkcs7_set_certs_i, self); + rb_block_call(ary, rb_intern("each"), 0, 0, ossl_pkcs7_set_certs_i, self); return ary; } @@ -623,7 +623,7 @@ ossl_pkcs7_set_crls(VALUE self, VALUE ary) crls = pkcs7_get_certs_or_crls(self, 0); while((crl = sk_X509_CRL_pop(crls))) X509_CRL_free(crl); - rb_iterate(rb_each, ary, ossl_pkcs7_set_crls_i, self); + rb_block_call(ary, rb_intern("each"), 0, 0, ossl_pkcs7_set_crls_i, self); return ary; } diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c index 30ab5bdfe1..aab64771b4 100644 --- a/ext/openssl/ossl_ssl.c +++ b/ext/openssl/ossl_ssl.c @@ -324,7 +324,7 @@ ossl_sslctx_setup(VALUE self) val = ossl_sslctx_get_extra_cert(self); if(!NIL_P(val)){ - rb_iterate(rb_each, val, ossl_sslctx_add_extra_chain_cert_i, self); + rb_block_call(val, rb_intern("each"), 0, 0, ossl_sslctx_add_extra_chain_cert_i, self); } /* private key may be bundled in certificate file. */ diff --git a/ext/openssl/ossl_x509name.c b/ext/openssl/ossl_x509name.c index 989e28a7e6..ece8bb8cef 100644 --- a/ext/openssl/ossl_x509name.c +++ b/ext/openssl/ossl_x509name.c @@ -125,7 +125,7 @@ ossl_x509name_initialize(int argc, VALUE *argv, VALUE self) VALUE args; if(NIL_P(template)) template = OBJECT_TYPE_TEMPLATE; args = rb_ary_new3(2, self, template); - rb_iterate(rb_each, tmp, ossl_x509name_init_i, args); + rb_block_call(tmp, rb_intern("each"), 0, 0, ossl_x509name_init_i, args); } else{ unsigned char *p; diff --git a/ext/sdbm/init.c b/ext/sdbm/init.c index f3e215e8d6..9311a7237d 100644 --- a/ext/sdbm/init.c +++ b/ext/sdbm/init.c @@ -406,13 +406,6 @@ fsdbm_invert(obj) static VALUE each_pair _((VALUE)); -static VALUE -each_pair(obj) - VALUE obj; -{ - return rb_funcall(obj, rb_intern("each_pair"), 0, 0); -} - static VALUE fsdbm_store _((VALUE,VALUE,VALUE)); static VALUE @@ -431,7 +424,7 @@ static VALUE fsdbm_update(obj, other) VALUE obj, other; { - rb_iterate(each_pair, other, update_i, obj); + rb_block_call(other, rb_intern("each_pair"), 0, 0, update_i, obj); return obj; } @@ -440,7 +433,7 @@ fsdbm_replace(obj, other) VALUE obj, other; { fsdbm_clear(obj); - rb_iterate(each_pair, other, update_i, obj); + rb_block_call(other, rb_intern("each_pair"), 0, 0, update_i, obj); return obj; } diff --git a/ext/socket/socket.c b/ext/socket/socket.c index d315526203..c29d4bc759 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -70,7 +70,7 @@ #endif #include "sockport.h" -static int do_not_reverse_lookup = 1; +static int do_not_reverse_lookup = 0; #define FMODE_NOREVLOOKUP 0x100 VALUE rb_cBasicSocket; diff --git a/ext/syck/rubyext.c b/ext/syck/rubyext.c index 078de4f78d..150ae14fca 100644 --- a/ext/syck/rubyext.c +++ b/ext/syck/rubyext.c @@ -571,7 +571,7 @@ yaml_org_handler( n, ref ) VALUE dup = rb_funcall( tmph, s_dup, 0 ); tmp = rb_ary_reverse( tmp ); rb_ary_push( tmp, obj ); - rb_iterate( rb_each, tmp, syck_merge_i, dup ); + rb_block_call(tmp, rb_intern("each"), 0, 0, syck_merge_i, dup); obj = dup; skip_aset = 1; } @@ -1006,7 +1006,7 @@ syck_resolver_node_import( self, node ) VALUE dup = rb_funcall( end, s_dup, 0 ); v = rb_ary_reverse( v ); rb_ary_push( v, obj ); - rb_iterate( rb_each, v, syck_merge_i, dup ); + rb_block_call(v, rb_intern("each"), 0, 0, syck_merge_i, dup); obj = dup; skip_aset = 1; } @@ -1175,7 +1175,7 @@ syck_resolver_transfer( self, type, val ) } else if ( !NIL_P( obj ) && rb_obj_is_instance_of( val, rb_cHash ) ) { - rb_iterate( rb_each, val, syck_set_ivars, obj ); + rb_block_call(val, rb_intern("each"), 0, 0, syck_set_ivars, obj); } } else diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c index fde5d2d456..2e6b49e9c3 100644 --- a/ext/win32ole/win32ole.c +++ b/ext/win32ole/win32ole.c @@ -2218,7 +2218,7 @@ ole_invoke(argc, argv, self, wFlags) op.dp.cArgs = cNamedArgs + argc - 2; op.pNamedArgs = ALLOCA_N(OLECHAR*, cNamedArgs + 1); op.dp.rgvarg = ALLOCA_N(VARIANTARG, op.dp.cArgs); - rb_iterate(rb_each, param, hash2named_arg, (VALUE)&op); + rb_block_call(param, rb_intern("each"), 0, 0, hash2named_arg, (VALUE)&op); pDispID = ALLOCA_N(DISPID, cNamedArgs + 1); op.pNamedArgs[0] = ole_mb2wc(StringValuePtr(cmd), -1); -- cgit v1.2.3