| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #include "BsScriptObject.h"
- #include "BsScriptObjectManager.h"
- #include "BsMonoManager.h"
- #include "BsCrashHandler.h"
- #include "BsMonoField.h"
- namespace BansheeEngine
- {
- ScriptObjectBase::ScriptObjectBase(MonoObject* instance)
- :mManagedInstance(instance)
- {
- ScriptObjectManager::instance().registerScriptObject(this);
- }
- ScriptObjectBase::~ScriptObjectBase()
- {
- if(mManagedInstance != nullptr)
- BS_EXCEPT(InvalidStateException, "Script object is being destroyed without its instance previously being released.");
- ScriptObjectManager::instance().unregisterScriptObject(this);
- }
- ScriptObjectBackup ScriptObjectBase::beginRefresh()
- {
- return ScriptObjectBackup();
- }
- void ScriptObjectBase::endRefresh(const ScriptObjectBackup& data)
- {
- }
- void ScriptObjectBase::_onManagedInstanceDeleted()
- {
- mManagedInstance = nullptr;
- bs_delete(this);
- }
- PersistentScriptObjectBase::PersistentScriptObjectBase(MonoObject* instance)
- :ScriptObjectBase(instance)
- {
- }
- PersistentScriptObjectBase::~PersistentScriptObjectBase()
- {
- }
- }
|