Mercurial > hg > octave-nkf
diff src/octave.cc @ 1266:e1ddfb12566d
[project @ 1995-04-20 18:56:04 by jwe]
author | jwe |
---|---|
date | Thu, 20 Apr 1995 19:09:12 +0000 |
parents | b6360f2d4fa6 |
children | 4acabfbdd381 |
line wrap: on
line diff
--- a/src/octave.cc +++ b/src/octave.cc @@ -989,6 +989,44 @@ DEFALIAS (shell_cmd, system); +#if defined (__GNUG__) && defined (DEBUG_NEW_DELETE) +int debug_new_delete = 0; + +typedef void (*vfp)(void); +extern vfp __new_handler; + +void * +__builtin_new (size_t sz) +{ + void *p; + + /* malloc (0) is unpredictable; avoid it. */ + if (sz == 0) + sz = 1; + p = (void *) malloc (sz); + while (p == 0) + { + (*__new_handler) (); + p = (void *) malloc (sz); + } + + if (debug_new_delete) + cout << "__builtin_new: " << p << endl; + + return p; +} + +void +__builtin_delete (void *ptr) +{ + if (debug_new_delete) + cout << "__builtin_delete: " << ptr << endl; + + if (ptr) + free (ptr); +} +#endif + /* ;;; Local Variables: *** ;;; mode: C++ ***