diff options
author | Robin Watts <robin.watts@artifex.com> | 2016-05-26 15:57:21 +0100 |
---|---|---|
committer | Robin Watts <robin.watts@artifex.com> | 2016-05-27 17:08:18 +0100 |
commit | dba5c0206072986ae07111e4e62234bbc1156caa (patch) | |
tree | 4cb9f6841739a30cfa0c3124b1dd4ef09bfa7e9a /include | |
parent | 0a4ebf51a9de8f2f1feddd9bb9ea78a5ed061a52 (diff) | |
download | mupdf-dba5c0206072986ae07111e4e62234bbc1156caa.tar.xz |
Add facility to track usage of functions.
Use this for plotters so we can see which ones are being used
in any given build.
Build with -DTRACK_USAGE to enable.
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 |