]> git.saurik.com Git - cydia.git/blobdiff - UICaboodle/UICaboodle.h
Mild organization and optimization.
[cydia.git] / UICaboodle / UICaboodle.h
index 499fc23a7172a62a51895c4647ca1e3805d54159..f9a4eb3e38c524cb364d751a28e301f969a9fd05 100644 (file)
@@ -1,3 +1,6 @@
+#define __STDC_LIMIT_MACROS
+#include <stdint.h>
+
 #include <objc/objc.h>
 
 #include <sys/time.h>
@@ -6,10 +9,22 @@
 #define _forever \
     for (;;)
 
+extern struct timeval _ltv;
+extern bool _itv;
+
 #define _trace() do { \
-    struct timeval _tv; \
-    gettimeofday(&_tv, NULL); \
-    fprintf(stderr, "%lu.%.6u:_trace()@%s:%u[%s]\n", _tv.tv_sec, _tv.tv_usec, __FILE__, __LINE__, __FUNCTION__); \
+    struct timeval _ctv; \
+    gettimeofday(&_ctv, NULL); \
+    if (!_itv) { \
+        _itv = true; \
+        _ltv = _ctv; \
+    } \
+    fprintf(stderr, "%lu.%.6u[%f]:_trace()@%s:%u[%s]\n", \
+        _ctv.tv_sec, _ctv.tv_usec, \
+        (_ctv.tv_sec - _ltv.tv_sec) + (_ctv.tv_usec - _ltv.tv_usec) / 1000000.0, \
+        __FILE__, __LINE__, __FUNCTION__\
+    ); \
+    _ltv = _ctv; \
 } while (false)
 
 #define _assert(test) do \
@@ -22,3 +37,10 @@ while (false)
 #define _not(type) ((type) ~ (type) 0)
 
 #define _transient
+
+#define _label__(x) _label ## x
+#define _label_(y) _label__(y)
+#define _label _label_(__LINE__)
+
+#define _packed \
+    __attribute__((packed))