11 #define _RPMBAG_INTERNAL
32 bag->sdbp =
_free(bag->sdbp);
34 bag->fn =
_free(bag->fn);
47 if (_rpmbagPool == NULL) {
48 _rpmbagPool =
rpmioNewPool(
"bag",
sizeof(*bag), -1, _rpmbag_debug,
53 memset(((
char *)bag)+
sizeof(bag->_item), 0,
sizeof(*bag)-
sizeof(bag->_item));
65 bag->sdbp = (
rpmsdb *)
xcalloc(_maxnsdbp,
sizeof(*bag->sdbp));
72 if (bag && bag->sdbp && bag->nsdbp < _maxnsdbp) {
76 sdbp[
i]->dbmode = dbmode;
86 if (bag && bag->sdbp && i >= 0 && i <= (
int)_maxnsdbp) {
88 memset(sdbp[i], 0,
sizeof(*sdbp[i]));
90 if ((i+1) == (
int)bag->nsdbp)
char * xstrdup(const char *str)
rpmbag rpmbagLink(rpmbag bag)
Reference a bag wrapper instance.
rpmbag rpmbagNew(const char *fn, int flags)
Create and load a bag wrapper.
Yet Another syslog(3) API clone.
void * xcalloc(size_t nmemb, size_t size)
rpmioItem rpmioGetPool(rpmioPool pool, size_t size)
Get unused item from pool, or alloc a new item.
int rpmbagDel(rpmbag bag, int i)
static rpmbag rpmbagGetPool(rpmioPool pool)
const char const bson int mongo_write_concern int flags
int rpmbagAdd(rpmbag bag, void *_db, int dbmode)
rpmioPool rpmioNewPool(const char *name, size_t size, int limit, int flags, char *(*dbg)(void *item), void(*init)(void *item), void(*fini)(void *item))
Create a memory pool.
static void * _free(const void *p)
Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
static void rpmbagFini(void *_bag)