ooRexx  4.2.0-source
About: ooRexx (Open Object Rexx) is a free implementation of Object Rexx. Object Rexx is an enhancement of the classic Rexx interpreter; a full-featured programming language with a human-oriented syntax.
  Fossies Dox: ooRexx-4.2.0-source.tar.gz  ("inofficial" and yet experimental doxygen-generated source code documentation)  

OldSpaceSegmentSet Class Reference

#include <MemorySegment.hpp>

Inheritance diagram for OldSpaceSegmentSet:
Collaboration diagram for OldSpaceSegmentSet:

Public Member Functions

 OldSpaceSegmentSet ()
 OldSpaceSegmentSet (RexxMemory *memory)
virtual ~OldSpaceSegmentSet ()
RexxObjectallocateObject (size_t allocationLength)
void markOldSpaceObjects ()
- Public Member Functions inherited from MemorySegmentSet
 MemorySegmentSet (RexxMemory *memObject, SegmentSetID id, const char *setName)
 MemorySegmentSet ()
virtual ~MemorySegmentSet ()
void * operator new (size_t size, void *segment)
void operator delete (void *size)
void operator delete (void *size, void *segment)
void removeSegment (MemorySegment *segment)
void removeSegmentAndStorage (MemorySegment *segment)
void add (MemorySegment *segment)
MemorySegmentfirst ()
MemorySegmentnext (MemorySegment *segment)
bool isInSegmentSet (RexxObject *object)
void dumpSegments (FILE *keyfile, FILE *dumpfile)
void addSegment (MemorySegment *segment, bool createDeadObject=1)
void sweep ()
bool is (SegmentSetID id)
void gatherStats (MemoryStats *memStats, SegmentStats *stats)
virtual void dumpMemoryProfile (FILE *outfile)
virtual DeadObjectdonateObject (size_t allocationLength)
virtual MemorySegmentdonateSegment (size_t allocationLength)

Protected Member Functions

virtual void addDeadObject (DeadObject *object)
virtual void addDeadObject (char *object, size_t length)
RexxObjectfindObject (size_t allocationLength)
- Protected Member Functions inherited from MemorySegmentSet
virtual void collectEmptySegments ()
RexxObjectsplitDeadObject (DeadObject *object, size_t allocationLength, size_t splitMinimum)
void insertSegment (MemorySegment *segment)
MemorySegmentfindEmptySegment (size_t allocationLength)
MemorySegmentsplitSegment (size_t allocationLength)
void mergeSegments (size_t allocationLength)
void combineEmptySegments (MemorySegment *front, MemorySegment *back)
virtual size_t suggestMemoryExpansion ()
virtual size_t suggestMemoryContraction ()
virtual void prepareForSweep ()
virtual void completeSweepOperation ()
MemorySegmentlargestActiveSegment ()
MemorySegmentlargestEmptySegment ()
void adjustMemorySize ()
void releaseEmptySegments (size_t releaseSize)
void releaseSegment (MemorySegment *segment)
bool newSegment (size_t requestLength, size_t minimumLength)
virtual MemorySegmentallocateSegment (size_t requestLength, size_t minimumLength)
float freeMemoryPercentage ()
size_t totalFreeMemory ()
size_t calculateSegmentAllocation (size_t n)
void addSegments (size_t requiredSpace)
MemorySegmentgetSegment (size_t requestLength, size_t minimumLength)
void activateEmptySegments ()
void validateObject (size_t bytes)

Private Attributes

DeadObjectPool deadCache

Additional Inherited Members

- Public Types inherited from MemorySegmentSet
- Protected Attributes inherited from MemorySegmentSet
MemorySegment anchor
MemorySegment emptySegments
size_t count
size_t liveObjectBytes
size_t deadObjectBytes
SegmentSetID owner
const char * name

Detailed Description

Definition at line 597 of file MemorySegment.hpp.

Constructor & Destructor Documentation

◆ OldSpaceSegmentSet() [1/2]

OldSpaceSegmentSet::OldSpaceSegmentSet ( )

Definition at line 602 of file MemorySegment.hpp.

◆ OldSpaceSegmentSet() [2/2]

OldSpaceSegmentSet::OldSpaceSegmentSet ( RexxMemory memory)

Definition at line 196 of file MemorySegment.cpp.

◆ ~OldSpaceSegmentSet()

virtual OldSpaceSegmentSet::~OldSpaceSegmentSet ( )

Definition at line 604 of file MemorySegment.hpp.

Member Function Documentation

◆ addDeadObject() [1/2]

void OldSpaceSegmentSet::addDeadObject ( char *  object,
size_t  length 

Reimplemented from MemorySegmentSet.

Definition at line 437 of file MemorySegment.cpp.

References DeadObjectPool::addSortedBySize(), and deadCache.

◆ addDeadObject() [2/2]

void OldSpaceSegmentSet::addDeadObject ( DeadObject object)

Reimplemented from MemorySegmentSet.

Definition at line 369 of file MemorySegment.cpp.

References DeadObjectPool::addSortedBySize(), and deadCache.

◆ allocateObject()

RexxObject * OldSpaceSegmentSet::allocateObject ( size_t  allocationLength)

◆ findObject()

RexxObject * OldSpaceSegmentSet::findObject ( size_t  allocationLength)

◆ markOldSpaceObjects()

void OldSpaceSegmentSet::markOldSpaceObjects ( )

Member Data Documentation

◆ deadCache

DeadObjectPool OldSpaceSegmentSet::deadCache

Definition at line 615 of file MemorySegment.hpp.

Referenced by addDeadObject(), and findObject().

The documentation for this class was generated from the following files: