source file of the GNU LilyPond music typesetter
- (c) 1996,98 Han-Wen Nienhuys <hanwen@stack.nl>
+ (c) 1996,98 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include <fstream.h>
// libg++ 2.8.0
// #include <std/new.h>
#include <stdlib.h>
+
+
#include "debug.hh"
#include "dstream.hh"
#include "flower-debug.hh"
#include "moment.hh"
-
+#include "misc.hh"
#include "main.hh"
+
Dstream *monitor=0;
ostream * nulldev =0;
void
float_handler (int)
{
- cerr << _("Floating point exception .. \n")<< flush;
+ cerr << _ ("Floating point exception") << endl;
assert (false);
}
bool check_malloc_b = false;
-//#define MEMORY_PARANOID
+// #define MEMORY_PARANOID
#ifdef MEMORY_PARANOID
#include <malloc.h>
+void
+frobnify (void *p, size_t s)
+{
+ char *cp = (char*)p;
+ char *e = cp + s;
+ while (cp < e)
+ {
+ *cp++ ^=42;
+ }
+}
+
+
void *
operator new (size_t size)
{
void *result;
result = malloc (size);
if (check_malloc_b)
- memfrob (result, size);
+ frobnify (result, size);
return result;
}
+void *to_frob; int frob_size;
+
+void
+set_frobnify (void * p, size_t sz)
+{
+ to_frob = p;
+ frob_size = sz;
+}
void
operator delete (void *p)
{
if (!p)
return ;
- if (check_malloc_b)
- memfrob (p, 8); // ugh. Need the blocksize. 8 is sysdependant
+ if (p == to_frob)
+ {
+ frobnify (p, frob_size);
+ to_frob = 0;
+ frob_size=0;
+ }
free (p);
}
{
check_debug =b;
set_flower_debug (*monitor, check_debug);
- check_malloc_b = experimental_features_global_b;
#ifdef MEMORY_PARANOID
if (check_malloc_b)
if (mcheck (0))
- warning ("Can't set mem-checking!");
+ warning (_ ("can't set mem-checking") + "!");
#endif
}