initialize all DBT structs with 0
This commit is contained in:
parent
68a340c591
commit
fb5c2a89bc
25
c/bdb.c
25
c/bdb.c
|
@ -407,12 +407,8 @@ s48_value scsh_enter_DBT_as_bytevector(DBT* dt)
|
|||
|
||||
void scsh_extract_bytevector_as_DBT(s48_value bytevector, DBT* dt)
|
||||
{
|
||||
S48_DECLARE_GC_PROTECT(1);
|
||||
|
||||
S48_GC_PROTECT_1(bytevector);
|
||||
dt->data = s48_extract_byte_vector(bytevector);
|
||||
dt->size = S48_BYTE_VECTOR_LENGTH(bytevector);
|
||||
S48_GC_UNPROTECT();
|
||||
}
|
||||
|
||||
/* DBT operations */
|
||||
|
@ -421,7 +417,7 @@ void scsh_extract_bytevector_as_DBT(s48_value bytevector, DBT* dt)
|
|||
s48_value scsh_bdb_put(s48_value db, s48_value skey, s48_value sdata,
|
||||
s48_value stxnid, s48_value sflags)
|
||||
{
|
||||
int res;
|
||||
int res = 0;
|
||||
DB *dbp;
|
||||
DB_TXN *txnid;
|
||||
DBT key, data;
|
||||
|
@ -433,12 +429,14 @@ s48_value scsh_bdb_put(s48_value db, s48_value skey, s48_value sdata,
|
|||
dbp = scsh_extract_db(db);
|
||||
txnid = EXTRACT_OPTIONAL_TXNID(stxnid);
|
||||
flags = s48_extract_integer(sflags);
|
||||
|
||||
|
||||
memset(&key, 0, sizeof(DBT));
|
||||
memset(&data, 0, sizeof(DBT));
|
||||
scsh_extract_bytevector_as_DBT(skey, &key);
|
||||
scsh_extract_bytevector_as_DBT(sdata, &data);
|
||||
S48_GC_UNPROTECT();
|
||||
|
||||
|
||||
res = dbp->put(dbp, txnid, &key, &data, flags);
|
||||
S48_GC_UNPROTECT();
|
||||
CHECK_BDB_RESULT_CODE(res);
|
||||
return S48_TRUE;
|
||||
}
|
||||
|
@ -454,14 +452,17 @@ s48_value scsh_bdb_get(s48_value handle, s48_value skey,
|
|||
DBT key, data;
|
||||
|
||||
S48_DECLARE_GC_PROTECT(4);
|
||||
|
||||
S48_GC_PROTECT_4(handle, skey, stxnid, sflags);
|
||||
memset(&key, 0, sizeof(DBT));
|
||||
memset(&data, 0, sizeof(DBT));
|
||||
|
||||
dbp = scsh_extract_db(handle);
|
||||
flags = s48_extract_integer(sflags);
|
||||
txnid = EXTRACT_OPTIONAL_TXNID(stxnid);
|
||||
|
||||
scsh_extract_bytevector_as_DBT(skey, &key);
|
||||
S48_GC_UNPROTECT();
|
||||
|
||||
res = dbp->get(dbp, txnid, &key, &data, flags);
|
||||
|
||||
switch (res) {
|
||||
|
@ -491,6 +492,7 @@ s48_value scsh_bdb_del(s48_value handle, s48_value skey,
|
|||
dbp = scsh_extract_db(handle);
|
||||
flags = s48_extract_integer(sflags);
|
||||
txnid = EXTRACT_OPTIONAL_TXNID(stxnid);
|
||||
memset(&key, 0, sizeof(DBT));
|
||||
scsh_extract_bytevector_as_DBT(skey, &key);
|
||||
|
||||
S48_GC_UNPROTECT();
|
||||
|
@ -544,10 +546,11 @@ s48_value scsh_bdb_cursor_cget(s48_value dbc, s48_value sflags)
|
|||
DBC* dbcp;
|
||||
u_int32_t flags;
|
||||
DBT *key, *data;
|
||||
|
||||
S48_DECLARE_GC_PROTECT(2);
|
||||
|
||||
S48_GC_PROTECT_2(dbc, sflags);
|
||||
|
||||
memset(&key, 0, sizeof(DBT));
|
||||
memset(&data, 0, sizeof(DBT));
|
||||
dbcp = scsh_extract_cursor(dbc);
|
||||
flags = s48_extract_integer(sflags);
|
||||
S48_GC_UNPROTECT();
|
||||
|
|
Loading…
Reference in New Issue