diff options
Diffstat (limited to 'Source/Asura.Engine/scripting/portable.inl')
-rw-r--r-- | Source/Asura.Engine/scripting/portable.inl | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Source/Asura.Engine/scripting/portable.inl b/Source/Asura.Engine/scripting/portable.inl new file mode 100644 index 0000000..a27b2e8 --- /dev/null +++ b/Source/Asura.Engine/scripting/portable.inl @@ -0,0 +1,30 @@ + +template<typename T> +Portable<T>::Portable() + : mRefCount(1) + , mSafer(false) +{ +} + +template<typename T> +Portable<T>::~Portable() +{ + ASSERT(mSafer); +} + +template<typename T> +void Portable<T>::Retain() +{ + ++mRefCount; +} + +template<typename T> +void Portable<T>::Release() +{ + if (--mRefCount <= 0) + { + mSafer = true; + delete this; + } +} + |