Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3341)

Unified Diff: skia/ext/platform_device.cc

Issue 7633040: CL removing inheritance of SkDevice from PlatformDevice. Flavours of PlatformDevice classes now ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Add mac changes. Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: skia/ext/platform_device.cc
===================================================================
--- skia/ext/platform_device.cc (revision 97282)
+++ skia/ext/platform_device.cc (working copy)
@@ -9,12 +9,33 @@
namespace skia {
namespace {
+
const char* kDevicePlatformBehaviour = "CrDevicePlatformBehaviour";
+
+void* PlatformDevicePtrProc(void* ptr, bool doRef) {
+ SkASSERT(ptr);
+ PlatformDevice* platform_device = reinterpret_cast<PlatformDevice*>(ptr);
+
+ if (!doRef) {
+ delete platform_device;
+ return NULL;
+ }
+
+ return ptr;
}
-void SetPlatformDevice(SkDevice* device, PlatformDevice* platform_behaviour) {
+}
+
+void SetPlatformDevice(SkDevice* device, PlatformDevice* platform_behaviour,
+ bool transfer_ownership) {
SkMetaData& meta_data = device->getMetaData();
- meta_data.setPtr(kDevicePlatformBehaviour, platform_behaviour);
+
+ if (transfer_ownership) {
+ meta_data.setPtr(kDevicePlatformBehaviour, platform_behaviour,
+ PlatformDevicePtrProc);
+ } else {
+ meta_data.setPtr(kDevicePlatformBehaviour, platform_behaviour);
+ }
}
PlatformDevice* GetPlatformDevice(SkDevice* device) {

Powered by Google App Engine
This is Rietveld 408576698