summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/mupdf/fitz/system.h1
-rw-r--r--include/mupdf/fitz/track-usage.h35
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