summaryrefslogtreecommitdiff
path: root/ext/dbm
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/dbm
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/dbm')
-rw-r--r--ext/dbm/dbm.c24
1 files changed, 6 insertions, 18 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;
}