summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/skia/experimental/LightSymbolsUtil/lightsymbols/lightsymbols.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/skia/experimental/LightSymbolsUtil/lightsymbols/lightsymbols.h')
-rw-r--r--chromium/third_party/skia/experimental/LightSymbolsUtil/lightsymbols/lightsymbols.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/chromium/third_party/skia/experimental/LightSymbolsUtil/lightsymbols/lightsymbols.h b/chromium/third_party/skia/experimental/LightSymbolsUtil/lightsymbols/lightsymbols.h
new file mode 100644
index 00000000000..02494e63b54
--- /dev/null
+++ b/chromium/third_party/skia/experimental/LightSymbolsUtil/lightsymbols/lightsymbols.h
@@ -0,0 +1,50 @@
+#ifndef __LIGHT_SYMBOLS__
+#define __LIGHT_SYMBOLS__
+#define LS_TRACE(functionName,fileId,lineNumber) LightSymbol __lstr(functionName,fileId,lineNumber);
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+//#include <pthread.h>
+#include <windows.h>
+
+typedef char* SZ;
+
+#define LIGHT_SYMBOLS_FILE "LIGHT_SYMBOLS_FILE"
+
+class LightSymbol {
+ const char* sym;
+ int fileId;
+ int lineNumber;
+
+ LightSymbol* parentFrame;
+
+ typedef LightSymbol* PLightSymbol;
+
+ static PLightSymbol lsFrames[1000];
+ static HANDLE handleFrames[1000];
+ static SZ* fileNames;
+ static bool busted;
+
+public:
+ LightSymbol(const char* sym, int fileId, int lineNumber);
+
+ ~LightSymbol();
+
+ static bool GetCallStack(char* sz, int len, const char* separator);
+
+private:
+
+ static LightSymbol** getThreadFrameContainer();
+
+ bool GetCallStackCore(char* sz, int len, const char* separator) const ;
+
+ static LightSymbol* GetCurrentFrame() ;
+
+ static void SetCurrentFrame(LightSymbol* ls) ;
+
+ static const char* trim(char* sz) ;
+};
+
+#endif