DBMError: dbm_store failed (ruby1.8.7_p160)その3位
いろいろ弄るも上手く動かない。
- dbm.c より
static VALUE
fdbm_store(obj, keystr, valstr)
VALUE obj, keystr, valstr;
{
datum key, val;
struct dbmdata *dbmp;
DBM *dbm;
fdbm_modify(obj);
keystr = rb_obj_as_string(keystr);
valstr = rb_obj_as_string(valstr);
key.dptr = RSTRING_PTR(keystr);
key.dsize = RSTRING_LEN(keystr);
val.dptr = RSTRING_PTR(valstr);
val.dsize =RSTRING_LEN(valstr);
GetDBM2(obj, dbmp, dbm);
dbmp->di_size = -1;
if (dbm_store(dbm, key, val, DBM_REPLACE)) {
#ifdef HAVE_DBM_CLEARERR
dbm_clearerr(dbm);
#endif
if (errno == EPERM) rb_sys_fail(0);
rb_raise(rb_eDBMError, "dbm_store failed");
}
return valstr;
}
if (dbm_store(dbm, key, val, DBM_REPLACE))の中に入っているのだけは間違いない。やはりgdbm.dll側の問題なんだろうな。
参照しているのはYAML::DBM位なので無視してもいいんだが、それが悔しいんだよな。