RCatalogsDebugHeap Class Reference

class RCatalogsDebugHeap : public RHeap

Debug heap implementation. Holds "global" data for debug printing, and has utilities for finding memory leaks.

Inherits from

Nested Classes and Structures

Public Member Functions
IMPORT_C TBoolActivate(TBool)
TAny *Alloc(TInt)
TInt AllocLen(const TAny *)
TInt AllocSize(TInt &)
TInt Available(TInt &)
voidChunkOutput(const TDesC8 &, TUint)
TInt Compress()
TInt DebugFunction(TInt, TAny *, TAny *)
voidFree(TAny *)
IMPORT_C voidInstallL(TBool)
TBool IsEnabled(TCatalogsDebug::TType)
TAny *ReAlloc(TAny *, TInt, TInt)
voidReset()
IMPORT_C voidUninstall()
voidoperator delete(TAny *)
TAny *operator new(TUint)
Protected Member Functions
RCatalogsDebugHeap(RHeap &, TBool)
~RCatalogsDebugHeap()
TInt Extension_(TUint, TAny *&, TAny *)
Private Member Functions
voidInitExtLogger()
Inherited Functions
RAllocator::AllocL(TInt)
RAllocator::AllocLC(TInt)
RAllocator::AllocZ(TInt)
RAllocator::AllocZL(TInt)
RAllocator::Check()const
RAllocator::Close()
RAllocator::Count()const
RAllocator::Count(TInt &)const
RAllocator::DoClose()
RAllocator::FreeZ(TAny *&)
RAllocator::Open()
RAllocator::RAllocator()
RAllocator::ReAllocL(TAny *,TInt,TInt)
RAllocator::__DbgCheckFailure()
RAllocator::__DbgMarkCheck(TBool,TInt,const TDesC8 &,TInt)
RAllocator::__DbgMarkCheck(TBool,TInt,const TUint8 *,TInt)
RAllocator::__DbgMarkEnd(TInt)
RAllocator::__DbgMarkStart()
RAllocator::__DbgSetAllocFail(TAllocFail,TInt)
RAllocator::__DbgSetBurstAllocFail(TAllocFail,TUint,TUint)
RHeap::Align(TInt)const
RHeap::Align(const TAny *)const
RHeap::Base()const
RHeap::CheckCell(const SCell *)const
RHeap::CheckForSimulatedAllocFail()
RHeap::ChunkHandle()const
RHeap::DoAlloc(TInt,SCell *&)
RHeap::DoCheckHeap(SCheckInfo *)
RHeap::DoCountAllocFree(TInt &)
RHeap::DoFree(SCell *)
RHeap::DoMarkEnd(TInt)
RHeap::DoMarkStart()
RHeap::DoSetAllocFail(TAllocFail,TInt)
RHeap::DoSetAllocFail(TAllocFail,TInt,TUint)
RHeap::FindFollowingFreeCell(SCell *,SCell *&,SCell *&)
RHeap::GetAddress(const TAny *)const
RHeap::Initialise()
RHeap::IsLastCell(const SCell *)const
RHeap::Lock()const
RHeap::MaxLength()const
RHeap::RHeap()
RHeap::RHeap(TInt,TInt,TBool)
RHeap::RHeap(TInt,TInt,TInt,TInt,TInt,TInt,TBool)
RHeap::ReAllocImpl(TAny *,TInt,TInt)
RHeap::Reduce(SCell *)
RHeap::SetBrk(TInt)
RHeap::Size()const
RHeap::TryToGrowCell(SCell *,SCell *,SCell *,TInt)
RHeap::TryToGrowHeap(TInt,SCell *)
RHeap::Unlock()const
RHeap::Walk(TWalkFunc,TAny *)
RHeap::WalkCheckCell(TAny *,TCellType,TAny *,TInt)
RHeap::operator delete(TAny *,TAny *)
RHeap::operator new(TUint,TAny *)
Inherited Enumerations
RAllocator:@10
RAllocator:TAllocDebugOp
RAllocator:TAllocFail
RAllocator:TDbgHeapType
RAllocator:TFlags
RAllocator:TReAllocMode
RHeap:@11
RHeap:@12
RHeap:@13
RHeap:TCellType
RHeap:TDebugHeapId
RHeap:TDebugOp
RHeap:TDefaultShrinkRatios
Private Attributes
TBool iActive
TInt iAllocCounter
RArray< TAllocInfo >iAllocInfo
RHeap &iBaseHeap
RChunk iChunk
TInt iChunkIndex
RSemaphore iChunkWriteSemaphore
TBool iEnabled
TUint iFastCounterFrequency
RMsgQueue< TInt >iMsgQueue
RMutex iMutex
Inherited Attributes
RAllocator::iAccessCount
RAllocator::iCellCount
RAllocator::iFlags
RAllocator::iHandleCount
RAllocator::iHandles
RAllocator::iTotalAllocSize
RHeap::iAlign
RHeap::iAllocCount
RHeap::iBase
RHeap::iChunkHandle
RHeap::iFailAllocCount
RHeap::iFailRate
RHeap::iFailType
RHeap::iFailed
RHeap::iFree
RHeap::iGrowBy
RHeap::iLock
RHeap::iMaxLength
RHeap::iMinCell
RHeap::iMinLength
RHeap::iNestingLevel
RHeap::iOffset
RHeap::iPageSize
RHeap::iRand
RHeap::iTestData
RHeap::iTop

