method
clear
v2_2_9 -
Show latest stable
- Class:
GDBM
clear()public
Removes all the key-value pairs within gdbm.
static VALUE
fgdbm_clear(VALUE obj)
{
datum key, nextkey;
struct dbmdata *dbmp;
GDBM_FILE dbm;
rb_gdbm_modify(obj);
GetDBM2(obj, dbmp, dbm);
dbmp->di_size = -1;
#if 0
while (key = gdbm_firstkey(dbm), key.dptr) {
if (gdbm_delete(dbm, key)) {
free(key.dptr);
rb_raise(rb_eGDBMError, "%s", gdbm_strerror(gdbm_errno));
}
free(key.dptr);
}
#else
while (key = gdbm_firstkey(dbm), key.dptr) {
for (; key.dptr; key = nextkey) {
nextkey = gdbm_nextkey(dbm, key);
if (gdbm_delete(dbm, key)) {
free(key.dptr);
if (nextkey.dptr) free(nextkey.dptr);
rb_raise(rb_eGDBMError, "%s", gdbm_strerror(gdbm_errno));
}
free(key.dptr);
}
}
#endif
dbmp->di_size = 0;
return obj;
} Related methods
- Instance methods
- []
- []=
- cachesize=
- clear
- close
- closed?
- delete
- delete_if
- each
- each_key
- each_pair
- each_value
- empty?
- fastmode=
- fetch
- has_key?
- has_value?
- include?
- index
- invert
- key
- key?
- keys
- length
- member?
- reject
- reject!
- reorganize
- replace
- select
- shift
- size
- store
- sync
- syncmode=
- to_a
- to_hash
- update
- value?
- values
- values_at
- Class methods
- new
- open