File: PrivateMembers.cpp

package info (click to toggle)
sflphone 0.9.8.4-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 48,248 kB
  • ctags: 34,859
  • sloc: ansic: 280,525; cpp: 47,730; sh: 21,755; python: 7,039; xml: 6,528; makefile: 2,227; asm: 46
file content (46 lines) | stat: -rw-r--r-- 1,107 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <cstdlib>

#include "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;
}