err = "c_get next_nodup";
goto fail;
}
+ key2 = *key;
if ( rc == MDB_NOTFOUND ) {
- rc = mdb_cursor_get( cursor, key, &data, MDB_LAST );
+ rc = mdb_cursor_get( cursor, &key2, &data, MDB_LAST );
if ( rc != 0 ) {
err = "c_get last";
goto fail;
}
} else {
- rc = mdb_cursor_get( cursor, key, &data, MDB_PREV );
+ rc = mdb_cursor_get( cursor, &key2, &data, MDB_PREV );
if ( rc != 0 ) {
err = "c_get prev";
goto fail;
hi = id;
}
/* delete the old key */
- rc = mdb_del( txn, dbi, key, NULL );
+ rc = mdb_del( txn, dbi, &key2, NULL );
if ( rc != 0 ) {
err = "mdb_del";
goto fail;