From e096c9d1f2be1ec74ede583fc4221871a56ef508 Mon Sep 17 00:00:00 2001 From: drw Date: Tue, 29 Apr 2003 02:28:16 +0000 Subject: Give aqpkg standard source headers and some minor code clean-up. --- (limited to 'noncore/settings/aqpkg/mem.cpp') diff --git a/noncore/settings/aqpkg/mem.cpp b/noncore/settings/aqpkg/mem.cpp index 405aada..5f32a26 100644 --- a/noncore/settings/aqpkg/mem.cpp +++ b/noncore/settings/aqpkg/mem.cpp @@ -1,106 +1,110 @@ -/*************************************************************************** - mem.h - description - ------------------- - begin : Mon Aug 26 2002 - copyright : (C) 2002 by Andy Qua - email : andy.qua@blueyonder.co.uk - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ -#include -#include -#include -#include -using namespace std; - -#define __MEMFILE_C -#include "global.h" - -#ifdef _DEBUG - -void __cdecl *operator new( unsigned int size, const char *file, int line ) -{ - void *ptr = (void *)malloc(size); - AddTrack((long)ptr, size, file, line); - return(ptr); -} - -void operator delete(void *p) -{ - RemoveTrack((long)p); - free(p); -} - -#endif - - -typedef struct { - long address; - long size; - char file[64]; - long line; -} ALLOC_INFO; - -typedef list AllocList; - -AllocList allocList; - - - -void AddTrack(long addr, long asize, const char *fname, long lnum) -{ - ALLOC_INFO *info; - - - info = (ALLOC_INFO *)malloc(sizeof( ALLOC_INFO )); - info->address = addr; - strncpy(info->file, fname, 63); - info->line = lnum; - info->size = asize; - allocList.insert(allocList.begin(), info); -}; - -void RemoveTrack(long addr) -{ - AllocList::iterator i; - - bool found = false; - for(i = allocList.begin(); i != allocList.end(); i++) - { - if((*i)->address == addr) - { - allocList.remove((*i)); - found = true; - break; - } - } -} - -void DumpUnfreed() -{ - AllocList::iterator i; - long totalSize = 0; - char buf[1024]; - - -// if(!allocList) -// return; - - for(i = allocList.begin(); i != allocList.end(); i++) { - sprintf(buf, "%-15s: LINE %ld, ADDRESS %ld %ld unfreed", - (*i)->file, (*i)->line, (*i)->address, (*i)->size); - cout <size; - } - sprintf(buf, "-----------------------------------------------------------\n"); - cout < +             .=l. Dan Williams +           .>+-= + _;:,     .>    :=|. This file is free software; you can +.> <`_,   >  .   <= redistribute it and/or modify it under +:`=1 )Y*s>-.--   : the terms of the GNU General Public +.="- .-=="i,     .._ License as published by the Free Software + - .   .-<_>     .<> Foundation; either version 2 of the License, +     ._= =}       : or (at your option) any later version. +    .%`+i>       _;_. +    .i_,=:_.      -`: PARTICULAR PURPOSE. See the GNU General +..}^=.=       =       ; Public License for more details. +++=   -.     .`     .: + :     =  ...= . :.=- You should have received a copy of the GNU + -.   .:....=;==+<; General Public License along with this file; +  -_. . .   )=.  = see the file COPYING. If not, write to the +    --        :-=` Free Software Foundation, Inc., + 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ + +#include +#include +using namespace std; + +#define __MEMFILE_C +#include "global.h" + +#ifdef _DEBUG + +void __cdecl *operator new( unsigned int size, const char *file, int line ) +{ + void *ptr = (void *)malloc(size); + AddTrack((long)ptr, size, file, line); + return(ptr); +} + +void operator delete(void *p) +{ + RemoveTrack((long)p); + free(p); +} + +#endif + + +typedef struct { + long address; + long size; + char file[64]; + long line; +} ALLOC_INFO; + +typedef list AllocList; + +AllocList allocList; + + + +void AddTrack(long addr, long asize, const char *fname, long lnum) +{ + ALLOC_INFO *info; + + + info = (ALLOC_INFO *)malloc(sizeof( ALLOC_INFO )); + info->address = addr; + strncpy(info->file, fname, 63); + info->line = lnum; + info->size = asize; + allocList.insert(allocList.begin(), info); +}; + +void RemoveTrack(long addr) +{ + AllocList::iterator i; + + bool found = false; + for(i = allocList.begin(); i != allocList.end(); i++) + { + if((*i)->address == addr) + { + allocList.remove((*i)); + found = true; + break; + } + } +} + +void DumpUnfreed() +{ + AllocList::iterator i; + long totalSize = 0; + char buf[1024]; + + for(i = allocList.begin(); i != allocList.end(); i++) { + sprintf(buf, "%-15s: LINE %ld, ADDRESS %ld %ld unfreed", + (*i)->file, (*i)->line, (*i)->address, (*i)->size); + totalSize += (*i)->size; + } + sprintf(buf, "-----------------------------------------------------------\n"); + sprintf(buf, "Total Unfreed: %ld bytes\n", totalSize); +}; -- cgit v0.9.0.2