Skip to content

Commit

Permalink
Drop obsolete SK_CRASH and SK_DEBUGBREAK macros
Browse files Browse the repository at this point in the history
The SK_CRASH and SK_DEBUGBREAK macros are no longer used by Skia, so
there's no point in continuing to define them in SkUserConfig.h.

There were a couple of references to SK_CRASH in //src/skia/ext; I've
replaced them with equivalent CHECKs.

Some other changes:

* Refreshes skia/config/SkUserConfig.h from third_party/skia
* Drops the now always-false |fatal| parameter in SkDebugf_FileLine
* Consolidates customizations after the "Chrome-specific" line

The changes pulled from third_party/skia's SkUserConfig.h mostly are
comments and formatting, and should have no effect.

Similar to https://pdfium-review.googlesource.com/c/pdfium/+/54650, but
for Chromium instead of PDFium.

The PDFium copy of SkUserConfig.h tries to minimize lint errors, while
the Chromium copy tries to preserve the original formatting, so unlike
the PDFium change, I haven't tried to fix lint errors.

Change-Id: Ieb66af9e2f30a36a19184451966f9a85f2a10997
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1618148
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: K Moon <kmoon@chromium.org>
Cr-Commit-Position: refs/heads/master@{#661372}
  • Loading branch information
kmoon-work authored and Commit Bot committed May 20, 2019
1 parent 3762158 commit e025dce
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 41 deletions.
122 changes: 89 additions & 33 deletions skia/config/SkUserConfig.h
Original file line number Diff line number Diff line change
@@ -1,27 +1,20 @@

/*
* Copyright (C) 2006 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* Copyright 2006 The Android Open Source Project
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/


#ifndef SKIA_CONFIG_SKUSERCONFIG_H_
#define SKIA_CONFIG_SKUSERCONFIG_H_

/* SkTypes.h, the root of the public header files, does the following trick:
#include <SkPreConfig.h>
#include <SkUserConfig.h>
#include <SkPostConfig.h>
#include "include/config/SkUserConfig.h"
#include "include/core/SkPostConfig.h"
#include "include/core/SkPreConfig.h"
SkPreConfig.h runs first, and it is responsible for initializing certain
skia defines.
Expand All @@ -36,7 +29,7 @@
Below are optional defines that add, subtract, or change default behavior
in Skia. Your port can locally edit this file to enable/disable flags as
you choose, or these can be declared on your command line (i.e. -Dfoo).
you choose, or these can be delared on your command line (i.e. -Dfoo).
By default, this include file will always default to having all of the flags
commented out, so including it will have no effect.
Expand All @@ -56,6 +49,81 @@
//#define SK_DEBUG
//#define SK_RELEASE

/* Skia has certain debug-only code that is extremely intensive even for debug
builds. This code is useful for diagnosing specific issues, but is not
generally applicable, therefore it must be explicitly enabled to avoid
the performance impact. By default these flags are undefined, but can be
enabled by uncommenting them below.
*/
//#define SK_DEBUG_GLYPH_CACHE
//#define SK_DEBUG_PATH

/* preconfig will have attempted to determine the endianness of the system,
but you can change these mutually exclusive flags here.
*/
//#define SK_CPU_BENDIAN
//#define SK_CPU_LENDIAN

/* Most compilers use the same bit endianness for bit flags in a byte as the
system byte endianness, and this is the default. If for some reason this
needs to be overridden, specify which of the mutually exclusive flags to
use. For example, some atom processors in certain configurations have big
endian byte order but little endian bit orders.
*/
//#define SK_UINT8_BITFIELD_BENDIAN
//#define SK_UINT8_BITFIELD_LENDIAN


/* To write debug messages to a console, skia will call SkDebugf(...) following
printf conventions (e.g. const char* format, ...). If you want to redirect
this to something other than printf, define yours here
*/
//#define SkDebugf(...) MyFunction(__VA_ARGS__)

/*
* To specify a different default font cache limit, define this. If this is
* undefined, skia will use a built-in value.
*/
//#define SK_DEFAULT_FONT_CACHE_LIMIT (1024 * 1024)

/*
* To specify the default size of the image cache, undefine this and set it to
* the desired value (in bytes). SkGraphics.h as a runtime API to set this
* value as well. If this is undefined, a built-in value will be used.
*/
//#define SK_DEFAULT_IMAGE_CACHE_LIMIT (1024 * 1024)

/* Define this to set the upper limit for text to support LCD. Values that
are very large increase the cost in the font cache and draw slower, without
improving readability. If this is undefined, Skia will use its default
value (e.g. 48)
*/
//#define SK_MAX_SIZE_FOR_LCDTEXT 48

/* Change the kN32_SkColorType ordering to BGRA to work in X windows.
*/
//#define SK_R32_SHIFT 16


/* Determines whether to build code that supports the GPU backend. Some classes
that are not GPU-specific, such as SkShader subclasses, have optional code
that is used allows them to interact with the GPU backend. If you'd like to
omit this code set SK_SUPPORT_GPU to 0. This also allows you to omit the gpu
directories from your include search path when you're not building the GPU
backend. Defaults to 1 (build the GPU code).
*/
//#define SK_SUPPORT_GPU 1

/* Skia makes use of histogram logging macros to trace the frequency of
* events. By default, Skia provides no-op versions of these macros.
* Skia consumers can provide their own definitions of these macros to
* integrate with their histogram collection backend.
*/
//#define SK_HISTOGRAM_BOOLEAN(name, value)
//#define SK_HISTOGRAM_ENUMERATION(name, value, boundary_value)

// ===== Begin Chrome-specific definitions =====

#ifdef DCHECK_ALWAYS_ON
#undef SK_RELEASE
#define SK_DEBUG
Expand All @@ -70,8 +138,6 @@
// converted to type3 when producing PDFs, and reduces build size.
#define SK_PDF_DO_NOT_SUPPORT_TYPE_1_FONTS

// ===== Begin Chrome-specific definitions =====

#ifdef SK_DEBUG
#define SK_REF_CNT_MIXIN_INCLUDE "skia/config/sk_ref_cnt_ext_debug.h"
#else
Expand All @@ -82,16 +148,11 @@
#undef SK_MSCALAR_IS_DOUBLE

// Log the file and line number for assertions.
#define SkDebugf(...) SkDebugf_FileLine(__FILE__, __LINE__, false, __VA_ARGS__)
SK_API void SkDebugf_FileLine(const char* file, int line, bool fatal,
const char* format, ...);

// Marking the debug print as "fatal" will cause a debug break, so we don't need
// a separate crash call here.
#define SK_DEBUGBREAK(cond) do { if (!(cond)) { \
SkDebugf_FileLine(__FILE__, __LINE__, true, \
"%s:%d: failed assertion \"%s\"\n", \
__FILE__, __LINE__, #cond); } } while (false)
#define SkDebugf(...) SkDebugf_FileLine(__FILE__, __LINE__, __VA_ARGS__)
SK_API void SkDebugf_FileLine(const char* file,
int line,
const char* format,
...);

#if !defined(ANDROID) // On Android, we use the skia default settings.
#define SK_A32_SHIFT 24
Expand Down Expand Up @@ -125,11 +186,6 @@ SK_API void SkDebugf_FileLine(const char* file, int line, bool fatal,

#endif

// The default crash macro writes to badbeef which can cause some strange
// problems. Instead, pipe this through to the logging function as a fatal
// assertion.
#define SK_CRASH() SkDebugf_FileLine(__FILE__, __LINE__, true, "SK_CRASH")

// These flags are no longer defined in Skia, but we have them (temporarily)
// until we update our call-sites (typically these are for API changes).
//
Expand Down
7 changes: 3 additions & 4 deletions skia/ext/google_logging.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,11 @@
#include "base/strings/stringprintf.h"
#include "third_party/skia/include/core/SkTypes.h"

void SkDebugf_FileLine(const char* file, int line, bool fatal,
const char* format, ...) {
void SkDebugf_FileLine(const char* file, int line, const char* format, ...) {
#if DCHECK_IS_ON()
int severity = fatal ? logging::LOG_FATAL : logging::LOG_ERROR;
int severity = logging::LOG_ERROR;
#else
int severity = fatal ? logging::LOG_FATAL : logging::LOG_INFO;
int severity = logging::LOG_INFO;
#endif
if (severity < logging::GetMinLogLevel())
return;
Expand Down
3 changes: 1 addition & 2 deletions skia/ext/platform_canvas.cc
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,7 @@ std::unique_ptr<SkCanvas> CreatePlatformCanvasWithPixels(
bitmap.setPixels(data);
} else {
if (!bitmap.tryAllocPixels()) {
if (CRASH_ON_FAILURE == failureType)
SK_CRASH();
CHECK(failureType != CRASH_ON_FAILURE);
return nullptr;
}

Expand Down
3 changes: 1 addition & 2 deletions skia/ext/raster_handle_allocator_win.cc
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,7 @@ std::unique_ptr<SkCanvas> CreatePlatformCanvasWithSharedSection(
}
}

if (failure_type == CRASH_ON_FAILURE)
SK_CRASH();
CHECK(failure_type != CRASH_ON_FAILURE);
return nullptr;
}

Expand Down

0 comments on commit e025dce

Please sign in to comment.