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

Reply via email to