diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/mupdf/fitz/system.h | 1 | ||||
-rw-r--r-- | include/mupdf/fitz/track-usage.h | 35 |
2 files changed, 36 insertions, 0 deletions
diff --git a/include/mupdf/fitz/system.h b/include/mupdf/fitz/system.h index cbc10285..be5504a5 100644 --- a/include/mupdf/fitz/system.h +++ b/include/mupdf/fitz/system.h @@ -31,6 +31,7 @@ #include <setjmp.h> #include "mupdf/memento.h" +#include "mupdf/fitz/track-usage.h" #define nelem(x) (sizeof(x)/sizeof((x)[0])) diff --git a/include/mupdf/fitz/track-usage.h b/include/mupdf/fitz/track-usage.h new file mode 100644 index 00000000..6c4409fb --- /dev/null +++ b/include/mupdf/fitz/track-usage.h @@ -0,0 +1,35 @@ +#ifndef TRACK_USAGE_H +#define TRACK_USAGE_H + +#ifdef TRACK_USAGE + +typedef struct track_usage_data_s { + int count; + const char *function; + int line; + const char *desc; + struct track_usage_data_s *next; +} track_usage_data_t; + +#define TRACK_LABEL(A) \ + do { \ + static track_usage_data_t USAGE_DATA = { 0 };\ + track_usage(&USAGE_DATA, __FILE__, __LINE__, A);\ + } while (0) + +#define TRACK_FN() \ + do { \ + static track_usage_data_t USAGE_DATA = { 0 };\ + track_usage(&USAGE_DATA, __FILE__, __LINE__, __FUNCTION__);\ + } while (0) + +void track_usage(track_usage_data_t *data, const char *function, int line, const char *desc); + +#else + +#define TRACK_LABEL(A) do { } while (0) +#define TRACK_FN() do { } while (0) + +#endif + +#endif |