1 /* 2 * Copyright 2018 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SkUniqueCFRef_DEFINED 9 #define SkUniqueCFRef_DEFINED 10 11 #include "SkTypes.h" // Keep this before any #ifdef ... 12 #if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) 13 14 #include "SkTemplates.h" 15 #include "SkTLogic.h" 16 17 #include <CoreFoundation/CoreFoundation.h> 18 #include <memory> 19 20 template <typename CFRef> using SkUniqueCFRef = 21 std::unique_ptr<skstd::remove_pointer_t<CFRef>, 22 SkFunctionWrapper<void, skstd::remove_pointer_t<CFTypeRef>, CFRelease>>; 23 24 #endif 25 #endif 26