RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/rpmdb/ rpmdb.c rpmdb.h

From: Alexey Tourbin <at@rpm5.org>
Date: Thu 07 Aug 2008 - 20:40:13 CEST
Message-Id: <20080807184013.EB9AF7332@rpm5.org>
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Alexey Tourbin
  Root:   /v/rpm/cvs                       Email:  at@rpm5.org
  Module: rpm                              Date:   07-Aug-2008 20:40:13
  Branch: HEAD                             Handle: 2008080718401300

  Modified files:
    rpm/rpmdb               rpmdb.c rpmdb.h

  Log:
    rpmdb: introduced DBT_INIT for on-stack DBT structures

  Summary:
    Revision    Changes     Path
    1.259       +7  -10     rpm/rpmdb/rpmdb.c
    1.80        +4  -0      rpm/rpmdb/rpmdb.h
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmdb.c
  ============================================================================
  $ cvs diff -u -r1.258 -r1.259 rpmdb.c
  --- rpm/rpmdb/rpmdb.c	3 Aug 2008 14:01:00 -0000	1.258
  +++ rpm/rpmdb/rpmdb.c	7 Aug 2008 18:40:13 -0000	1.259
  @@ -1578,9 +1578,9 @@
   
   int rpmdbCount(rpmdb db, rpmTag tag, const void * keyp, size_t keylen)
   {
  -DBC * dbcursor = NULL;
  -DBT * key = alloca(sizeof(*key));
  -DBT * data = alloca(sizeof(*data));
  +    DBC * dbcursor = NULL;
  +    DBT k = DBT_INIT;
  +    DBT v = DBT_INIT;
       dbiIndex dbi;
       int rc;
       int xx;
  @@ -1588,9 +1588,6 @@
       if (db == NULL || keyp == NULL)
   	return 0;
   
  -memset(key, 0, sizeof(*key));
  -memset(data, 0, sizeof(*data));
  -
       dbi = dbiOpen(db, tag, 0);
       if (dbi == NULL)
   	return 0;
  @@ -1599,12 +1596,12 @@
   	keylen = strlen(keyp);
   
   /*@-temptrans@*/
  -key->data = (void *) keyp;
  +    k.data = (void *) keyp;
   /*@=temptrans@*/
  -key->size = (UINT32_T) keylen;
  +    k.size = (UINT32_T) keylen;
   
       xx = dbiCopen(dbi, dbi->dbi_txnid, &dbcursor, 0);
  -    rc = dbiGet(dbi, dbcursor, key, data, DB_SET);
  +    rc = dbiGet(dbi, dbcursor, &k, &v, DB_SET);
   #ifndef	SQLITE_HACK
       xx = dbiCclose(dbi, dbcursor, 0);
       dbcursor = NULL;
  @@ -1614,7 +1611,7 @@
   	dbiIndexSet matches;
   	/*@-nullpass@*/ /* FIX: matches might be NULL */
   	matches = NULL;
  -	(void) dbt2set(dbi, data, &matches);
  +	(void) dbt2set(dbi, &v, &matches);
   	if (matches) {
   	    rc = dbiIndexSetCount(matches);
   	    matches = dbiFreeIndexSet(matches);
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmdb.h
  ============================================================================
  $ cvs diff -u -r1.79 -r1.80 rpmdb.h
  --- rpm/rpmdb/rpmdb.h	2 Aug 2008 16:36:10 -0000	1.79
  +++ rpm/rpmdb/rpmdb.h	7 Aug 2008 18:40:13 -0000	1.80
  @@ -18,6 +18,10 @@
   #endif
   #endif
   
  +#if defined(_RPMDB_INTERNAL)
  +#define DBT_INIT {0}	/* -Wno-missing-field-initializers */
  +#endif
  +
   /*@-exportlocal@*/
   /*@unchecked@*/
   extern int _rpmdb_debug;
  @@ .
Received on Thu Aug 7 20:40:14 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.