Main Page | File List

/home/jared/lsdmake/debug/src/masc++/garbage.h

00001 #ifndef GARBAGE_H__ 00002 #define GARBAGE_H__ 00003 00004 class Garbage_Collector { 00005 00006 public: 00007 ~Garbage_Collector() { 00008 for(size_t i = 0; i < size; i++) { 00009 /*char data[256]; 00010 std::sprintf(data,"Freed data: %s\n", mem_ptr[i]); 00011 OutputDebugString(data);*/ 00012 free(mem_ptr[i]); 00013 } 00014 } 00015 00016 Garbage_Collector() { 00017 mem_ptr = 0; 00018 size = 0; 00019 } 00020 00021 void *alloc(size_t pos) { 00022 void *ptr = malloc(pos); 00023 mem_ptr = (void**)realloc(mem_ptr, sizeof(void**) * (++size)); 00024 void **temp_ptr = mem_ptr; 00025 temp_ptr += (size-1); 00026 *temp_ptr = ptr; 00027 return ptr; 00028 } 00029 00030 void *operator[](size_t pos) { return mem_ptr[pos]; } 00031 00032 private: 00033 void **mem_ptr; 00034 size_t size; 00035 00036 00037 }; 00038 00039 00040 static Garbage_Collector mem; 00041 00042 #endif 00043 00044

Generated on Fri Jul 8 14:31:05 2005 for lsdmake.kdevelop by doxygen 1.3.8