Constructor & Destructor Documentation

RCatalogsDebugHeap(RHeap &, TBool)

RCatalogsDebugHeap(RHeap &aBaseHeap,
TBoolaEnabled
)[protected]

Parameters

RHeap & aBaseHeap
TBool aEnabled

~RCatalogsDebugHeap()

~RCatalogsDebugHeap()[protected]

Member Functions Documentation

Activate(TBool)

IMPORT_C TBoolActivate(TBoolaActive)[static]

Parameters

TBool aActive

Alloc(TInt)

TAny *Alloc(TIntaSize)[virtual]

Parameters

TInt aSize

AllocLen(const TAny *)

TInt AllocLen(const TAny *aCell)const [virtual]

Parameters

const TAny * aCell

AllocSize(TInt &)

TInt AllocSize(TInt &aTotalAllocSize)const [virtual]

Parameters

TInt & aTotalAllocSize

Available(TInt &)

TInt Available(TInt &aBiggestBlock)const [virtual]

Parameters

TInt & aBiggestBlock

ChunkOutput(const TDesC8 &, TUint)

voidChunkOutput(const TDesC8 &aBuffer,
TUintaDeltaTime
)

Parameters

const TDesC8 & aBuffer
TUint aDeltaTime

Compress()

TInt Compress()[virtual]

DebugFunction(TInt, TAny *, TAny *)

TInt DebugFunction(TIntaFunc,
TAny *a1 = NULL,
TAny *a2 = NULL
)[virtual]

Parameters

TInt aFunc
TAny * a1 = NULL
TAny * a2 = NULL

Extension_(TUint, TAny *&, TAny *)

TInt Extension_(TUintaExtensionId,
TAny *&a0,
TAny *a1
)[protected, virtual]

Parameters

TUint aExtensionId
TAny *& a0
TAny * a1

Free(TAny *)

voidFree(TAny *aPtr)[virtual]

Parameters

TAny * aPtr

InitExtLogger()

voidInitExtLogger()[private]

InstallL(TBool)

IMPORT_C voidInstallL(TBoolaEnabled = EFalse)[static]

Parameters

TBool aEnabled = EFalse

IsEnabled(TCatalogsDebug::TType)

TBool IsEnabled(TCatalogsDebug::TTypeaPrintType)

Parameters

TCatalogsDebug::TType aPrintType

ReAlloc(TAny *, TInt, TInt)

TAny *ReAlloc(TAny *aPtr,
TIntaSize,
TIntaMode = 0
)[virtual]

Parameters

TAny * aPtr
TInt aSize
TInt aMode = 0

Reset()

voidReset()[virtual]

Uninstall()

IMPORT_C voidUninstall()[static]

operator delete(TAny *)

voidoperator delete(TAny *aPtr)

Parameters

TAny * aPtr

operator new(TUint)

TAny *operator new(TUintaSize)

Parameters

TUint aSize

Member Data Documentation

TBool iActive

TBool iActive[private]

TInt iAllocCounter

TInt iAllocCounter[private]

RArray< TAllocInfo > iAllocInfo

RArray< TAllocInfo >iAllocInfo[private]

RHeap & iBaseHeap

RHeap &iBaseHeap[private]

RChunk iChunk

RChunk iChunk[private]

TInt iChunkIndex

TInt iChunkIndex[private]

RSemaphore iChunkWriteSemaphore

RSemaphore iChunkWriteSemaphore[private]

TBool iEnabled

TBool iEnabled[private]

TUint iFastCounterFrequency

TUint iFastCounterFrequency[private]

RMsgQueue< TInt > iMsgQueue

RMsgQueue< TInt >iMsgQueue[private]

RMutex iMutex

RMutex iMutex[private]