diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | ext/dbm/dbm.c | 3 | ||||
-rw-r--r-- | ext/sdbm/init.c | 3 |
3 files changed, 12 insertions, 2 deletions
@@ -1,3 +1,11 @@ +Mon Mar 23 21:41:14 2009 Akinori MUSHA <knu@iDaemons.org> + + * ext/dbm/dbm.c (fdbm_initialize): Make the file variable + volatile, because FilePathValue() currently does not protect the + given variable from GC. (Probably it should) + + * ext/sdbm/init.c (fsdbm_initialize): Ditto. + Mon Mar 23 06:51:16 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> * enc/depend (link_so): replaces $(TARGET) with basename of the diff --git a/ext/dbm/dbm.c b/ext/dbm/dbm.c index 7a78f8dad0..84d331ae53 100644 --- a/ext/dbm/dbm.c +++ b/ext/dbm/dbm.c @@ -91,7 +91,8 @@ fdbm_alloc(VALUE klass) static VALUE fdbm_initialize(int argc, VALUE *argv, VALUE obj) { - VALUE file, vmode, vflags; + volatile VALUE file; + VALUE vmode, vflags; DBM *dbm; struct dbmdata *dbmp; int mode, flags = 0; diff --git a/ext/sdbm/init.c b/ext/sdbm/init.c index 2e4f75cfbf..f630dc3cc9 100644 --- a/ext/sdbm/init.c +++ b/ext/sdbm/init.c @@ -82,7 +82,8 @@ fsdbm_alloc(VALUE klass) static VALUE fsdbm_initialize(int argc, VALUE *argv, VALUE obj) { - VALUE file, vmode; + volatile VALUE file; + VALUE vmode; DBM *dbm; struct dbmdata *dbmp; int mode; |