]>
Commit | Line | Data |
---|---|---|
09400904 AM |
1 | *** sequence/sequence.c.orig 27 Sep 2006 14:56:17 -0000 12.39 |
2 | --- sequence/sequence.c 26 Oct 2006 07:36:05 -0000 | |
3 | *************** | |
4 | *** 228,233 **** | |
5 | --- 228,236 ---- | |
6 | seq->seq_data.ulen = seq->seq_data.size = sizeof(seq->seq_record); | |
7 | seq->seq_rp = &seq->seq_record; | |
8 | ||
9 | + if ((ret = __dbt_usercopy(dbenv, keyp)) != 0) | |
10 | + goto err; | |
11 | + | |
12 | memset(&seq->seq_key, 0, sizeof(DBT)); | |
13 | if ((ret = __os_malloc(dbenv, keyp->size, &seq->seq_key.data)) != 0) | |
14 | goto err; | |
15 | *************** | |
16 | *** 365,370 **** | |
17 | --- 368,374 ---- | |
18 | ret = t_ret; | |
19 | ||
20 | ENV_LEAVE(dbenv, ip); | |
21 | + __dbt_userfree(dbenv, keyp, NULL, NULL); | |
22 | return (ret); | |
23 | } | |
24 | ||
25 | *************** | |
26 | *** 764,769 **** | |
27 | --- 768,777 ---- | |
28 | DBT *key; | |
29 | { | |
30 | SEQ_ILLEGAL_BEFORE_OPEN(seq, "DB_SEQUENCE->get_key"); | |
31 | + | |
32 | + if (F_ISSET(key, DB_DBT_USERCOPY)) | |
33 | + return (__db_retcopy(seq->seq_dbp->dbenv, key, | |
34 | + seq->seq_key.data, seq->seq_key.size, NULL, 0)); | |
35 | ||
36 | key->data = seq->seq_key.data; | |
37 | key->size = key->ulen = seq->seq_key.size; |