| Index: skia/ext/platform_device.cc
|
| ===================================================================
|
| --- skia/ext/platform_device.cc (revision 96545)
|
| +++ skia/ext/platform_device.cc (working copy)
|
| @@ -9,12 +9,32 @@
|
| 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) {
|
|
|