diff --git a/apps/shared/expiring_pointer.h b/apps/shared/expiring_pointer.h index 85642ef02..699e47939 100644 --- a/apps/shared/expiring_pointer.h +++ b/apps/shared/expiring_pointer.h @@ -7,12 +7,21 @@ namespace Shared { template class ExpiringPointer { + template + friend class ExpiringPointer; public: ExpiringPointer(T * rawPointer, bool reinitGlobal = true) : m_rawPointer(rawPointer) { #if DEBUG s_global = rawPointer; #endif } + template + ExpiringPointer(ExpiringPointer p) : m_rawPointer(static_cast(p.m_rawPointer)) { +#if DEBUG + s_global = m_rawPointer; +#endif + } + bool isNull() { return m_rawPointer == nullptr; } T *operator->() { #if DEBUG assert(m_rawPointer != nullptr && m_rawPointer == s_global);