Index: src/gpu/SkGrPixelRef.cpp |
diff --git a/src/gpu/SkGrPixelRef.cpp b/src/gpu/SkGrPixelRef.cpp |
index dc5d7558f0d7a3e5c0294ec59f08f1622ef0ea16..012942667c72b8c134ef8333b2deb708cd11c8ee 100644 |
--- a/src/gpu/SkGrPixelRef.cpp |
+++ b/src/gpu/SkGrPixelRef.cpp |
@@ -117,6 +117,23 @@ SkGrPixelRef::SkGrPixelRef(GrSurface* surface, bool transferCacheLock) { |
SkSafeRef(surface); |
} |
+SkGrPixelRef::SkGrPixelRef(const SkImageInfo&, GrSurface* surface, bool transferCacheLock) { |
+ // TODO: figure out if this is responsible for Chrome canvas errors |
+#if 0 |
+ // The GrTexture has a ref to the GrRenderTarget but not vice versa. |
+ // If the GrTexture exists take a ref to that (rather than the render |
+ // target) |
+ fSurface = surface->asTexture(); |
+#else |
+ fSurface = NULL; |
+#endif |
+ if (NULL == fSurface) { |
+ fSurface = surface; |
+ } |
+ fUnlock = transferCacheLock; |
+ SkSafeRef(surface); |
+} |
+ |
SkGrPixelRef::~SkGrPixelRef() { |
if (fUnlock) { |
GrContext* context = fSurface->getContext(); |