]> git.cworth.org Git - apitrace/blobdiff - common/os_win32.cpp
Resolve some MS compiler warnings (in picky mode)
[apitrace] / common / os_win32.cpp
index e00fe64bd50edeacb197d8f04a704b3bf83b9bfc..bd4b06d46c919d94f2f0e2d24002564db2c9c011 100644 (file)
@@ -42,7 +42,7 @@ String
 getProcessName(void)
 {
     String path;
-    size_t size = MAX_PATH;
+    DWORD size = MAX_PATH;
     char *buf = path.buf(size);
 
     DWORD nWritten = GetModuleFileNameA(NULL, buf, size);
@@ -57,7 +57,7 @@ String
 getCurrentDir(void)
 {
     String path;
-    size_t size = MAX_PATH;
+    DWORD size = MAX_PATH;
     char *buf = path.buf(size);
     
     DWORD ret = GetCurrentDirectoryA(size, buf);
@@ -69,6 +69,12 @@ getCurrentDir(void)
     return path;
 }
 
+bool
+createDirectory(const String &path)
+{
+    return CreateDirectoryA(path, NULL);
+}
+
 bool
 String::exists(void) const
 {
@@ -125,7 +131,6 @@ quoteArg(std::string &s, const char *arg)
     s.push_back('"');
     while (true) {
         c = *arg++;
-        switch (c)
         if (c == '\0') {
             break;
         } else if (c == '"') {
@@ -190,7 +195,7 @@ int execute(char * const * args)
 
     WaitForSingleObject(processInformation.hProcess, INFINITE);
 
-    DWORD exitCode = ~0;
+    DWORD exitCode = ~0UL;
     GetExitCodeProcess(processInformation.hProcess, &exitCode);
 
     CloseHandle(processInformation.hProcess);
@@ -230,11 +235,7 @@ long long timeFrequency = 0LL;
 void
 abort(void)
 {
-#ifndef NDEBUG
-    DebugBreak();
-#else
-    ExitProcess(0);
-#endif
+    TerminateProcess(GetCurrentProcess(), 1);
 }
 
 
@@ -276,6 +277,15 @@ unhandledExceptionHandler(PEXCEPTION_POINTERS pExceptionInfo)
         return EXCEPTION_CONTINUE_SEARCH;
     }
 
+    /*
+     * Ignore .NET exception.
+     *
+     * http://ig2600.blogspot.co.uk/2011/01/why-do-i-keep-getting-exception-code.html
+     */
+    if (pExceptionRecord->ExceptionCode == 0xe0434352) {
+        return EXCEPTION_CONTINUE_SEARCH;
+    }
+
     // Clear direction flag
 #ifdef _MSC_VER
 #ifndef _WIN64
@@ -291,7 +301,7 @@ unhandledExceptionHandler(PEXCEPTION_POINTERS pExceptionInfo)
 
     static int recursion_count = 0;
     if (recursion_count) {
-        fprintf(stderr, "apitrace: warning: recursion handling exception\n");
+        fputs("apitrace: warning: recursion handling exception\n", stderr);
     } else {
         if (gCallback) {
             ++recursion_count;