home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c065 / 2.ddi / CLIB2.ZIP / NEWDEL.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1990-06-07  |  1.3 KB  |  44 lines

  1. /*-----------------------------------------------------------------------*
  2.  * filename - newdel.cpp
  3.  * C++ NEW and DELETE
  4.  *-----------------------------------------------------------------------*/
  5.  
  6. /*[]------------------------------------------------------------[]*/
  7. /*|                                                              |*/
  8. /*|     Turbo C++ Run Time Library - Version 1.0                 |*/
  9. /*|                                                              |*/
  10. /*|                                                              |*/
  11. /*|     Copyright (c) 1990 by Borland International              |*/
  12. /*|     All Rights Reserved.                                     |*/
  13. /*|                                                              |*/
  14. /*[]------------------------------------------------------------[]*/
  15.  
  16. #include <stddef.h>
  17. #include <stdlib.h>
  18.  
  19. typedef void (*pvf)();
  20.  
  21. pvf _new_handler;
  22.  
  23. pvf set_new_handler(pvf p)
  24. {
  25.     pvf t = _new_handler;
  26.     _new_handler = p;
  27.     return t;
  28. }
  29.  
  30. void * operator new( size_t size )
  31. {
  32.     void * p;
  33.     while ( (p = malloc(size)) == NULL && _new_handler != NULL)
  34.     _new_handler();
  35.     return p;
  36. }
  37.  
  38. #pragma warn -par
  39. void operator delete( void *ptr, size_t size )
  40. {
  41.     free(ptr);
  42. }
  43. #pragma warn .par
  44.