Main Page   Packages   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

C:/temp/src/j2k/Deprecated/RefList/FREE.C

Go to the documentation of this file.
00001 class Link {                   // A singly-linked list node
00002 public:                        //   with freelist
00003   Elem element;                // Elem value for this node
00004   Link* next;                  // Pointer to next node in list
00005   static Link* freelist;       // Link class freelist
00006   Link(const Elem elemval, Link* nextval =NULL)
00007     { element = elemval;  next = nextval; }
00008   Link(Link* nextval =NULL) { next = nextval; }
00009   ~Link() { }                  // Destructor: take no action
00010   void* operator new(size_t);  // Overloaded new operator
00011   void operator delete(void*); // Overloaded delete operator
00012 };
00013 
00014 
00015 // This creates space for the freelist variable
00016 Link* Link::freelist = NULL;
00017 
00018 void* Link::operator new(size_t) { // Overload new
00019   if (freelist == NULL) return ::new Link; // Create new space
00020   Link* temp = freelist;       // Otherwise, get from freelist
00021   freelist = freelist->next;
00022   return temp;                    // Return the link node
00023 }
00024 
00025 void Link::operator delete(void* ptr) { // Overload delete
00026   ((Link*)ptr)->next = freelist;  // Put on freelist
00027   freelist = (Link*)ptr;
00028 }

Generated on Sun Oct 14 18:46:30 2001 for Standard J2K Library by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001