diff --git a/src/core/api/instance_api.cpp b/src/core/api/instance_api.cpp index 11b0deaea..85baf4593 100644 --- a/src/core/api/instance_api.cpp +++ b/src/core/api/instance_api.cpp @@ -76,12 +76,8 @@ bool otInstanceIsInitialized(otInstance *aInstance) void otInstanceFinalize(otInstance *aInstance) { -#if OPENTHREAD_MTD || OPENTHREAD_FTD Instance &instance = *static_cast(aInstance); instance.Finalize(); -#else - OT_UNUSED_VARIABLE(aInstance); -#endif // OPENTHREAD_MTD || OPENTHREAD_FTD } void otInstanceReset(otInstance *aInstance) diff --git a/src/core/common/instance.cpp b/src/core/common/instance.cpp index 26257e9cb..07ef73694 100644 --- a/src/core/common/instance.cpp +++ b/src/core/common/instance.cpp @@ -168,21 +168,23 @@ void Instance::AfterInit(void) #endif // OPENTHREAD_MTD || OPENTHREAD_FTD } -#if OPENTHREAD_MTD || OPENTHREAD_FTD void Instance::Finalize(void) { VerifyOrExit(mIsInitialized == true); mIsInitialized = false; +#if OPENTHREAD_MTD || OPENTHREAD_FTD IgnoreReturnValue(otThreadSetEnabled(this, false)); IgnoreReturnValue(otIp6SetEnabled(this, false)); IgnoreReturnValue(otLinkSetEnabled(this, false)); +#endif exit: return; } +#if OPENTHREAD_MTD || OPENTHREAD_FTD void Instance::FactoryReset(void) { GetSettings().Wipe(); diff --git a/src/core/common/instance.hpp b/src/core/common/instance.hpp index 250396598..fff697752 100644 --- a/src/core/common/instance.hpp +++ b/src/core/common/instance.hpp @@ -211,7 +211,6 @@ public: } #endif -#if OPENTHREAD_MTD || OPENTHREAD_FTD /** * This method finalizes the OpenThread instance. * @@ -220,6 +219,7 @@ public: */ void Finalize(void); +#if OPENTHREAD_MTD || OPENTHREAD_FTD /** * This method deletes all the settings stored in non-volatile memory, and then triggers a platform reset. *