RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 06-Jul-2016 16:25:43 Branch: rpm-5_4 Handle: 2016070614254201 Modified files: (Branch: rpm-5_4) rpm CHANGES rpm/rpmio librpmio.vers macro.c rpmio.c rpmmacro.h Log: - macros: stub-in rpmmc/rpmme pools for MacroContext/MacroEntry. Summary: Revision Changes Path 1.3501.2.514+1 -0 rpm/CHANGES 2.199.2.62 +7 -0 rpm/rpmio/librpmio.vers 2.249.2.39 +46 -0 rpm/rpmio/macro.c 1.230.2.35 +3 -0 rpm/rpmio/rpmio.c 2.56.4.11 +72 -0 rpm/rpmio/rpmmacro.h ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.3501.2.513 -r1.3501.2.514 CHANGES --- rpm/CHANGES 6 Jul 2016 13:26:36 -0000 1.3501.2.513 +++ rpm/CHANGES 6 Jul 2016 14:25:42 -0000 1.3501.2.514 @@ -1,4 +1,5 @@ 5.4.17 -> 5.4.18: + - jbj: macros: stub-in rpmmc/rpmme pools for MacroContext/MacroEntry. - jbj: mqtt: prepare for MacroContext sub-classing. - jbj: macros: add/use vrpmMCExpand. - jbj: psm: add RPMIOPOOL_INTERP_RUN. @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/librpmio.vers ============================================================================ $ cvs diff -u -r2.199.2.61 -r2.199.2.62 librpmio.vers --- rpm/rpmio/librpmio.vers 6 Jul 2016 13:26:36 -0000 2.199.2.61 +++ rpm/rpmio/librpmio.vers 6 Jul 2016 14:25:43 -0000 2.199.2.62 @@ -631,6 +631,13 @@ rpmluavValueIsNum; rpmSecuritySaneFile; rpmMacrofiles; + _rpmmc_debug; + _rpmmcI; + _rpmmcPool; + rpmmeNew; + _rpmme_debug; + _rpmmePool; + rpmmeNew; _rpmmg_debug; rpmmgFree; rpmmgNew; @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/macro.c ============================================================================ $ cvs diff -u -r2.249.2.38 -r2.249.2.39 macro.c --- rpm/rpmio/macro.c 6 Jul 2016 13:24:17 -0000 2.249.2.38 +++ rpm/rpmio/macro.c 6 Jul 2016 14:25:43 -0000 2.249.2.39 @@ -3692,6 +3692,52 @@ /* =============================================================== */ +static void rpmmeFini(void * _me) +{ + rpmme me = (rpmme) _me; + (void)me; +} + +int _rpmme_debug; +RPMIOPOOL_MODULE(me) + +rpmme rpmmeNew(char **av, uint32_t flags) +{ + rpmme me = rpmmeGetPool(_rpmmePool); + return rpmmeLink(me); +} + +/* =============================================================== */ + +static void rpmmcFini(void * _mc) +{ + rpmmc mc = (rpmmc) _mc; + + /* XXX Save across the memset(3) in rpmFreeMacros() */ + yarnLock use = mc->_item.use; + void *pool = mc->_item.pool; + + rpmFreeMacros(mc); + + mc->_item.use = use; + mc->_item.pool = pool; +} + +int _rpmmc_debug; +RPMIOPOOL_INTERP_MODULE(mc) + +rpmmc rpmmcNew(char **av, uint32_t flags) +{ + rpmmc mc = (flags & 0x80000000) + ? rpmmcI() : rpmmcGetPool(_rpmmcPool); + + mc->flags = flags; + + return rpmmcLink(mc); +} + +/* =============================================================== */ + #if defined(DEBUG_MACROS) #if defined(EVAL_MACROS) @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmio.c ============================================================================ $ cvs diff -u -r1.230.2.34 -r1.230.2.35 rpmio.c --- rpm/rpmio/rpmio.c 4 Jul 2016 07:45:23 -0000 1.230.2.34 +++ rpm/rpmio/rpmio.c 6 Jul 2016 14:25:43 -0000 1.230.2.35 @@ -3370,6 +3370,9 @@ _urlPool = rpmioFreePool(_urlPool); _fdPool = rpmioFreePool(_fdPool); + RPMIOPOOL_FREE(me) + RPMIOPOOL_INTERP_FREE(mc) + rpmlogClose(); } @@ . patch -p0 <<'@@ .' Index: rpm/rpmio/rpmmacro.h ============================================================================ $ cvs diff -u -r2.56.4.10 -r2.56.4.11 rpmmacro.h --- rpm/rpmio/rpmmacro.h 6 Jul 2016 13:26:36 -0000 2.56.4.10 +++ rpm/rpmio/rpmmacro.h 6 Jul 2016 14:25:43 -0000 2.56.4.11 @@ -9,7 +9,9 @@ #include <rpmdefs.h> typedef struct MacroEntry_s * MacroEntry; +typedef struct MacroContext_s * rpmme; typedef struct MacroContext_s * MacroContext; +typedef struct MacroContext_s * rpmmc; #if defined(_MACRO_INTERNAL) #include <rpmiotypes.h> @@ -31,6 +33,7 @@ MacroEntry *macroTable; /*!< Macro entry table for context. */ int macrosAllocated; /*!< No. of allocated macros. */ int firstFree; /*!< No. of macros. */ + uint32_t flags; }; #endif @@ -257,6 +260,75 @@ int rpmMCExpandNumeric(MacroContext mc, const char *arg); +/** + * Unreference a me wrapper instance. + * @param me me wrapper + * @return NULL on last dereference + */ +rpmme rpmmeUnlink (rpmme me); +#define rpmmeUnlink(_me) \ + ((rpmme)rpmioUnlinkPoolItem((rpmioItem)(_me), __FUNCTION__, __FILE__, __LINE__)) + +/** + * Reference a me wrapper instance. + * @param me me wrapper + * @return new me wrapper reference + */ +rpmme rpmmeLink (rpmme me); +#define rpmmeLink(_me) \ + ((rpmme)rpmioLinkPoolItem((rpmioItem)(_me), __FUNCTION__, __FILE__, __LINE__)) + +/** + * Destroy a me wrapper. + * @param me me wrapper + * @return NULL on last dereference + */ +rpmme rpmmeFree(rpmme me); +#define rpmmeFree(_me) \ + ((rpmme)rpmioFreePoolItem((rpmioItem)(_me), __FUNCTION__, __FILE__, __LINE__)) + +/** + * Create and load a me wrapper. + * @param fn me args (or NULL) + * @param flags me flags + * @return new me wrapper + */ +rpmme rpmmeNew(char ** av, uint32_t flags); +/** + * Unreference a mc wrapper instance. + * @param mc mc wrapper + * @return NULL on last dereference + */ +rpmmc rpmmcUnlink (rpmmc mc); +#define rpmmcUnlink(_mc) \ + ((rpmmc)rpmioUnlinkPoolItem((rpmioItem)(_mc), __FUNCTION__, __FILE__, __LINE__)) + +/** + * Reference a mc wrapper instance. + * @param mc mc wrapper + * @return new mc wrapper reference + */ +rpmmc rpmmcLink (rpmmc mc); +#define rpmmcLink(_mc) \ + ((rpmmc)rpmioLinkPoolItem((rpmioItem)(_mc), __FUNCTION__, __FILE__, __LINE__)) + +/** + * Destroy a mc wrapper. + * @param mc mc wrapper + * @return NULL on last dereference + */ +rpmmc rpmmcFree(rpmmc mc); +#define rpmmcFree(_mc) \ + ((rpmmc)rpmioFreePoolItem((rpmioItem)(_mc), __FUNCTION__, __FILE__, __LINE__)) + +/** + * Create and load a mc wrapper. + * @param fn mc args (or NULL) + * @param flags mc flags + * @return new mc wrapper + */ +rpmmc rpmmcNew(char ** av, uint32_t flags); + #ifdef __cplusplus } #endif @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org