00001 // Filename: dtoolbase.cxx 00002 // Created by: drose (12Sep00) 00003 // 00004 //////////////////////////////////////////////////////////////////// 00005 // 00006 // PANDA 3D SOFTWARE 00007 // Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved 00008 // 00009 // All use of this software is subject to the terms of the Panda 3d 00010 // Software license. You should have received a copy of this license 00011 // along with this source code; you will also find a current copy of 00012 // the license at http://www.panda3d.org/license.txt . 00013 // 00014 // To contact the maintainers of this program write to 00015 // panda3d@yahoogroups.com . 00016 // 00017 //////////////////////////////////////////////////////////////////// 00018 00019 #include "dtoolbase.h" 00020 00021 00022 #ifndef NDEBUG 00023 00024 void *default_operator_new(size_t size) { 00025 void *ptr = malloc(size); 00026 if (ptr == (void *)NULL) { 00027 cerr << "Out of memory!\n"; 00028 abort(); 00029 } 00030 return ptr; 00031 } 00032 00033 void default_operator_delete(void *ptr) { 00034 free(ptr); 00035 } 00036 00037 // We absolutely depend on the static initialization of these pointers 00038 // to happen at load time, before any static constructors are called. 00039 void *(*global_operator_new)(size_t size) = &default_operator_new; 00040 void (*global_operator_delete)(void *ptr) = &default_operator_delete; 00041 00042 #endif // NDEBUG