diff -r 30113bfbe723 -r b3afb9f1e801 lib/vpwtable/gdbm_read.cc --- a/lib/vpwtable/gdbm_read.cc Sun Jan 20 00:12:17 2008 +0100 +++ b/lib/vpwtable/gdbm_read.cc Sun Jan 20 00:22:09 2008 +0100 @@ -28,7 +28,7 @@ gdbm_vpwtable_reader(const mystring& filename); ~gdbm_vpwtable_reader(); bool operator!() const; - bool get(vpwentry& out); + vpwentry* get(); bool rewind(); bool end(); }; @@ -77,17 +77,16 @@ return false; } -bool gdbm_vpwtable_reader::get(vpwentry& out) +vpwentry* gdbm_vpwtable_reader::get() { + vpwentry* v = 0; if(key.dptr) { mystring name(key.dptr, key.dsize); datum rec = gdbm_fetch(dbf, key); mystring result(rec.dptr, rec.dsize); free(rec.dptr); - if(!out.from_record(name, result)) - return false; + v = vpwentry::new_from_record(name, result); key = gdbm_nextkey(dbf, key); - return true; } - return false; + return v; }