home *** CD-ROM | disk | FTP | other *** search
- /*
- * This source file is Copyright 1995 by Evan Scott.
- * All rights reserved.
- * Permission is granted to distribute this file provided no
- * fees beyond distribution costs are levied.
- */
-
- #ifdef VERIFY
- /* #include <exec/lists.h>
- #include <exec/nodes.h> */
-
- #define magic_verify unsigned long magic
- #define MAGIC 0x49a72fc0
- #define verify(x,y) { if ((x)->magic!=(y)) verify_alert(__FILE__,__LINE__,#x,#y); }
- #define ensure(x,y) ((x)->magic=(y))
- #define truth(x) { if (!(x)) truth_alert(__FILE__,__LINE__,#x); }
- #define falsity(x) { if (x) false_alert(__FILE__,__LINE__,#x); }
- #define show_int(x) int_alert(__FILE__,__LINE__,#x, (int)x);
- #define show_string(x) string_alert(__FILE__,__LINE__,#x, x);
-
- void verify_alert(char *, int, char *, char *);
- void truth_alert(char *, int, char *);
- void false_alert(char *, int, char *);
- void int_alert(char *, int, char *, int);
- void string_alert(char *, int, char *, char *);
-
- #define allocate(x,y) track_malloc(x,y,0,__FILE__,__LINE__,#x,#y)
- #define allocate_flags(x,f,y) track_malloc(x,y,f,__FILE__,__LINE__,#x,#y)
- #define deallocate(x,y) track_free(x,y,__FILE__,__LINE__,#x,#y)
- #define disown(x,y) track_disown(x,y,__FILE__,__LINE__,#x,#y)
- #define adopt(x,y) track_adopt(x,y,__FILE__,__LINE__,#x,#y)
- #define mem_tracking_on() track_init()
- #define check_memory() track_check()
-
- struct bink {
- struct bink *next;
- struct bink **prev;
- unsigned long size;
- unsigned long type;
- int line;
- char *file, *typename;
- };
-
- void *track_malloc(int, unsigned long, unsigned long, char *, int, char *, char *);
- void track_free(void *, unsigned long, char *, int, char *, char *);
- void track_disown(void *, unsigned long, char *, int, char *, char *);
- void track_adopt(void *, unsigned long, char *, int, char *, char *);
- void track_init(void);
- void track_check(void);
-
- #else
- #define magic_verify char nothing[0]
- #define MAGIC 0x49a72fc0
- #define verify(x,y)
- #define ensure(x,y)
- #define truth(x)
- #define falsity(x)
- #define show_int(x)
- #define show_string(x)
-
- #define allocate(x,y) AllocVec(x, 0)
- #define allocate_flags(x,f,y) AllocVec(x,f)
- #define deallocate(x,y) FreeVec(x)
- #define disown(x,y)
- #define adopt(x,y)
- #define mem_tracking_on()
- #define check_memory()
- #endif
-