PRODUCT : Borland C++ NUMBER : 1151 VERSION : 3.1 OS : ALL DATE : October 19, 1993 PAGE : 1/4 TITLE : The source code for the new and delete operators. /*-----------------------------------------------------------------------* * filename - new.cpp * C++ NEW *-----------------------------------------------------------------------*/ /* * C/C++ Run Time Library - Version 5.0 * * Copyright (c) 1990, 1992 by Borland International * All Rights Reserved. * */ #include #include typedef void (* pvf)(); pvf _new_handler; pvf set_new_handler(pvf p) { pvf t = _new_handler; _new_handler = p; return t; } void *operator new( size_t size ) { void * p; size = size ? size : 1; while ( (p = malloc(size)) == NULL && _new_handler != NULL) _new_handler(); return p; } /*-----------------------------------------------------------------------* * filename - newf.cpp * C++ NEW PRODUCT : Borland C++ NUMBER : 1151 VERSION : 3.1 OS : ALL DATE : October 19, 1993 PAGE : 2/4 TITLE : The source code for the new and delete operators. *-----------------------------------------------------------------------*/ /* * C/C++ Run Time Library - Version 5.0 * * Copyright (c) 1990, 1992 by Borland International * All Rights Reserved. * */ #include #include typedef void (*pvf)(); extern pvf _new_handler; void far * operator new( unsigned long size ) { void far * p; size = size ? size : 1; while ( (p = farmalloc(size)) == NULL && _new_handler != NULL) _new_handler(); return p; } /*-----------------------------------------------------------------------* * filename - del.cpp * C++ DELETE *-----------------------------------------------------------------------*/ /* * C/C++ Run Time Library - Version 5.0 * * Copyright (c) 1990, 1992 by Borland International * All Rights Reserved. * */ PRODUCT : Borland C++ NUMBER : 1151 VERSION : 3.1 OS : ALL DATE : October 19, 1993 PAGE : 3/4 TITLE : The source code for the new and delete operators. #include #include void operator delete( void _FAR *ptr ) { free(ptr); } /*-----------------------------------------------------------------------* * filename - delf.cpp * C++ DELETE *-----------------------------------------------------------------------*/ /* * C/C++ Run Time Library - Version 5.0 * * Copyright (c) 1990, 1992 by Borland International * All Rights Reserved. * */ #include #include #include #if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__) void operator delete( void far *ptr ) { if (FP_SEG(ptr) == _DS) free((void *) ptr); else farfree(ptr); } #endif DISCLAIMER: You have the right to use this technical information subject to the terms of the No-Nonsense License Statement that PRODUCT : Borland C++ NUMBER : 1151 VERSION : 3.1 OS : ALL DATE : October 19, 1993 PAGE : 4/4 TITLE : The source code for the new and delete operators. you received with the Borland product to which this information pertains.