#include <DeadObject.hpp>
Public Member Functions | |
DeadObjectPool () | |
DeadObjectPool (const char *poolID) | |
void | init (const char *poolID) |
void | setID (const char *poolID) |
void | empty () |
bool | isEmpty () |
void | emptySingle () |
bool | isEmptySingle () |
void | checkObjectGrain (DeadObject *obj) |
void | add (DeadObject *obj) |
void | addSortedBySize (DeadObject *obj) |
void | addSortedByLocation (DeadObject *obj) |
void | dumpMemoryProfile (FILE *outfile) |
void | checkObjectOverlap (DeadObject *obj) |
DeadObject * | getFirst () |
DeadObject * | lastBlock () |
DeadObject * | firstBlock () |
DeadObject * | findFit (size_t length) |
DeadObject * | findFit (size_t length, size_t *realLength) |
DeadObject * | findBestFit (size_t length) |
DeadObject * | findSmallestFit (size_t minSize) |
void | addSingle (DeadObject *obj) |
DeadObject * | getFirstSingle () |
Private Member Functions | |
void | logAllocation () |
void | logReclaim () |
void | logHit () |
void | logMiss () |
void | clearProfile () |
Private Attributes | |
DeadObject | anchor |
const char * | id |
Definition at line 131 of file DeadObject.hpp.
|
inline |
Definition at line 134 of file DeadObject.hpp.
References init().
|
inline |
Definition at line 136 of file DeadObject.hpp.
References init().
|
inline |
Definition at line 161 of file DeadObject.hpp.
References anchor, and DeadObject::insertAfter().
Referenced by NormalSegmentSet::addDeadObject(), findFit(), and NormalSegmentSet::splitNormalDeadObject().
|
inline |
Definition at line 262 of file DeadObject.hpp.
References anchor, and DeadObject::next.
Referenced by NormalSegmentSet::addDeadObject(), and NormalSegmentSet::splitNormalDeadObject().
void DeadObjectPool::addSortedByLocation | ( | DeadObject * | obj | ) |
Definition at line 175 of file DeadObject.cpp.
References anchor, DeadObject::insertBefore(), DeadObject::isReal(), and DeadObject::next.
void DeadObjectPool::addSortedBySize | ( | DeadObject * | obj | ) |
Definition at line 148 of file DeadObject.cpp.
References anchor, DeadObject::getObjectSize(), DeadObject::insertBefore(), DeadObject::isReal(), and DeadObject::next.
Referenced by LargeSegmentSet::addDeadObject(), and OldSpaceSegmentSet::addDeadObject().
|
inline |
Definition at line 201 of file DeadObject.cpp.
References IsObjectGrained, and Interpreter::logicError().
void DeadObjectPool::checkObjectOverlap | ( | DeadObject * | obj | ) |
Definition at line 212 of file DeadObject.cpp.
References anchor, DeadObject::getObjectSize(), DeadObject::isReal(), Interpreter::logicError(), DeadObject::next, and DeadObject::overlaps().
Referenced by NormalSegmentSet::checkObjectOverlap().
|
inlineprivate |
void DeadObjectPool::dumpMemoryProfile | ( | FILE * | outfile | ) |
Definition at line 51 of file DeadObject.cpp.
Referenced by NormalSegmentSet::dumpMemoryProfile(), and LargeSegmentSet::dumpMemoryProfile().
|
inline |
Definition at line 155 of file DeadObject.hpp.
References anchor, and DeadObject::reset().
Referenced by NormalSegmentSet::prepareForSweep(), and LargeSegmentSet::prepareForSweep().
|
inline |
Definition at line 157 of file DeadObject.hpp.
References anchor, and DeadObject::next.
Referenced by NormalSegmentSet::NormalSegmentSet(), and NormalSegmentSet::prepareForSweep().
DeadObject * DeadObjectPool::findBestFit | ( | size_t | length | ) |
Definition at line 66 of file DeadObject.cpp.
References anchor, DeadObject::getObjectSize(), logHit(), logMiss(), DeadObject::next, DeadObject::remove(), and VeryLargeObjectGrain.
Referenced by LargeSegmentSet::allocateObject().
|
inline |
Definition at line 193 of file DeadObject.hpp.
References anchor, DeadObject::getObjectSize(), logHit(), logMiss(), DeadObject::next, and DeadObject::remove().
Referenced by NormalSegmentSet::allocateObject(), NormalSegmentSet::findLargeDeadObject(), and OldSpaceSegmentSet::findObject().
|
inline |
Definition at line 214 of file DeadObject.hpp.
References add(), anchor, DeadObject::getObjectSize(), logHit(), logMiss(), DeadObject::next, DeadObject::remove(), and ReorderThreshold.
DeadObject * DeadObjectPool::findSmallestFit | ( | size_t | minSize | ) |
Definition at line 112 of file DeadObject.cpp.
References anchor, DeadObject::getObjectSize(), DeadObject::isReal(), logHit(), logMiss(), MaximumObjectSize, DeadObject::next, and DeadObject::remove().
Referenced by LargeSegmentSet::donateObject().
|
inline |
Definition at line 192 of file DeadObject.hpp.
References anchor, and DeadObject::next.
|
inline |
Definition at line 171 of file DeadObject.hpp.
References anchor, DeadObject::isReal(), logHit(), logMiss(), DeadObject::next, and DeadObject::remove().
|
inline |
Definition at line 270 of file DeadObject.hpp.
References anchor, logHit(), logMiss(), and DeadObject::next.
Referenced by NormalSegmentSet::allocateObject().
|
inline |
Definition at line 140 of file DeadObject.hpp.
Referenced by DeadObjectPool().
|
inline |
Definition at line 156 of file DeadObject.hpp.
References anchor, DeadObject::isReal(), and DeadObject::next.
|
inline |
Definition at line 158 of file DeadObject.hpp.
References anchor, and DeadObject::next.
|
inline |
Definition at line 191 of file DeadObject.hpp.
References anchor, and DeadObject::previous.
|
inlineprivate |
Definition at line 297 of file DeadObject.hpp.
|
inlineprivate |
Definition at line 299 of file DeadObject.hpp.
Referenced by findBestFit(), findFit(), findSmallestFit(), getFirst(), and getFirstSingle().
|
inlineprivate |
Definition at line 300 of file DeadObject.hpp.
Referenced by findBestFit(), findFit(), findSmallestFit(), getFirst(), and getFirstSingle().
|
inlineprivate |
Definition at line 298 of file DeadObject.hpp.
|
inline |
Definition at line 154 of file DeadObject.hpp.
Referenced by NormalSegmentSet::NormalSegmentSet().
|
private |
Definition at line 305 of file DeadObject.hpp.
Referenced by add(), addSingle(), addSortedByLocation(), addSortedBySize(), checkObjectOverlap(), empty(), emptySingle(), findBestFit(), findFit(), findSmallestFit(), firstBlock(), getFirst(), getFirstSingle(), isEmpty(), isEmptySingle(), and lastBlock().
|
private |
Definition at line 306 of file DeadObject.hpp.