diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | ext/dbm/dbm.c | 1 | ||||
-rw-r--r-- | ext/sdbm/init.c | 1 |
3 files changed, 9 insertions, 0 deletions
@@ -1,3 +1,10 @@ +Wed Oct 20 04:17:55 2004 Yukihiro Matsumoto <matz@ruby-lang.org> + + * ext/dbm/dbm.c (fdbm_delete_if): should check if deleting element + is a string. [ruby-dev:24490] + + * ext/sdbm/init.c (fsdbm_delete_if): ditto. + Wed Oct 20 01:37:18 2004 Yukihiro Matsumoto <matz@ruby-lang.org> * array.c (rb_ary_times): Array#* should return an instance of diff --git a/ext/dbm/dbm.c b/ext/dbm/dbm.c index e72d8ebba0..c4f8b2b3f5 100644 --- a/ext/dbm/dbm.c +++ b/ext/dbm/dbm.c @@ -356,6 +356,7 @@ fdbm_delete_if(obj) for (i = 0; i < RARRAY(ary)->len; i++) { keystr = RARRAY(ary)->ptr[i]; + StringValue(keystr); key.dptr = RSTRING(keystr)->ptr; key.dsize = RSTRING(keystr)->len; if (dbm_delete(dbm, key)) { diff --git a/ext/sdbm/init.c b/ext/sdbm/init.c index ecd4fd9201..eec9e71a3c 100644 --- a/ext/sdbm/init.c +++ b/ext/sdbm/init.c @@ -334,6 +334,7 @@ fsdbm_delete_if(obj) for (i = 0; i < RARRAY(ary)->len; i++) { keystr = RARRAY(ary)->ptr[i]; + StringValue(keystr); key.dptr = RSTRING(keystr)->ptr; key.dsize = RSTRING(keystr)->len; if (sdbm_delete(dbm, key)) { |