⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dmalloc_support.cc

📁 柯老师网站上找到的
💻 CC
字号:
/* * dmalloc_support.cc * Copyright (C) 1997 by USC/ISI * All rights reserved.                                             *                                                                 * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, advertising * materials, and other materials related to such distribution and use * acknowledge that the software was developed by the University of * Southern California, Information Sciences Institute.  The name of the * University may not be used to endorse or promote products derived from * this software without specific prior written permission. *  * THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. *  * @(#) $Header: /nfs/jade/vint/CVSROOT/ns-2/lib/dmalloc_support.cc,v 1.3 1999/09/18 00:51:17 haoboy Exp $ (USC/ISI) *//* * Redefine new and friends to use dmalloc. */#ifdef HAVE_LIBDMALLOC/*  * NOTE: If dmalloc does not work for you (e.g., it hangs), make sure that * you are using dmalloc 4.2.0 or above. If you are using lower versions,  * change the following to: *  * #define DMALLOC_MAJOR_VERSION 3 */ #define DMALLOC_MAJOR_VERSION 4#if DMALLOC_MAJOR_VERSION > 3/*  * This portion copied from ~dmalloc/dmalloc.cc  * Copyright 1999 by Gray Watson */extern "C" {#include <stdlib.h>#define DMALLOC_DISABLE#include "dmalloc.h"#include "return.h"}/* * An overload function for the C++ new. */void *operator new[](size_t size){	char	*file;	GET_RET_ADDR(file);	return _malloc_leap(file, 0, size);}/* * An overload function for the C++ delete. */voidoperator 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> */voidoperator delete[](void *pnt){	char	*file;	GET_RET_ADDR(file);	_free_leap(file, 0, pnt);}#else /* DMALLOC_MAJOR_VERSION == 3 */extern "C" {#include <stdlib.h>#include "dmalloc.h"#include "return.h"}void *operator new(size_t n){	SET_RET_ADDR(_dmalloc_file, _dmalloc_line);	return _malloc_leap(_dmalloc_file, _dmalloc_line, n);}void *operator new[](size_t n){	SET_RET_ADDR(_dmalloc_file, _dmalloc_line);	return _malloc_leap(_dmalloc_file, _dmalloc_line, n);}voidoperator delete(void * cp){	if (!cp)   // silently ignore null pointers		return;	SET_RET_ADDR(_dmalloc_file, _dmalloc_line);	_free_leap(_dmalloc_file, _dmalloc_line, cp);}#endif /* DMALLOC_VERSION */#endif /* HAVE_LIBDMALLOC */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -