rpm
5.4.15
|
#include "system.h"
#include <rpmiotypes.h>
#include <rpmio.h>
#include <rpmlog.h>
#include <yarn.h>
#include "debug.h"
Go to the source code of this file.
Data Structures | |
struct | rpmioPool_s |
Macros | |
#define | EXIT_FAILURE 1 |
Functions | |
void * | vmefail (size_t size) |
rpmioPool | rpmioFreePool (rpmioPool pool) |
Reclaim memory pool items. More... | |
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. More... | |
rpmioItem | rpmioUnlinkPoolItem (rpmioItem item, const char *msg, const char *fn, unsigned ln) |
Decrement a pool item refcount. More... | |
rpmioItem | rpmioLinkPoolItem (rpmioItem item, const char *msg, const char *fn, unsigned ln) |
Increment a pool item refcount. More... | |
void * | rpmioFreePoolItem (rpmioItem item, const char *msg, const char *fn, unsigned ln) |
Free a pool item. More... | |
rpmioItem | rpmioGetPool (rpmioPool pool, size_t size) |
Get unused item from pool, or alloc a new item. More... | |
rpmioItem | rpmioPutPool (rpmioItem item) |
Put unused item into pool (or free). More... | |
void * | xmalloc (size_t size) |
void * | xcalloc (size_t nmemb, size_t size) |
void * | xrealloc (void *ptr, size_t size) |
char * | xstrdup (const char *str) |
Variables | |
static rpmioPool | _rpmioPool |
#define EXIT_FAILURE 1 |
Definition at line 24 of file rpmmalloc.c.
Referenced by vmefail().
Reclaim memory pool items.
pool | memory pool (NULL uses global rpmio pool) |
Definition at line 72 of file rpmmalloc.c.
References _free(), _rpmioPool, D_, rpmioPool_s::have, rpmioPool_s::head, rpmioPool_s::made, rpmioPool_s::name, rpmioItem_s::pool, rpmioPool_s::reused, rpmlog(), RPMLOG_DEBUG, RPMLOG_WARNING, rpmioPool_s::size, rpmioItem_s::use, VALGRIND_DESTROY_MEMPOOL, VALGRIND_HG_CLEAN_MEMORY, yarnFreeLock(), yarnPossess(), and yarnRelease().
Referenced by main(), rpmcliFini(), and rpmioClean().
void* rpmioFreePoolItem | ( | rpmioItem | item, |
const char * | msg, | ||
const char * | fn, | ||
unsigned | ln | ||
) |
Free a pool item.
item | pool item |
msg | debugging msg (NULL disables debugging) |
fn | usually FILE |
ln | usually LINE |
Definition at line 186 of file rpmmalloc.c.
References ANNOTATE_HAPPENS_AFTER, BY, rpmioPool_s::dbg, rpmioPool_s::fini, rpmioPool_s::flags, L, rpmioPool_s::name, rpmioItem_s::pool, rpmioPutPool(), rpmioPool_s::size, rpmioItem_s::use, VALGRIND_HG_CLEAN_MEMORY, VALGRIND_MEMPOOL_FREE, yarnPeekLock(), yarnPossess(), and yarnTwist().
Referenced by mireFreeAll(), rpmDigestFinal(), rpmDigestInit(), rpmmiInit(), and urlFini().
Get unused item from pool, or alloc a new item.
pool | memory pool (NULL will always alloc a new item) |
size | item size |
Definition at line 220 of file rpmmalloc.c.
References BY, rpmioPool_s::have, rpmioPool_s::head, rpmioPool_s::limit, rpmioPool_s::made, NOT_TO_BE, rpmioItem_s::pool, rpmioPool_s::reused, rpmioPool_s::tail, rpmioItem_s::use, VALGRIND_MEMPOOL_ALLOC, xcalloc(), yarnNewLock(), yarnPossess(), yarnRelease(), yarnTwist(), and yarnWaitFor().
Referenced by avxGetPool(), ctxGetPool(), digGetPool(), fdGetPool(), headerGetPool(), htGetPool(), mireGetPool(), odbcGetPool(), pkgGetPool(), rpmalGetPool(), rpmasnGetPool(), rpmaugGetPool(), rpmbagGetPool(), rpmbfGetPool(), rpmcudfGetPool(), rpmcvsGetPool(), rpmdbGetPool(), rpmdsGetPool(), rpmfcGetPool(), rpmficlGetPool(), rpmfiGetPool(), rpmgiGetPool(), rpmgitGetPool(), rpmhkpGetPool(), rpmiobGetPool(), rpmjsGetPool(), rpmmdbGetPool(), rpmmgGetPool(), rpmmgoGetPool(), rpmmiGetPool(), rpmperlGetPool(), rpmpsGetPool(), rpmpsmGetPool(), rpmpythonGetPool(), rpmrepoGetPool(), rpmrubyGetPool(), rpmsetGetPool(), rpmsmGetPool(), rpmspGetPool(), rpmsqlGetPool(), rpmsquirrelGetPool(), rpmsvnGetPool(), rpmsxGetPool(), rpmtclGetPool(), rpmteGetPool(), rpmtpmGetPool(), rpmtsGetPool(), rpmtsiGetPool(), rpmvcGetPool(), rpmvtGetPool(), rpmwfGetPool(), rpmxarGetPool(), scpGetPool(), specGetPool(), and urlGetPool().
Increment a pool item refcount.
item | pool item |
msg | debugging msg (NULL disables debugging) |
fn | usually FILE |
ln | usually LINE |
Definition at line 165 of file rpmmalloc.c.
References ANNOTATE_HAPPENS_BEFORE, BY, rpmioPool_s::dbg, rpmioPool_s::flags, rpmioPool_s::name, rpmioItem_s::pool, rpmioItem_s::use, yarnPeekLock(), yarnPossess(), and yarnTwist().
Referenced by newPackage(), newSpec(), rpmDigestDup(), rpmDigestInit(), rpmmiInit(), XfdNew(), XrpmtsiInit(), and XurlNew().
rpmioPool rpmioNewPool | ( | const char * | name, |
size_t | size, | ||
int | limit, | ||
int | flags, | ||
char *(*)(void *item) | dbg, | ||
void(*)(void *item) | init, | ||
void(*)(void *item) | fini | ||
) |
Create a memory pool.
name | pool name |
size | item size |
limit | no. of items permitted (-1 for unlimited) |
flags | debugging flags |
(*dbg)() | generate string for Unlink/Link/Free debugging |
(*init)() | create item contents |
(*fini)() | destroy item contents |
Definition at line 109 of file rpmmalloc.c.
References D_, rpmioPool_s::dbg, rpmioPool_s::fini, rpmioPool_s::flags, flags, rpmioPool_s::have, rpmioPool_s::head, rpmioPool_s::init, rpmioPool_s::limit, limit, rpmioPool_s::made, name, rpmioPool_s::name, rpmioPool_s::pool, rpmioPool_s::reused, rpmlog(), RPMLOG_DEBUG, rpmioPool_s::size, size, rpmioPool_s::tail, VALGRIND_CREATE_MEMPOOL, xcalloc(), yarnNewLock(), and rpmioPool_s::zlog.
Referenced by avxGetPool(), ctxGetPool(), digGetPool(), fdGetPool(), headerGetPool(), htGetPool(), mireGetPool(), odbcGetPool(), pkgGetPool(), rpmalGetPool(), rpmasnGetPool(), rpmaugGetPool(), rpmbagGetPool(), rpmbfGetPool(), rpmcudfGetPool(), rpmcvsGetPool(), rpmdbGetPool(), rpmdsGetPool(), rpmfcGetPool(), rpmficlGetPool(), rpmfiGetPool(), rpmgiGetPool(), rpmgitGetPool(), rpmhkpGetPool(), rpmiobGetPool(), rpmjsGetPool(), rpmmdbGetPool(), rpmmgGetPool(), rpmmgoGetPool(), rpmmiGetPool(), rpmperlGetPool(), rpmpsGetPool(), rpmpsmGetPool(), rpmpythonGetPool(), rpmrepoGetPool(), rpmrubyGetPool(), rpmsetGetPool(), rpmsmGetPool(), rpmspGetPool(), rpmsqlGetPool(), rpmsquirrelGetPool(), rpmsvnGetPool(), rpmsxGetPool(), rpmtclGetPool(), rpmteGetPool(), rpmtpmGetPool(), rpmtsGetPool(), rpmtsiGetPool(), rpmvcGetPool(), rpmvtGetPool(), rpmwfGetPool(), rpmxarGetPool(), scpGetPool(), specGetPool(), and urlGetPool().
Put unused item into pool (or free).
item | unused item |
Definition at line 264 of file rpmmalloc.c.
References _free(), BY, rpmioPool_s::have, rpmioItem_s::pool, rpmioPool_s::tail, TO, rpmioItem_s::use, yarnFreeLock(), yarnPossess(), and yarnTwist().
Referenced by headerLoad(), rpmdbClose(), rpmdbNew(), and rpmioFreePoolItem().
Decrement a pool item refcount.
item | pool item |
msg | debugging msg (NULL disables debugging) |
fn | usually FILE |
ln | usually LINE |
Definition at line 143 of file rpmmalloc.c.
References ANNOTATE_HAPPENS_AFTER, BY, rpmioPool_s::dbg, rpmioPool_s::flags, rpmioPool_s::name, rpmioItem_s::pool, rpmioItem_s::use, yarnPeekLock(), yarnPossess(), and yarnTwist().
void* vmefail | ( | size_t | size | ) |
Definition at line 28 of file rpmmalloc.c.
References _, and EXIT_FAILURE.
Referenced by xcalloc(), xmalloc(), xrealloc(), and xstrdup().
void* xcalloc | ( | size_t | nmemb, |
size_t | size | ||
) |
Definition at line 300 of file rpmmalloc.c.
References vmefail().
Referenced by _orgrpmtsOrder(), _rpmtsOrder(), _tagName(), addRelation(), addTriggerIndex(), argiAdd(), avOpendir(), base64Format(), checkResponse(), db3Acallback(), dbiMireKeys(), dbiTagsInit(), detectSCCs(), dnlInitIterator(), findTag(), fsmMkdirs(), fssizesTag(), ftpNLST(), ftpOpendir(), genCpioListAndHeader(), getFilesystemList(), grabArgs(), handleOverlappedFiles(), headerNew(), htCreate(), htGetKeys(), IDTXnew(), ignoreDep(), initGlobs(), iosmMkdirs(), main(), mapInitIterator(), mireRegcomp(), mireSkip(), missingokTag(), mtreeSpec(), newFSM(), newIOSM(), newItem(), orgrpmAddRelation(), packageBinaries(), parseCVOG(), parseFormat(), parseSpec(), pgpGrabPkts(), processMetadataFile(), processSourceFiles(), rdLead(), rpmalNew(), rpmbagAdd(), rpmbagNew(), rpmbcInit(), rpmdbNew(), rpmdsNew(), rpmdsNewPRCO(), rpmdsSetColor(), rpmdsSetRefs(), rpmdsSetResult(), rpmdsSingle(), rpmecNew(), rpmEVRnew(), rpmfcGenerateDepends(), rpmfcNew(), rpmfiBuildFNames(), rpmfiFpLookup(), rpmfiNew(), rpmfiOpendir(), rpmGetFilesystemUsage(), rpmGetMacroEntries(), rpmgiNew(), rpmhookArgsNew(), rpmhookTableAddItem(), rpmhookTableNew(), rpmiobNew(), rpmioGetPool(), rpmioNewPool(), rpmioParse(), rpmmc_alloc(), rpmmiGrow(), rpmmiGrowBasename(), rpmmiInit(), rpmpsAppend(), rpmpsInitIterator(), rpmpsmNew(), rpmReadPackageManifest(), rpmte_alloc(), rpmteNewTSI(), rpmtsCreate(), rpmtsInitDSI(), rpmzLogNew(), saveHardLink(), showQueryPackage(), sql_cget(), sql_stat(), str2uuid(), tagLoadATags(), tagLoadIndex(), tarjan(), tv2uuidv1(), vfs_parse_ls_lga(), XfdNew(), and XurlNew().
void* xmalloc | ( | size_t | size | ) |
Definition at line 290 of file rpmmalloc.c.
References vmefail().
void* xrealloc | ( | void * | ptr, |
size_t | size | ||
) |
Definition at line 311 of file rpmmalloc.c.
References vmefail().
char* xstrdup | ( | const char * | str | ) |
Definition at line 321 of file rpmmalloc.c.
References vmefail().
Referenced by _poptSaveString(), _rpmtsCheck(), addFile(), addSource(), addTE(), addTriggerIndex(), argvAdd(), argvAppend(), argvSplit(), arHeaderRead(), armorFormat(), base64Format(), bncdataFormat(), cacheStashLatest(), cdataFormat(), cpio_doio(), createDir(), db3associate(), db3associate_foreign(), dbiFindMatches(), dbiTagsInit(), depflagsFormat(), deptypeFormat(), digestFormat(), doLookup(), doPatch(), doSetupMacro(), doUntar(), dupAttrRec(), expandMacro(), fdSetOpen(), fflagsFormat(), forceIncludeFile(), formatValue(), fpLookupSubdir(), fsmMakeLinks(), fsmStage(), ftpRealpath(), genSourceRpmName(), getFilesystemList(), getGidS(), getGname(), getGnameS(), getUidS(), getUname(), getUnameS(), glob(), grepArgCallback(), headerCheck(), headerNEVRA(), headerReload(), headerSetBaseURL(), headerSetDigest(), headerSetOrigin(), headerSetParent(), headerSprintf(), hintFormat(), i18nTag(), iconvFormat(), ignoreDep(), installArgCallback(), instprefixTag(), intFormat(), iosmMakeLinks(), iosmStage(), iosmStrerror(), isPart(), jsonFormat(), localeTag(), lookupPackage(), machAddEquiv(), main(), mireDup(), mireRegcomp(), mtreeReadExcludes(), odbcConnect(), odbcGetCursorName(), odbcNew(), parse_options(), parseChangelog(), parseCVOG(), parseExpressionBoolean(), parseExpressionString(), parseForSimple(), parseScript(), parseSimplePart(), parseSpec(), permsFormat(), pgpDigSetAlgos(), pgpsigFormat(), pkgbaseurlTag(), pkgdigestTag(), pkgoriginTag(), pkgUnpackagedSubdirs(), populateInstallHeader(), printNewSpecfile(), processPackageFiles(), processSourceFiles(), pushMacro(), rdLead(), rdSignature(), rdToken(), readLineFromOFI(), realDateFormat(), Realpath(), rpmasnNew(), rpmaugNew(), rpmbagNew(), rpmbcMpiItem(), rpmcliAllArgCallback(), rpmcliConfigured(), rpmcliImportPubkey(), rpmcliInit(), rpmcliInstall(), rpmcliQuery(), rpmcliWalkFirst(), rpmcvsNew(), rpmdbExportHR_MIB(), rpmdbURIPath(), rpmdcParseCoreutils(), rpmdcParseZeroInstall(), rpmds_compare(), rpmds_iternext(), rpmds_Single(), rpmdsCompare(), rpmdsCpuinfo(), rpmdsELF(), rpmdsEVRorder(), rpmdsGetconf(), rpmdsLdconfig(), rpmdsNew(), rpmdsNVRMatchesDep(), rpmdsPipe(), rpmdsSysinfo(), rpmdsThis(), rpmEVRmire(), rpmEVRorder(), rpmEVRparse(), rpmExpand(), rpmfcGenerateDepends(), rpmfd_Fopen(), rpmfi_BN(), rpmfi_Digest(), rpmfi_DN(), rpmfi_FClass(), rpmfi_FClass_get(), rpmfi_FGroup(), rpmfi_FLink(), rpmfi_FN(), rpmfi_FUser(), rpmfi_subscript(), rpmfiAddRelocation(), rpmfiDupeRelocations(), rpmfiNew(), rpmGetPath(), rpmgiInitFilter(), rpmgiNext(), rpmgitCmdCommit(), rpmgitCmdStatus(), rpmgitNew(), rpmGlob(), rpmhkpVerifyHash(), rpmInitMacros(), rpmInstallSourcePackage(), rpmioAllArgCallback(), rpmioInit(), rpmioParse(), rpmkuFindPubkey(), rpmkuPassPhrase(), rpmlibMarkers(), rpmMCExpand(), rpmmdbNew(), rpmmgBuffer(), rpmmgFile(), rpmmgNew(), rpmmgoNew(), rpmmiInit(), rpmPermsString(), rpmps_ass_sub(), rpmpsAppend(), rpmpsmStage(), rpmpythonSlurp(), rpmQueryVerify(), rpmReadHeader(), rpmRebuildTargetVars(), rpmrepoCloseMDFile(), rpmrepoDoPkgMetadata(), rpmrepoDoRepoMetadata(), rpmrepoRealpath(), rpmsetAdd(), rpmsetFinish(), rpmSetMachine(), rpmsqlNew(), rpmsqlRun(), rpmsvnNew(), rpmsxMatch(), rpmts_Check(), rpmtsFindPubkey(), rpmtsSetCurrDir(), rpmtsSetRootDir(), rpmwfNew(), rpmWriteHeader(), rpmzInit(), rpnFormat(), runTriggersLoop(), shescapeFormat(), spewescapeFormat(), sql_open(), sql_step(), stashSt(), statFormat(), strdup_iconv_check(), strsubFormat(), triggercondsTag(), triggertypeFormat(), triggertypeTag(), uncompressedFN(), unsatisfiedDepend(), urlFind(), urlSplit(), uuidFormat(), valueMakeString(), vrpmlog(), writeFile(), writeLinkedFile(), writeRPM(), xmlFormat(), and yamlFormat().
|
static |
Definition at line 70 of file rpmmalloc.c.
Referenced by rpmioFreePool().