summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-02-03 09:15:42 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2006-02-03 09:15:42 +0000
commit5675cdbd418509bdb1abbc4442a681b808ed35e8 (patch)
treed731ff563b61a1983f234474bb3f72d190e8f91f /ext
parente4f1feac3e807e2e3790237749cfdb7a6104fd90 (diff)
* 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
Diffstat (limited to 'ext')
-rw-r--r--ext/dbm/dbm.c24
-rw-r--r--ext/gdbm/gdbm.c11
-rw-r--r--ext/iconv/iconv.c2
-rw-r--r--ext/openssl/ossl_asn1.c2
-rw-r--r--ext/openssl/ossl_config.c2
-rw-r--r--ext/openssl/ossl_pkcs7.c4
-rw-r--r--ext/openssl/ossl_ssl.c2
-rw-r--r--ext/openssl/ossl_x509name.c2
-rw-r--r--ext/sdbm/init.c11
-rw-r--r--ext/socket/socket.c2
-rw-r--r--ext/syck/rubyext.c6
-rw-r--r--ext/win32ole/win32ole.c2
12 files changed, 22 insertions, 48 deletions
diff --git a/ext/dbm/dbm.c b/ext/dbm/dbm.c
index 5573cb4..6e03e0e 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 a5d86e7..cb59ff3 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 cebbd91..37224d8 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 8d6bd01..e374964 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 ef89fdf..bf2db6b 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 38a7dce..0f6ffc0 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 30ab5bd..aab6477 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 989e28a..ece8bb8 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 f3e215e..9311a72 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 d315526..c29d4bc 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 078de4f..150ae14 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 fde5d2d..2e6b49e 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);