summaryrefslogtreecommitdiff
path: root/include/mupdf/fitz/track-usage.h
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2016-05-26 15:57:21 +0100
committerRobin Watts <robin.watts@artifex.com>2016-05-27 17:08:18 +0100
commitdba5c0206072986ae07111e4e62234bbc1156caa (patch)
tree4cb9f6841739a30cfa0c3124b1dd4ef09bfa7e9a /include/mupdf/fitz/track-usage.h
parent0a4ebf51a9de8f2f1feddd9bb9ea78a5ed061a52 (diff)
downloadmupdf-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/mupdf/fitz/track-usage.h')
-rw-r--r--include/mupdf/fitz/track-usage.h35
1 files changed, 35 insertions, 0 deletions
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