void choose_update(void);
/* Called when we think the choose tree might need updating */
+/* Widget leakage debugging rubbish ---------------------------------------- */
+
+#if MDEBUG
+#define NW(what) do { \
+ if(++current##what % 100 > max##what) { \
+ fprintf(stderr, "%s:%d: %d %s\n", \
+ __FILE__, __LINE__, current##what, #what); \
+ max##what = current##what; \
+ } \
+} while(0)
+#define WT(what) static int current##what, max##what
+#define DW(what) (--current##what)
+#else
+#define NW(what) do { } while(0)
+#define DW(what) do { } while(0)
+#define WT(what) struct neverused
+#endif
+
+#if MTRACK
+extern const char *mtag;
+#define MTAG(x) do { mtag = x; } while(0)
+#define MTAG_PUSH(x) do { const char *save_mtag = mtag; mtag = x; (void)0
+#define MTAG_POP() mtag = save_mtag; } while(0)
+#else
+#define MTAG(x) do { } while(0)
+#define MTAG_PUSH(x) do {} while(0)
+#define MTAG_POP() do {} while(0)
+#endif
+
#endif /* DISOBEDIENCE_H */
/*
indent-tabs-mode:nil
End:
*/
-/* arch-tag:5DbN8e67AvkhPmNqSQyZFQ */