aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2015-07-29 13:14:05 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-07-29 13:14:05 -0700
commite88b1fb7a5fc25e6c6c194b7191678c0fdba5415 (patch)
treed7e3ff081de343dcc4392347540abe962fa20a0c /src/core
parent3ae4701fe8a55880da4d75510f2eb1b57729196b (diff)
Move non-trivial constructors out-of-line.
There is more than one way to skin this SkPathPriv.h cat. These constructors are large enough that they probably shouldn't have been inlined like this anyway. BUG=skia:4126 Review URL: https://codereview.chromium.org/1253963004
Diffstat (limited to 'src/core')
-rw-r--r--src/core/SkRecords.cpp32
-rw-r--r--src/core/SkRecords.h22
2 files changed, 35 insertions, 19 deletions
diff --git a/src/core/SkRecords.cpp b/src/core/SkRecords.cpp
new file mode 100644
index 0000000000..d0a3ddbe10
--- /dev/null
+++ b/src/core/SkRecords.cpp
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkPathPriv.h"
+#include "SkRecords.h"
+
+namespace SkRecords {
+ ImmutableBitmap::ImmutableBitmap(const SkBitmap& bitmap) {
+ if (bitmap.isImmutable()) {
+ fBitmap = bitmap;
+ } else {
+ bitmap.copyTo(&fBitmap);
+ }
+ fBitmap.setImmutable();
+ }
+
+ PreCachedPath::PreCachedPath(const SkPath& path) : SkPath(path) {
+ this->updateBoundsCache();
+#if 0 // Disabled to see if we ever really race on this. It costs time, chromium:496982.
+ SkPathPriv::FirstDirection junk;
+ (void)SkPathPriv::CheapComputeFirstDirection(*this, &junk);
+#endif
+ }
+
+ TypedMatrix::TypedMatrix(const SkMatrix& matrix) : SkMatrix(matrix) {
+ (void)this->getType();
+ }
+}
diff --git a/src/core/SkRecords.h b/src/core/SkRecords.h
index 9ab04c91e4..eefb83d82a 100644
--- a/src/core/SkRecords.h
+++ b/src/core/SkRecords.h
@@ -11,7 +11,6 @@
#include "SkCanvas.h"
#include "SkDrawable.h"
#include "SkMatrix.h"
-#include "SkPathPriv.h"
#include "SkPicture.h"
#include "SkRSXform.h"
#include "SkTextBlob.h"
@@ -205,14 +204,7 @@ private:
class ImmutableBitmap : SkNoncopyable {
public:
ImmutableBitmap() {}
- explicit ImmutableBitmap(const SkBitmap& bitmap) {
- if (bitmap.isImmutable()) {
- fBitmap = bitmap;
- } else {
- bitmap.copyTo(&fBitmap);
- }
- fBitmap.setImmutable();
- }
+ explicit ImmutableBitmap(const SkBitmap& bitmap);
int width() const { return fBitmap.width(); }
int height() const { return fBitmap.height(); }
@@ -228,22 +220,14 @@ private:
// Recording is a convenient time to cache these, or we can delay it to between record and playback.
struct PreCachedPath : public SkPath {
PreCachedPath() {}
- explicit PreCachedPath(const SkPath& path) : SkPath(path) {
- this->updateBoundsCache();
-#if 0 // Disabled to see if we ever really race on this. It costs time, chromium:496982.
- SkPathPriv::FirstDirection junk;
- (void)SkPathPriv::CheapComputeFirstDirection(*this, &junk);
-#endif
- }
+ explicit PreCachedPath(const SkPath& path);
};
// Like SkPath::getBounds(), SkMatrix::getType() isn't thread safe unless we precache it.
// This may not cover all SkMatrices used by the picture (e.g. some could be hiding in a shader).
struct TypedMatrix : public SkMatrix {
TypedMatrix() {}
- explicit TypedMatrix(const SkMatrix& matrix) : SkMatrix(matrix) {
- (void)this->getType();
- }
+ explicit TypedMatrix(const SkMatrix& matrix);
};
RECORD0(NoOp);