diff --git a/src/core/thread/topology.cpp b/src/core/thread/topology.cpp index 3c94c34d6..da00b2c9f 100644 --- a/src/core/thread/topology.cpp +++ b/src/core/thread/topology.cpp @@ -255,13 +255,13 @@ void Child::AddressIterator::Update(void) { const Ip6::Address *address; + if ((mIndex == 0) && (mChild.GetMeshLocalIp6Address(mMeshLocalAddress) != OT_ERROR_NONE)) + { + mIndex++; + } + while (true) { - if ((mIndex == 0) && (mChild.GetMeshLocalIp6Address(mMeshLocalAddress) != OT_ERROR_NONE)) - { - mIndex++; - } - address = GetAddress(); VerifyOrExit((address != nullptr) && !address->IsUnspecified(), mIndex = kMaxIndex);