home *** CD-ROM | disk | FTP | other *** search
/ Tools / WinSN5.0Ver.iso / NETSCAP.50 / WIN1998.ZIP / ns / lib / mac / MacMemoryAllocator / src / CPlusPlusLevel.cp next >
Encoding:
Text File  |  1998-04-08  |  1.8 KB  |  70 lines

  1. /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Netscape Public License
  4.  * Version 1.0 (the "NPL"); you may not use this file except in
  5.  * compliance with the NPL.  You may obtain a copy of the NPL at
  6.  * http://www.mozilla.org/NPL/
  7.  *
  8.  * Software distributed under the NPL is distributed on an "AS IS" basis,
  9.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
  10.  * for the specific language governing rights and limitations under the
  11.  * NPL.
  12.  *
  13.  * The Initial Developer of this code under the NPL is Netscape
  14.  * Communications Corporation.  Portions created by Netscape are
  15.  * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
  16.  * Reserved.
  17.  */
  18.  
  19. #include <UException.h>
  20.  
  21. #include <stddef.h>
  22. #include <stdlib.h>
  23. #include <string.h>
  24.  
  25. #include "prtypes.h"
  26.  
  27. #include "FlushAllocator.h"
  28.  
  29.  
  30. //##############################################################################
  31. //##############################################################################
  32.  
  33. void* Flush_Allocate( size_t size, Boolean zero )
  34. {
  35.     void *newBlock = malloc( size );
  36.     if ((newBlock != NULL) && zero)
  37.         memset(newBlock, 0, size);
  38.     return newBlock;
  39. }
  40.  
  41. void Flush_Free( void* item )
  42. {
  43.     free(item);
  44. }
  45.  
  46. void* Flush_Reallocate( void* item, size_t size )
  47. {
  48.     void*    newBlock = NULL;
  49.     newBlock = realloc( item, size );
  50.     return newBlock;
  51. }
  52.  
  53.  
  54. //##############################################################################
  55. //##############################################################################
  56.  
  57.  
  58.  
  59. void* operator new( size_t size )
  60. {
  61.     void* mem = Flush_Allocate( size, FALSE );
  62.     ThrowIfNil_( mem );
  63.     return mem;
  64. }
  65.  
  66. void operator delete( void* block )
  67. {
  68.     Flush_Free( block );
  69. }
  70.