summaryrefslogtreecommitdiffstats
path: root/skia
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-12 20:08:50 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-12 20:08:50 +0000
commit2786f3db2489aa1fd2453fa85745e5c5658b1cd1 (patch)
tree905f82e544746d33d6cc4a3f760a345f648a4fd1 /skia
parentb734450b86e9d6bd7a07b381c119ca91803ae46b (diff)
downloadchromium_src-2786f3db2489aa1fd2453fa85745e5c5658b1cd1.zip
chromium_src-2786f3db2489aa1fd2453fa85745e5c5658b1cd1.tar.gz
chromium_src-2786f3db2489aa1fd2453fa85745e5c5658b1cd1.tar.bz2
Hook up skia's assertions to our logging system.
Review URL: http://codereview.chromium.org/17285 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7889 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia')
-rw-r--r--skia/SConscript1
-rw-r--r--skia/effects/SkEmbossMask.cpp2
-rw-r--r--skia/ext/google_logging.cc20
-rw-r--r--skia/include/SkColorPriv.h2
-rw-r--r--skia/include/corecg/SkPostConfig.h8
-rw-r--r--skia/include/corecg/SkUserConfig.h28
-rw-r--r--skia/ports/SkFontHost_fontconfig.cpp4
-rw-r--r--skia/skia.vcproj14
-rw-r--r--skia/skia.xcodeproj/project.pbxproj4
9 files changed, 64 insertions, 19 deletions
diff --git a/skia/SConscript b/skia/SConscript
index b855a1a..65bf312 100644
--- a/skia/SConscript
+++ b/skia/SConscript
@@ -375,6 +375,7 @@ input_files = ChromeFileList([
'ext/bitmap_platform_device.h',
'ext/bitmap_platform_device_win.cc',
'ext/bitmap_platform_device_win.h',
+ 'ext/google_logging.cc',
'ext/image_operations.cc',
'ext/image_operations.h',
'ext/platform_canvas.h',
diff --git a/skia/effects/SkEmbossMask.cpp b/skia/effects/SkEmbossMask.cpp
index 28e38a1..fd11f54 100644
--- a/skia/effects/SkEmbossMask.cpp
+++ b/skia/effects/SkEmbossMask.cpp
@@ -75,7 +75,7 @@ void SkEmbossMask_BuildTable()
if ((dy & 15) == 0)
::fprintf(file, "\t");
- U16 value = SkToU16((1 << 15) / SkSqrt32(dx * dx + dy * dy + kDelta*kDelta/4));
+ uint16_t value = SkToU16((1 << 15) / SkSqrt32(dx * dx + dy * dy + kDelta*kDelta/4));
::fprintf(file, "0x%04X", value);
if (dx * 128 + dy < 128*128-1)
diff --git a/skia/ext/google_logging.cc b/skia/ext/google_logging.cc
new file mode 100644
index 0000000..c69d873
--- /dev/null
+++ b/skia/ext/google_logging.cc
@@ -0,0 +1,20 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// This file provides integration with Google-style "base/logging.h" assertions
+// for Skia SkASSERT. If you don't want this, you can link with another file
+// that provides integration with the logging of your choice.
+
+#include "base/logging.h"
+#include "base/string_util.h"
+
+void SkDebugf_FileLine(const char* file, int line, const char* format, ...) {
+ va_list ap;
+ va_start(ap, format);
+
+ std::string msg;
+ StringAppendV(&msg, format, ap);
+
+ logging::LogMessage(file, line, logging::LOG_ERROR).stream() << msg;
+}
diff --git a/skia/include/SkColorPriv.h b/skia/include/SkColorPriv.h
index 09ddb63..a041547 100644
--- a/skia/include/SkColorPriv.h
+++ b/skia/include/SkColorPriv.h
@@ -142,7 +142,7 @@ inline void SkBlendRGB16(const uint16_t src[], uint16_t dst[],
}
#ifdef SK_DEBUG
- U16CPU SkRGB16Add(U16CPU a, U16CPU b) {
+ static inline U16CPU SkRGB16Add(U16CPU a, U16CPU b) {
SkASSERT(SkGetPackedR16(a) + SkGetPackedR16(b) <= SK_R16_MASK);
SkASSERT(SkGetPackedG16(a) + SkGetPackedG16(b) <= SK_G16_MASK);
SkASSERT(SkGetPackedB16(a) + SkGetPackedB16(b) <= SK_B16_MASK);
diff --git a/skia/include/corecg/SkPostConfig.h b/skia/include/corecg/SkPostConfig.h
index b2190ba..9fb27c4 100644
--- a/skia/include/corecg/SkPostConfig.h
+++ b/skia/include/corecg/SkPostConfig.h
@@ -96,12 +96,16 @@
// Chrome already defines WIN32_LEAN_AND_MEAN so no need to define it here.
#include <windows.h>
- // End Chrome-specific changes
+ #include <stdio.h>
#ifndef SK_DEBUGBREAK
- #define SK_DEBUGBREAK(cond) do { if (!(cond)) DebugBreak(); } while (false)
+ #define SK_DEBUGBREAK(cond) do { if (!(cond)) { \
+ SkDebugf("%s:%d: failed assertion \"%s\"\n", \
+ __FILE__, __LINE__, #cond); SK_CRASH(); } } while (false)
#endif
+ // End Chrome-specific changes
+
#ifdef SK_BUILD_FOR_WIN32
#define strcasecmp(a, b) stricmp(a, b)
#define strncasecmp(a, b, c) strnicmp(a, b, c)
diff --git a/skia/include/corecg/SkUserConfig.h b/skia/include/corecg/SkUserConfig.h
index 2a646ce..28a1893 100644
--- a/skia/include/corecg/SkUserConfig.h
+++ b/skia/include/corecg/SkUserConfig.h
@@ -86,6 +86,14 @@
#define SK_SCALAR_IS_FLOAT
#undef SK_SCALAR_IS_FIXED
+// Log the file and line number for assertions.
+#define SkDebugf(...) SkDebugf_FileLine(__FILE__, __LINE__, __VA_ARGS__)
+void SkDebugf_FileLine(const char* file, int line, const char* format, ...);
+#include <stdio.h>
+#define SK_DEBUGBREAK(cond) do { if (!(cond)) { \
+ SkDebugf("%s:%d: failed assertion \"%s\"\n", \
+ __FILE__, __LINE__, #cond); SK_CRASH(); } } while (false)
+
#if defined(SK_BUILD_FOR_WIN32)
#define SK_BUILD_FOR_WIN
@@ -103,6 +111,10 @@ typedef unsigned uint32_t;
#define SK_G32_SHIFT 8
#define SK_B32_SHIFT 0
+// VC doesn't support __restrict__, so make it a NOP.
+#undef SK_RESTRICT
+#define SK_RESTRICT
+
// Skia uses this deprecated bzero function to fill zeros into a string.
#define bzero(str, len) memset(str, 0, len)
@@ -138,16 +150,14 @@ typedef unsigned uint32_t;
#endif
-// Don't use skia debug mode even when compiled as debug, because we don't
-// care about debugging this library, only our app.
-#undef SK_DEBUG
-#undef SK_SUPPORT_UNITTEST
-#define SK_RELEASE
-#undef SK_RESTRICT
-#define SK_RESTRICT
-#define SkDebugf(...) ((void)0)
+#ifndef NDEBUG
+ #define SK_DEBUG
+ #undef SK_RELEASE
+#else
+ #define SK_RELEASE
+ #undef SK_DEBUG
+#endif
// ===== End Chrome-specific definitions =====
#endif
-
diff --git a/skia/ports/SkFontHost_fontconfig.cpp b/skia/ports/SkFontHost_fontconfig.cpp
index d060198..ddc025b 100644
--- a/skia/ports/SkFontHost_fontconfig.cpp
+++ b/skia/ports/SkFontHost_fontconfig.cpp
@@ -73,7 +73,9 @@ static SkTypeface::Style UniqueIdToStyle(unsigned uniqueid)
static unsigned FileIdAndStyleToUniqueId(unsigned fileid,
SkTypeface::Style style)
{
- SkASSERT(style & 0xff == style);
+ // TODO(agl/brettw) bug 6291: This assertion fails for unknown reasons
+ // on ChromeFontTest.LoadArial. This should be fixed.
+ //SkASSERT(style & 0xff == style);
return (fileid << 8) | static_cast<int>(style);
}
diff --git a/skia/skia.vcproj b/skia/skia.vcproj
index 2120a96..01670fc 100644
--- a/skia/skia.vcproj
+++ b/skia/skia.vcproj
@@ -1353,23 +1353,27 @@
Name="ext"
>
<File
- RelativePath=".\ext\convolver.cc"
+ RelativePath=".\ext\bitmap_platform_device.h"
>
</File>
<File
- RelativePath=".\ext\convolver.h"
+ RelativePath=".\ext\bitmap_platform_device_win.cc"
>
</File>
<File
- RelativePath=".\ext\bitmap_platform_device.h"
+ RelativePath=".\ext\bitmap_platform_device_win.h"
>
</File>
<File
- RelativePath=".\ext\bitmap_platform_device_win.cc"
+ RelativePath=".\ext\convolver.cc"
>
</File>
<File
- RelativePath=".\ext\bitmap_platform_device_win.h"
+ RelativePath=".\ext\convolver.h"
+ >
+ </File>
+ <File
+ RelativePath=".\ext\google_logging.cc"
>
</File>
<File
diff --git a/skia/skia.xcodeproj/project.pbxproj b/skia/skia.xcodeproj/project.pbxproj
index 83bad3f..2bb044a 100644
--- a/skia/skia.xcodeproj/project.pbxproj
+++ b/skia/skia.xcodeproj/project.pbxproj
@@ -9,6 +9,7 @@
/* Begin PBXBuildFile section */
A70A3BAE0ED7385F00C31871 /* bitmap_platform_device_mac.cc in Sources */ = {isa = PBXBuildFile; fileRef = A70A3BA80ED7385F00C31871 /* bitmap_platform_device_mac.cc */; };
A74368B90EE61BBF003562CC /* convolver.cc in Sources */ = {isa = PBXBuildFile; fileRef = A74368B70EE61BBF003562CC /* convolver.cc */; };
+ A7B44ED10F181AA90077C3F1 /* google_logging.cc in Sources */ = {isa = PBXBuildFile; fileRef = A7B44ED00F181AA90077C3F1 /* google_logging.cc */; };
A74368BA0EE61BBF003562CC /* image_operations.cc in Sources */ = {isa = PBXBuildFile; fileRef = A74368B80EE61BBF003562CC /* image_operations.cc */; };
A70A3BAF0ED7385F00C31871 /* platform_canvas_mac.cc in Sources */ = {isa = PBXBuildFile; fileRef = A70A3BAA0ED7385F00C31871 /* platform_canvas_mac.cc */; };
A70A3BB00ED7385F00C31871 /* platform_device_mac.cc in Sources */ = {isa = PBXBuildFile; fileRef = A70A3BAC0ED7385F00C31871 /* platform_device_mac.cc */; };
@@ -140,6 +141,7 @@
32DBCF5E0370ADEE00C91783 /* skia_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = skia_Prefix.pch; sourceTree = "<group>"; };
7B4DF4490E5B5E5C004D7619 /* common.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = common.xcconfig; sourceTree = "<group>"; };
7B4DF44A0E5B5E5C004D7619 /* debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = debug.xcconfig; sourceTree = "<group>"; };
+ A7B44ED00F181AA90077C3F1 /* google_logging.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = google_logging.cc; path = ext/google_logging.cc; sourceTree = "<group>"; };
7B4DF44B0E5B5E5C004D7619 /* executable.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = executable.xcconfig; sourceTree = "<group>"; };
7B4DF44C0E5B5E5C004D7619 /* release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = release.xcconfig; sourceTree = "<group>"; };
7B4DF44D0E5B5E5C004D7619 /* staticlib.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = staticlib.xcconfig; sourceTree = "<group>"; };
@@ -515,6 +517,7 @@
A74368B70EE61BBF003562CC /* convolver.cc */,
A70A3BA80ED7385F00C31871 /* bitmap_platform_device_mac.cc */,
A70A3BA90ED7385F00C31871 /* bitmap_platform_device_mac.h */,
+ A7B44ED00F181AA90077C3F1 /* google_logging.cc */,
A74368B80EE61BBF003562CC /* image_operations.cc */,
A70A3BAA0ED7385F00C31871 /* platform_canvas_mac.cc */,
A70A3BAB0ED7385F00C31871 /* platform_canvas_mac.h */,
@@ -962,6 +965,7 @@
files = (
A70A3BAE0ED7385F00C31871 /* bitmap_platform_device_mac.cc in Sources */,
A74368B90EE61BBF003562CC /* convolver.cc in Sources */,
+ A7B44ED10F181AA90077C3F1 /* google_logging.cc in Sources */,
A74368BA0EE61BBF003562CC /* image_operations.cc in Sources */,
A70A3BAF0ED7385F00C31871 /* platform_canvas_mac.cc in Sources */,
A70A3BB00ED7385F00C31871 /* platform_device_mac.cc in Sources */,