summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--ext/dbm/dbm.c1
-rw-r--r--ext/sdbm/init.c1
3 files changed, 9 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 8dd2cac35e..ab872dd4df 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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)) {