aboutsummaryrefslogtreecommitdiff
path: root/src/agent
diff options
context:
space:
mode:
authorSimon Lin <simonlin@google.com>2021-08-13 06:41:12 +0800
committerGitHub <noreply@github.com>2021-08-12 15:41:12 -0700
commitbbb40c820930b80731576ddb6eae83a67272f2e2 (patch)
treee5e92b1cba655f9f223bcbd5b6b5fe204b42b3b1 /src/agent
parentf84ef41247ae2649289b3f05e02a4bb7aa8a9562 (diff)
downloadot-br-posix-bbb40c820930b80731576ddb6eae83a67272f2e2.tar.gz
[agent] fix initialization issue for openthread#6886 (#954)
Diffstat (limited to 'src/agent')
-rw-r--r--src/agent/main.cpp3
-rw-r--r--src/agent/ncp_openthread.cpp6
2 files changed, 6 insertions, 3 deletions
diff --git a/src/agent/main.cpp b/src/agent/main.cpp
index a429a5b2..32c27e51 100644
--- a/src/agent/main.cpp
+++ b/src/agent/main.cpp
@@ -309,9 +309,10 @@ exit:
void otPlatReset(otInstance *aInstance)
{
+ OT_UNUSED_VARIABLE(aInstance);
+
gPlatResetReason = OT_PLAT_RESET_REASON_SOFTWARE;
- otInstanceFinalize(aInstance);
otSysDeinit();
longjmp(sResetJump, 1);
diff --git a/src/agent/ncp_openthread.cpp b/src/agent/ncp_openthread.cpp
index 26c7f8d5..36be79de 100644
--- a/src/agent/ncp_openthread.cpp
+++ b/src/agent/ncp_openthread.cpp
@@ -80,7 +80,6 @@ ControllerOpenThread::ControllerOpenThread(const char * aInt
ControllerOpenThread::~ControllerOpenThread(void)
{
- otInstanceFinalize(mInstance);
otSysDeinit();
}
@@ -116,6 +115,8 @@ otbrError ControllerOpenThread::Init(void)
VerifyOrExit(otLoggingSetLevel(level) == OT_ERROR_NONE, error = OTBR_ERROR_OPENTHREAD);
mInstance = otSysInit(&mConfig);
+ assert(mInstance != nullptr);
+
#if OTBR_ENABLE_LEGACY
otLegacyInit();
#endif
@@ -213,8 +214,9 @@ void ControllerOpenThread::Reset(void)
{
gPlatResetReason = OT_PLAT_RESET_REASON_SOFTWARE;
- otInstanceFinalize(mInstance);
otSysDeinit();
+ mInstance = nullptr;
+
Init();
for (auto &handler : mResetHandlers)
{