X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/763d5e6ad88ef3ba1cd1d7742d060e4f1e54c6b8..9aa6b167410b3b0545e93ba9cdc2bf0a0785c00b:/disobedience/disobedience.h?ds=sidebyside diff --git a/disobedience/disobedience.h b/disobedience/disobedience.h index 59cc6e9..21d589d 100644 --- a/disobedience/disobedience.h +++ b/disobedience/disobedience.h @@ -167,6 +167,35 @@ GtkWidget *choose_widget(void); 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 */ /*