Files correlati : Commento : Spostamento in libraries delle librerie esterne di Campo per una maggiore pulizia e organizzazione git-svn-id: svn://10.65.10.50/branches/R_10_00@24150 c028cbd2-c16b-5b4b-a496-9718f37d4682
47 lines
1.0 KiB
C++
47 lines
1.0 KiB
C++
#include <cstdlib>
|
|
|
|
#include "utilspp/singleton/PrivateMembers.hpp"
|
|
|
|
utilspp::PrivateMembers::TrackerArray
|
|
utilspp::PrivateMembers::mTrackerArray = NULL;
|
|
|
|
int utilspp::PrivateMembers::mNbElements = 0;
|
|
|
|
utilspp::PrivateMembers::LifetimeTracker::LifetimeTracker( unsigned int
|
|
longevity )
|
|
:
|
|
mLongevity(longevity)
|
|
{}
|
|
|
|
utilspp::PrivateMembers::LifetimeTracker::~LifetimeTracker()
|
|
{}
|
|
|
|
bool
|
|
utilspp::PrivateMembers::LifetimeTracker::compare(
|
|
const LifetimeTracker * l,
|
|
const LifetimeTracker * r
|
|
)
|
|
{
|
|
return l->mLongevity < r->mLongevity;
|
|
}
|
|
|
|
void
|
|
utilspp::PrivateMembers::atExitFunc()
|
|
{
|
|
assert((mTrackerArray != NULL) &&
|
|
(mNbElements> 0));
|
|
|
|
//Pick the element at the top of the stack.
|
|
LifetimeTracker* top = mTrackerArray[mNbElements - 1];
|
|
|
|
//Remove that object off the stack.
|
|
//Don't check errors-realloc with less memory, cause that can't fail.
|
|
mTrackerArray = static_cast<
|
|
utilspp::PrivateMembers::TrackerArray>(std::realloc(mTrackerArray,
|
|
--mNbElements));
|
|
|
|
//Destroy the element.
|
|
delete top;
|
|
}
|
|
|