rpm
5.4.14
|
#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, assert(), count, D_, rpmioPool_s::have, rpmioPool_s::head, if(), rpmioPool_s::made, rpmioPool_s::name, NULL, rpmioItem_s::pool, rpmioPool_s::reused, rpmlog(), RPMLOG_DEBUG, RPMLOG_WARNING, rpmioPool_s::size, rpmioItem_s::use, VALGRIND_DESTROY_MEMPOOL, VALGRIND_HG_CLEAN_MEMORY, and void.
Referenced by main(), and rpmioClean().
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, assert(), rpmioPool_s::dbg, rpmioPool_s::fini, rpmioPool_s::flags, fprintf(), L, rpmioPool_s::name, NULL, rpmioItem_s::pool, rpmioPutPool(), rpmioPool_s::size, rpmioItem_s::use, VALGRIND_HG_CLEAN_MEMORY, and VALGRIND_MEMPOOL_FREE.
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 assert(), rpmioPool_s::have, rpmioPool_s::head, if(), rpmioPool_s::limit, rpmioPool_s::made, NULL, rpmioItem_s::pool, rpmioPool_s::reused, rpmioPool_s::tail, rpmioItem_s::use, VALGRIND_MEMPOOL_ALLOC, and xcalloc().
Referenced by ctxGetPool(), digGetPool(), fdGetPool(), headerGetPool(), htGetPool(), mireGetPool(), pkgGetPool(), rpmalGetPool(), rpmdbGetPool(), rpmdsGetPool(), rpmfcGetPool(), rpmfiGetPool(), rpmgiGetPool(), rpmiobGetPool(), rpmjsGetPool(), rpmmgGetPool(), rpmmiGetPool(), rpmperlGetPool(), rpmpsGetPool(), rpmpsmGetPool(), rpmpythonGetPool(), rpmrepoGetPool(), rpmrubyGetPool(), rpmsqlGetPool(), rpmsquirrelGetPool(), rpmsxGetPool(), rpmtclGetPool(), rpmteGetPool(), rpmtsGetPool(), rpmtsiGetPool(), rpmvcGetPool(), rpmvtGetPool(), 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, rpmioPool_s::dbg, rpmioPool_s::flags, fprintf(), rpmioPool_s::name, NULL, rpmioItem_s::pool, and rpmioItem_s::use.
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, rpmioPool_s::made, name, rpmioPool_s::name, NULL, rpmioPool_s::pool, rpmioPool_s::reused, rpmlog(), RPMLOG_DEBUG, rpmioPool_s::size, size, rpmioPool_s::tail, VALGRIND_CREATE_MEMPOOL, xcalloc(), and rpmioPool_s::zlog.
Referenced by ctxGetPool(), digGetPool(), fdGetPool(), headerGetPool(), htGetPool(), mireGetPool(), pkgGetPool(), rpmalGetPool(), rpmdbGetPool(), rpmdsGetPool(), rpmfcGetPool(), rpmfiGetPool(), rpmgiGetPool(), rpmiobGetPool(), rpmjsGetPool(), rpmmgGetPool(), rpmmiGetPool(), rpmperlGetPool(), rpmpsGetPool(), rpmpsmGetPool(), rpmpythonGetPool(), rpmrepoGetPool(), rpmrubyGetPool(), rpmsqlGetPool(), rpmsquirrelGetPool(), rpmsxGetPool(), rpmtclGetPool(), rpmteGetPool(), rpmtsGetPool(), rpmtsiGetPool(), rpmvcGetPool(), rpmvtGetPool(), 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(), rpmioPool_s::have, NULL, rpmioItem_s::pool, rpmioPool_s::tail, rpmioItem_s::use, and void.
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, rpmioPool_s::dbg, rpmioPool_s::flags, fprintf(), rpmioPool_s::name, NULL, rpmioItem_s::pool, and rpmioItem_s::use.
void* vmefail | ( | size_t | size | ) |
Definition at line 28 of file rpmmalloc.c.
References _, exit, EXIT_FAILURE, fprintf(), and NULL.
Referenced by xcalloc(), xmalloc(), xrealloc(), and xstrdup().
void* xcalloc | ( | size_t | nmemb, |
size_t | size | ||
) |
Definition at line 300 of file rpmmalloc.c.
References value, and vmefail().
Referenced by _tagName(), addTriggerIndex(), argiAdd(), base64Format(), checkResponse(), dbiMireKeys(), dbiTagsInit(), dnlInitIterator(), findTag(), fsmMkdirs(), fssizesTag(), ftpNLST(), ftpOpendir(), genCpioListAndHeader(), getFilesystemList(), grabArgs(), handleOverlappedFiles(), headerNew(), htCreate(), htGetKeys(), IDTXnew(), if(), initGlobs(), iosmMkdirs(), mireRegcomp(), mireSkip(), missingokTag(), newFSM(), newIOSM(), newItem(), packageBinaries(), parseCVOG(), parseFormat(), parseSpec(), pgpGrabPkts(), processMetadataFile(), processSourceFiles(), rdLead(), rpmalNew(), rpmbcInit(), rpmdbNew(), rpmdsNew(), rpmdsNewPRCO(), rpmdsSetColor(), rpmdsSetRefs(), rpmdsSetResult(), rpmdsSingle(), 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(), saveHardLink(), showQueryPackage(), sql_cget(), sql_stat(), str2uuid(), tagLoadATags(), tagLoadIndex(), tv2uuidv1(), XfdNew(), and XurlNew().
void* xmalloc | ( | size_t | size | ) |
Definition at line 290 of file rpmmalloc.c.
Definition at line 311 of file rpmmalloc.c.
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(), fdSetOpen(), fflagsFormat(), for(), forceIncludeFile(), formatValue(), fpLookupSubdir(), fsmMakeLinks(), fsmStage(), ftpRealpath(), genSourceRpmName(), getFilesystemList(), getGidS(), getGname(), getGnameS(), getUidS(), getUname(), getUnameS(), glob(), headerCheck(), headerNEVRA(), headerReload(), headerSetBaseURL(), headerSetDigest(), headerSetOrigin(), headerSetParent(), headerSprintf(), hintFormat(), i18nTag(), iconvFormat(), if(), installArgCallback(), instprefixTag(), intFormat(), iosmMakeLinks(), iosmStage(), iosmStrerror(), isPart(), jsonFormat(), localeTag(), lookupPackage(), machAddEquiv(), main(), mireDup(), mireRegcomp(), parseChangelog(), parseCVOG(), parseExpressionBoolean(), parseExpressionString(), parseForSimple(), parseScript(), parseSimplePart(), parseSpec(), permsFormat(), pgpsigFormat(), pkgbaseurlTag(), pkgdigestTag(), pkgoriginTag(), pkgUnpackagedSubdirs(), populateInstallHeader(), processPackageFiles(), processSourceFiles(), pushMacro(), rdLead(), rdSignature(), rdToken(), readLineFromOFI(), realDateFormat(), Realpath(), rpmcliAllArgCallback(), rpmcliConfigured(), rpmcliImportPubkey(), rpmcliInstall(), rpmcliQuery(), rpmcliWalkFirst(), rpmdbExportHR_MIB(), rpmdbExportL10N_SQL(), rpmdbURIPath(), rpmdcParseCoreutils(), rpmdcParseZeroInstall(), rpmds_Single(), rpmdsCompare(), rpmdsCpuinfo(), rpmdsELF(), rpmdsEVRorder(), rpmdsLdconfig(), rpmdsNew(), rpmdsNVRMatchesDep(), rpmdsPipe(), rpmdsSysinfo(), rpmdsThis(), rpmEVRmire(), rpmEVRorder(), rpmEVRparse(), rpmExpand(), rpmfcGenerateDepends(), rpmfi_FClass_get(), rpmfiAddRelocation(), rpmfiDupeRelocations(), rpmfiNew(), rpmGetPath(), rpmgiInitFilter(), rpmgiNext(), rpmGlob(), rpmInitMacros(), rpmInstallSourcePackage(), rpmioAllArgCallback(), rpmioInit(), rpmioParse(), rpmkuFindPubkey(), rpmkuPassPhrase(), rpmlibMarkers(), rpmMCExpand(), rpmmgBuffer(), rpmmgFile(), rpmmgNew(), rpmmiInit(), rpmPermsString(), rpmpsAppend(), rpmpsmStage(), rpmpythonSlurp(), rpmQueryVerify(), rpmReadHeader(), rpmRebuildTargetVars(), rpmrepoCloseMDFile(), rpmrepoDoPkgMetadata(), rpmrepoDoRepoMetadata(), rpmrepoRealpath(), rpmSetMachine(), rpmsqlNew(), rpmsqlRun(), rpmsxMatch(), rpmtsFindPubkey(), rpmtsSetCurrDir(), rpmtsSetRootDir(), rpmWriteHeader(), rpnFormat(), runTriggersLoop(), shescapeFormat(), spewescapeFormat(), sql_open(), sql_step(), stashSt(), statFormat(), strdup_iconv_check(), strsubFormat(), triggercondsTag(), triggertypeFormat(), triggertypeTag(), unsatisfiedDepend(), urlFind(), urlSplit(), uuidFormat(), valueMakeString(), vrpmlog(), while(), writeFile(), writeLinkedFile(), writeRPM(), xmlFormat(), and yamlFormat().
|
static |
Definition at line 70 of file rpmmalloc.c.
Referenced by rpmioFreePool().