Reviewed by Adam.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Oct 2006 20:34:21 +0000 (20:34 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Oct 2006 20:34:21 +0000 (20:34 +0000)
        * wtf/Assertions.cpp: Changed assertion formatting to omit the "======"
        lines so you can see more assertions in less space. Also improved format
        of file/line information so it works with more development environments.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@16782 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/wtf/Assertions.cpp

index 819c0263deb1a37ad2193fbba3e42486c9aa5d0f..6742f208ee7fc56ade12f61c942633b3d2c66d84 100644 (file)
@@ -1,3 +1,11 @@
+2006-10-05  Darin Adler  <darin@apple.com>
+
+        Reviewed by Adam.
+
+        * wtf/Assertions.cpp: Changed assertion formatting to omit the "======"
+        lines so you can see more assertions in less space. Also improved format
+        of file/line information so it works with more development environments.
+
 2006-10-04  Kevin McCullough  <KMcCullough@apple.com>
 
         Reviewed by GGaren
index e9163144fabd001f9f663801d5b64baf1ae3d6fb..74a1af46bbceb689e907aea5565d5cb9d69f6c3e 100644 (file)
 #define WINVER 0x0500
 #define _WIN32_WINNT 0x0500
 #include <windows.h>
+#include <crtdbg.h>
 #endif
 
 extern "C" {
 
 // This is to work around the "you should use a printf format attribute" warning on GCC
 // We can't use _attribute__ ((format (printf, 2, 3))) since we allow %@
-static int (* vfprintf_no_warning)(FILE *, const char *, va_list) = vfprintf;
+static int (* vfprintf_no_warning)(FILE *, const char*, va_list) = vfprintf;
 
-static void vprintf_stderr_common(const char *format, va_list args)
+static void vprintf_stderr_common(const charformat, va_list args)
 {
 #if PLATFORM(MAC)
     if (strstr(format, "%@")) {
@@ -54,7 +55,7 @@ static void vprintf_stderr_common(const char *format, va_list args)
         CFStringRef str = CFStringCreateWithFormatAndArguments(NULL, NULL, cfFormat, args);
         
         int length = CFStringGetMaximumSizeForEncoding(CFStringGetLength(str), kCFStringEncodingUTF8);
-        char *buffer = (char *)malloc(length + 1);
+        char* buffer = (char*)malloc(length + 1);
 
         CFStringGetCString(str, buffer, length, kCFStringEncodingUTF8);
 
@@ -65,19 +66,16 @@ static void vprintf_stderr_common(const char *format, va_list args)
         CFRelease(cfFormat);
     } else
 #elif PLATFORM(WIN)
-    if (IsDebuggerPresent())
-    {
+    if (IsDebuggerPresent()) {
         size_t size = 1024;
 
-        do
-        {
+        do {
             char* buffer = (char*)malloc(size);
 
             if (buffer == NULL)
                 break;
 
-            if (_vsnprintf(buffer, size, format, args) != -1)
-            {
+            if (_vsnprintf(buffer, size, format, args) != -1) {
                 OutputDebugStringA(buffer);
                 free(buffer);
                 break;
@@ -91,7 +89,7 @@ static void vprintf_stderr_common(const char *format, va_list args)
         vfprintf_no_warning(stderr, format, args);
 }
 
-static void printf_stderr_common(const char * format, ...)
+static void printf_stderr_common(const char* format, ...)
 {
     va_list args;
     va_start(args, format);
@@ -99,50 +97,64 @@ static void printf_stderr_common(const char * format, ...)
     va_end(args);
 }
 
-void WTFReportAssertionFailure(const char *file, int line, const char *function, const char *assertion)
+static void printCallSite(const char* file, int line, const char* function)
+{
+#if PLATFORM(WIN)
+    _CrtDbgReport(_CRT_WARN, file, line, NULL, "%s\n", function);
+#else
+    printf_stderr_common("(%s:%d %s)\n", file, line, function);
+#endif
+}
+
+void WTFReportAssertionFailure(const char* file, int line, const char* function, const char* assertion)
 {
     if (assertion)
-        printf_stderr_common("=================\nASSERTION FAILED: %s (%s:%d %s)\n=================\n", assertion, file, line, function);
+        printf_stderr_common("ASSERTION FAILED: %s\n", assertion);
     else
-        printf_stderr_common("=================\nSHOULD NEVER BE REACHED (%s:%d %s)\n=================\n", file, line, function);
+        printf_stderr_common("SHOULD NEVER BE REACHED\n");
+    printCallSite(file, line, function);
 }
 
-void WTFReportAssertionFailureWithMessage(const char *file, int line, const char *function, const char *assertion, const char *format, ...)
+void WTFReportAssertionFailureWithMessage(const char* file, int line, const char* function, const char* assertion, const char* format, ...)
 {
-    printf_stderr_common("=================\nASSERTION FAILED: ");
+    printf_stderr_common("ASSERTION FAILED: ");
     va_list args;
     va_start(args, format);
     vprintf_stderr_common(format, args);
     va_end(args);
-    printf_stderr_common("\n%s (%s:%d %s)\n=================\n", assertion, file, line, function);
+    printf_stderr_common("\n%s\n", assertion);
+    printCallSite(file, line, function);
 }
 
-void WTFReportArgumentAssertionFailure(const char *file, int line, const char *function, const char *argName, const char *assertion)
+void WTFReportArgumentAssertionFailure(const char* file, int line, const char* function, const char* argName, const char* assertion)
 {
-    printf_stderr_common("=================\nARGUMENT BAD: %s, %s (%s:%d %s)\n=================\n", argName, assertion, file, line, function);
+    printf_stderr_common("ARGUMENT BAD: %s, %s\n", argName, assertion);
+    printCallSite(file, line, function);
 }
 
-void WTFReportFatalError(const char *file, int line, const char *function, const char *format, ...)
+void WTFReportFatalError(const char* file, int line, const char* function, const char* format, ...)
 {
-    printf_stderr_common("=================\nFATAL ERROR: ");
+    printf_stderr_common("FATAL ERROR: ");
     va_list args;
     va_start(args, format);
     vprintf_stderr_common(format, args);
     va_end(args);
-    printf_stderr_common("\n(%s:%d %s)\n=================\n", file, line, function);
+    printf_stderr_common("\n");
+    printCallSite(file, line, function);
 }
 
-void WTFReportError(const char *file, int line, const char *function, const char *format, ...)
+void WTFReportError(const char* file, int line, const char* function, const char* format, ...)
 {
-    printf_stderr_common("=================\nERROR: ");
+    printf_stderr_common("ERROR: ");
     va_list args;
     va_start(args, format);
     vprintf_stderr_common(format, args);
     va_end(args);
-    printf_stderr_common("\n(%s:%d %s)\n=================\n", file, line, function);
+    printf_stderr_common("\n");
+    printCallSite(file, line, function);
 }
 
-void WTFLog(const char*, int, const char*, WTFLogChannel *channel, const char *format, ...)
+void WTFLog(const char*, int, const char*, WTFLogChannel *channel, const charformat, ...)
 {    
     if (channel->state != WTFLogChannelOn)
         return;