RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Elan Ruusamäe Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: db Date: 03-Sep-2008 05:14:56 Branch: db-4_5_20 Handle: 2008090303145500 Modified files: (Branch: db-4_5_20) db/sequence sequence.c Log: - apply upstream patch.4.5.20.1 Summary: Revision Changes Path 1.6.4.1 +8 -0 db/sequence/sequence.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: db/sequence/sequence.c ============================================================================ $ cvs diff -u -r1.6 -r1.6.4.1 sequence.c --- db/sequence/sequence.c 1 Oct 2006 20:19:36 -0000 1.6 +++ db/sequence/sequence.c 3 Sep 2008 03:14:55 -0000 1.6.4.1 @@ -228,6 +228,9 @@ seq->seq_data.ulen = seq->seq_data.size = sizeof(seq->seq_record); seq->seq_rp = &seq->seq_record; + if ((ret = __dbt_usercopy(dbenv, keyp)) != 0) + goto err; + memset(&seq->seq_key, 0, sizeof(DBT)); if ((ret = __os_malloc(dbenv, keyp->size, &seq->seq_key.data)) != 0) goto err; @@ -365,6 +368,7 @@ ret = t_ret; ENV_LEAVE(dbenv, ip); + __dbt_userfree(dbenv, keyp, NULL, NULL); return (ret); } @@ -765,6 +769,10 @@ { SEQ_ILLEGAL_BEFORE_OPEN(seq, "DB_SEQUENCE->get_key"); + if (F_ISSET(key, DB_DBT_USERCOPY)) + return (__db_retcopy(seq->seq_dbp->dbenv, key, + seq->seq_key.data, seq->seq_key.size, NULL, 0)); + key->data = seq->seq_key.data; key->size = key->ulen = seq->seq_key.size; key->flags = seq->seq_key.flags; @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org