00001 #ifndef __J2K__SLink_CPP__
00002 #define __J2K__SLink_CPP__
00003
00004 #include <j2k/DataType/Link/SLink.hpp>
00005
00006
00007 SLink* SLink::freelist = NULL;
00008
00009 inline SLink::SLink()
00010 : element( (Elem)0 ), next( NULL ) { }
00011
00012 inline SLink::SLink( SLink* nextp )
00013 : element( (Elem)0 ), next( nextp ) { }
00014
00015 inline SLink::SLink( Elem Elemval )
00016 : element( Elemval ), next( NULL ) { }
00017
00018 inline SLink::SLink( Elem Elemval, SLink* nextp )
00019 : element( Elemval ), next( nextp ) { }
00020
00021
00022
00023 void* SLink::operator new(size_t)
00024 {
00025 if (freelist == NULL)
00026 return ::new SLink;
00027
00028 SLink* temp = freelist;
00029 freelist = freelist->next;
00030 return temp;
00031 }
00032
00033
00034 void SLink::operator delete(void* ptr)
00035 {
00036 ((SLink*)ptr)->next = freelist;
00037 freelist = (SLink*)ptr;
00038 }
00039
00040 #endif