mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-10 00:34:59 +01:00
rollback to 3428, before the mysterious removal of libs/* at 3431/3432
git-svn-id: svn://localhost/ardour2/branches/3.0@3435 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
9c0d7d72d7
commit
449aab3c46
2869 changed files with 1026749 additions and 0 deletions
102
libs/pbd/dmalloc.cc
Normal file
102
libs/pbd/dmalloc.cc
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
/*
|
||||
* file that facilitates C++ program debugging.
|
||||
*
|
||||
* Copyright 1995 by Gray Watson
|
||||
*
|
||||
* This file is part of the dmalloc package.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* NON-COMMERCIAL purpose and without fee is hereby granted, provided
|
||||
* that the above copyright notice and this permission notice appear
|
||||
* in all copies, and that the name of Gray Watson not be used in
|
||||
* advertising or publicity pertaining to distribution of the document
|
||||
* or software without specific, written prior permission.
|
||||
*
|
||||
* Please see the PERMISSIONS file or contact the author for information
|
||||
* about commercial licenses.
|
||||
*
|
||||
* Gray Watson makes no representations about the suitability of the
|
||||
* software described herein for any purpose. It is provided "as is"
|
||||
* without express or implied warranty.
|
||||
*
|
||||
* The author may be contacted via http://www.letters.com/~gray/
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file is used to effectively redirect new to the more familiar
|
||||
* malloc and delete to the more familiar free so they can be debugged
|
||||
* with the debug malloc library.. They also give the known error
|
||||
* behavior, too.
|
||||
*
|
||||
* Compile and link this in with the C++ program you want to debug.
|
||||
*
|
||||
* NOTE: I am not a C++ hacker so feedback in the form of other hints
|
||||
* and ideas for C++ users would be much appreciated.
|
||||
*/
|
||||
|
||||
#ifdef DEBUG_MALLOC
|
||||
|
||||
extern "C" {
|
||||
#include <stdlib.h>
|
||||
#include <dmalloc.h>
|
||||
#include "/usr/local/src/dmalloc-4.1.2/return.h"
|
||||
}
|
||||
|
||||
/*
|
||||
* An overload function for the C++ new.
|
||||
*/
|
||||
void *
|
||||
operator new(size_t size)
|
||||
{
|
||||
char *file;
|
||||
GET_RET_ADDR(file);
|
||||
|
||||
/* handle correct C++ semantics for an alloc of size 0 */
|
||||
|
||||
if (size == 0) size = 1;
|
||||
|
||||
return _malloc_leap(file, 0, size);
|
||||
}
|
||||
|
||||
/*
|
||||
* An overload function for the C++ new[].
|
||||
*/
|
||||
void *
|
||||
operator new[](size_t size)
|
||||
{
|
||||
char *file;
|
||||
GET_RET_ADDR(file);
|
||||
|
||||
/* handle correct C++ semantics for an alloc of size 0 */
|
||||
|
||||
if (size == 0) size = 1;
|
||||
|
||||
return _malloc_leap(file, 0, size);
|
||||
}
|
||||
|
||||
/*
|
||||
* An overload function for the C++ delete.
|
||||
*/
|
||||
void
|
||||
operator delete(void *pnt)
|
||||
{
|
||||
char *file;
|
||||
GET_RET_ADDR(file);
|
||||
_free_leap(file, 0, pnt);
|
||||
}
|
||||
|
||||
/*
|
||||
* An overload function for the C++ delete[]. Thanks to Jens Krinke
|
||||
* <j.krinke@gmx.de>
|
||||
*/
|
||||
void
|
||||
operator delete[](void *pnt)
|
||||
{
|
||||
char *file;
|
||||
GET_RET_ADDR(file);
|
||||
_free_leap(file, 0, pnt);
|
||||
}
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue