123456789101112131415161718192021222324 |
- /*
- * Copyright 2017 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #ifndef SkVptr_DEFINED
- #define SkVptr_DEFINED
- #include <string.h>
- #include <type_traits>
- // Experimentally, see if we can get at the vptr of objects with one.
- template <typename T>
- static inline void* SkVptr(const T& object) {
- static_assert(std::has_virtual_destructor<T>::value, "");
- void* vptr;
- memcpy(&vptr, (const void*)&object, sizeof(vptr));
- return vptr;
- }
- #endif//SkVptr_DEFINED
|