From d848ed12e865a52200202b0b46cdcf84c5e3f2f1 Mon Sep 17 00:00:00 2001 From: Jonathan Hui Date: Thu, 22 Sep 2016 15:14:23 -0700 Subject: [PATCH] Use static_cast instead of reinterpret_cast when possible. (#667) --- src/cli/cli_udp.cpp | 3 +- src/core/coap/coap_server.cpp | 4 +- src/core/mac/mac.cpp | 9 ++-- src/core/net/ip6_mpl.cpp | 3 +- src/core/net/netif.cpp | 3 +- src/core/openthread.cpp | 16 +++--- src/core/thread/address_resolver.cpp | 15 ++---- src/core/thread/mesh_forwarder.cpp | 26 ++++------ src/core/thread/mle.cpp | 17 +++---- src/core/thread/mle_router.cpp | 25 ++++----- src/core/thread/network_data.cpp | 24 ++++----- src/core/thread/network_data_leader.cpp | 67 ++++++++++++------------- src/core/thread/network_data_local.cpp | 14 +++--- src/core/thread/network_data_tlvs.hpp | 5 +- 14 files changed, 102 insertions(+), 129 deletions(-) diff --git a/src/cli/cli_udp.cpp b/src/cli/cli_udp.cpp index 59fcbc4c7..59cf46117 100644 --- a/src/cli/cli_udp.cpp +++ b/src/cli/cli_udp.cpp @@ -65,8 +65,7 @@ exit: void Udp::HandleUdpReceive(void *aContext, otMessage aMessage, const otMessageInfo *aMessageInfo) { - Udp *obj = reinterpret_cast(aContext); - obj->HandleUdpReceive(aMessage, aMessageInfo); + static_cast(aContext)->HandleUdpReceive(aMessage, aMessageInfo); } void Udp::HandleUdpReceive(otMessage aMessage, const otMessageInfo *aMessageInfo) diff --git a/src/core/coap/coap_server.cpp b/src/core/coap/coap_server.cpp index d2b4f6cf5..6947887ae 100644 --- a/src/core/coap/coap_server.cpp +++ b/src/core/coap/coap_server.cpp @@ -102,8 +102,8 @@ exit: void Server::HandleUdpReceive(void *aContext, otMessage aMessage, const otMessageInfo *aMessageInfo) { - Server *obj = reinterpret_cast(aContext); - obj->HandleUdpReceive(*static_cast(aMessage), *static_cast(aMessageInfo)); + static_cast(aContext)->HandleUdpReceive(*static_cast(aMessage), + *static_cast(aMessageInfo)); } void Server::HandleUdpReceive(Message &aMessage, const Ip6::MessageInfo &aMessageInfo) diff --git a/src/core/mac/mac.cpp b/src/core/mac/mac.cpp index 3b75cc572..d7a77e682 100644 --- a/src/core/mac/mac.cpp +++ b/src/core/mac/mac.cpp @@ -536,8 +536,7 @@ void Mac::SendBeacon(Frame &aFrame) void Mac::HandleBeginTransmit(void *aContext) { - Mac *obj = reinterpret_cast(aContext); - obj->HandleBeginTransmit(); + static_cast(aContext)->HandleBeginTransmit(); } void Mac::ProcessTransmitSecurity(Frame &aFrame) @@ -711,8 +710,7 @@ exit: void Mac::HandleMacTimer(void *aContext) { - Mac *obj = reinterpret_cast(aContext); - obj->HandleMacTimer(); + static_cast(aContext)->HandleMacTimer(); } void Mac::HandleMacTimer(void) @@ -785,8 +783,7 @@ exit: void Mac::HandleReceiveTimer(void *aContext) { - Mac *obj = reinterpret_cast(aContext); - obj->HandleReceiveTimer(); + static_cast(aContext)->HandleReceiveTimer(); } void Mac::HandleReceiveTimer(void) diff --git a/src/core/net/ip6_mpl.cpp b/src/core/net/ip6_mpl.cpp index 3f542cfc1..2c09b9a7f 100644 --- a/src/core/net/ip6_mpl.cpp +++ b/src/core/net/ip6_mpl.cpp @@ -95,8 +95,7 @@ exit: void Mpl::HandleTimer(void *aContext) { - Mpl *obj = reinterpret_cast(aContext); - obj->HandleTimer(); + static_cast(aContext)->HandleTimer(); } void Mpl::HandleTimer() diff --git a/src/core/net/netif.cpp b/src/core/net/netif.cpp index 79cc92315..ad46217b0 100644 --- a/src/core/net/netif.cpp +++ b/src/core/net/netif.cpp @@ -351,8 +351,7 @@ void Netif::SetStateChangedFlags(uint32_t aFlags) void Netif::HandleStateChangedTask(void *aContext) { - Netif *obj = reinterpret_cast(aContext); - obj->HandleStateChangedTask(); + static_cast(aContext)->HandleStateChangedTask(); } void Netif::HandleStateChangedTask(void) diff --git a/src/core/openthread.cpp b/src/core/openthread.cpp index cd73ebea0..9e9d1405b 100644 --- a/src/core/openthread.cpp +++ b/src/core/openthread.cpp @@ -1112,7 +1112,7 @@ bool otIsDiscoverInProgress(otInstance *) void HandleMleDiscover(otActiveScanResult *aResult, void *aContext) { - otInstance *aInstance = reinterpret_cast(aContext); + otInstance *aInstance = static_cast(aContext); (void)aInstance; sDiscoverCallback(aResult, sDiscoverCallbackContext); } @@ -1205,7 +1205,7 @@ int otWriteMessage(otMessage aMessage, uint16_t aOffset, const void *aBuf, uint1 ThreadError otOpenUdpSocket(otInstance *, otUdpSocket *aSocket, otUdpReceive aCallback, void *aCallbackContext) { ThreadError error = kThreadError_Busy; - Ip6::UdpSocket *socket = reinterpret_cast(aSocket); + Ip6::UdpSocket *socket = static_cast(aSocket); if (socket->mTransport == NULL) { @@ -1219,7 +1219,7 @@ ThreadError otOpenUdpSocket(otInstance *, otUdpSocket *aSocket, otUdpReceive aCa ThreadError otCloseUdpSocket(otUdpSocket *aSocket) { ThreadError error = kThreadError_InvalidState; - Ip6::UdpSocket *socket = reinterpret_cast(aSocket); + Ip6::UdpSocket *socket = static_cast(aSocket); if (socket->mTransport != NULL) { @@ -1236,15 +1236,15 @@ ThreadError otCloseUdpSocket(otUdpSocket *aSocket) ThreadError otBindUdpSocket(otUdpSocket *aSocket, otSockAddr *aSockName) { - Ip6::UdpSocket *socket = reinterpret_cast(aSocket); - return socket->Bind(*reinterpret_cast(aSockName)); + Ip6::UdpSocket *socket = static_cast(aSocket); + return socket->Bind(*static_cast(aSockName)); } ThreadError otSendUdp(otUdpSocket *aSocket, otMessage aMessage, const otMessageInfo *aMessageInfo) { - Ip6::UdpSocket *socket = reinterpret_cast(aSocket); - return socket->SendTo(*reinterpret_cast(aMessage), - *reinterpret_cast(aMessageInfo)); + Ip6::UdpSocket *socket = static_cast(aSocket); + return socket->SendTo(*static_cast(aMessage), + *static_cast(aMessageInfo)); } bool otIsIcmpEchoEnabled(otInstance *) diff --git a/src/core/thread/address_resolver.cpp b/src/core/thread/address_resolver.cpp index eecfa619d..64de9ff7f 100644 --- a/src/core/thread/address_resolver.cpp +++ b/src/core/thread/address_resolver.cpp @@ -227,8 +227,7 @@ void AddressResolver::HandleUdpReceive(void *aContext, otMessage aMessage, const void AddressResolver::HandleAddressNotification(void *aContext, Coap::Header &aHeader, Message &aMessage, const Ip6::MessageInfo &aMessageInfo) { - AddressResolver *obj = reinterpret_cast(aContext); - obj->HandleAddressNotification(aHeader, aMessage, aMessageInfo); + static_cast(aContext)->HandleAddressNotification(aHeader, aMessage, aMessageInfo); } void AddressResolver::HandleAddressNotification(Coap::Header &aHeader, Message &aMessage, @@ -429,8 +428,7 @@ exit: void AddressResolver::HandleAddressError(void *aContext, Coap::Header &aHeader, Message &aMessage, const Ip6::MessageInfo &aMessageInfo) { - AddressResolver *obj = reinterpret_cast(aContext); - obj->HandleAddressError(aHeader, aMessage, aMessageInfo); + static_cast(aContext)->HandleAddressError(aHeader, aMessage, aMessageInfo); } void AddressResolver::HandleAddressError(Coap::Header &aHeader, Message &aMessage, @@ -508,8 +506,7 @@ exit: void AddressResolver::HandleAddressQuery(void *aContext, Coap::Header &aHeader, Message &aMessage, const Ip6::MessageInfo &aMessageInfo) { - AddressResolver *obj = reinterpret_cast(aContext); - obj->HandleAddressQuery(aHeader, aMessage, aMessageInfo); + static_cast(aContext)->HandleAddressQuery(aHeader, aMessage, aMessageInfo); } void AddressResolver::HandleAddressQuery(Coap::Header &aHeader, Message &aMessage, @@ -622,8 +619,7 @@ exit: void AddressResolver::HandleTimer(void *aContext) { - AddressResolver *obj = reinterpret_cast(aContext); - obj->HandleTimer(); + static_cast(aContext)->HandleTimer(); } void AddressResolver::HandleTimer() @@ -675,8 +671,7 @@ void AddressResolver::HandleTimer() void AddressResolver::HandleDstUnreach(void *aContext, Message &aMessage, const Ip6::MessageInfo &aMessageInfo, const Ip6::IcmpHeader &aIcmpHeader) { - AddressResolver *obj = reinterpret_cast(aContext); - obj->HandleDstUnreach(aMessage, aMessageInfo, aIcmpHeader); + static_cast(aContext)->HandleDstUnreach(aMessage, aMessageInfo, aIcmpHeader); (void)aMessageInfo; } diff --git a/src/core/thread/mesh_forwarder.cpp b/src/core/thread/mesh_forwarder.cpp index 489af8b38..072ffa5cf 100644 --- a/src/core/thread/mesh_forwarder.cpp +++ b/src/core/thread/mesh_forwarder.cpp @@ -170,8 +170,7 @@ void MeshForwarder::HandleResolved(const Ip6::Address &aEid, ThreadError aError) void MeshForwarder::ScheduleTransmissionTask(void *aContext) { - MeshForwarder *obj = reinterpret_cast(aContext); - obj->ScheduleTransmissionTask(); + static_cast(aContext)->ScheduleTransmissionTask(); } void MeshForwarder::ScheduleTransmissionTask() @@ -242,7 +241,7 @@ ThreadError MeshForwarder::SendMessage(Message &aMessage) (neighbor->mMode & Mle::ModeTlv::kModeRxOnWhenIdle) == 0) { // destined for a sleepy child - aMessage.SetChildMask(mMle.GetChildIndex(*reinterpret_cast(neighbor))); + aMessage.SetChildMask(mMle.GetChildIndex(*static_cast(neighbor))); } else { @@ -259,7 +258,7 @@ ThreadError MeshForwarder::SendMessage(Message &aMessage) (neighbor->mMode & Mle::ModeTlv::kModeRxOnWhenIdle) == 0) { // destined for a sleepy child - aMessage.SetChildMask(mMle.GetChildIndex(*reinterpret_cast(neighbor))); + aMessage.SetChildMask(mMle.GetChildIndex(*static_cast(neighbor))); } else { @@ -613,8 +612,7 @@ uint32_t MeshForwarder::GetPollPeriod() void MeshForwarder::HandlePollTimer(void *aContext) { - MeshForwarder *obj = reinterpret_cast(aContext); - obj->HandlePollTimer(); + static_cast(aContext)->HandlePollTimer(); } void MeshForwarder::HandlePollTimer() @@ -678,8 +676,7 @@ ThreadError MeshForwarder::GetMacDestinationAddress(const Ip6::Address &aIp6Addr ThreadError MeshForwarder::HandleFrameRequest(void *aContext, Mac::Frame &aFrame) { - MeshForwarder *obj = reinterpret_cast(aContext); - return obj->HandleFrameRequest(aFrame); + return static_cast(aContext)->HandleFrameRequest(aFrame); } ThreadError MeshForwarder::HandleFrameRequest(Mac::Frame &aFrame) @@ -982,8 +979,7 @@ ThreadError MeshForwarder::SendFragment(Message &aMessage, Mac::Frame &aFrame) void MeshForwarder::HandleSentFrame(void *aContext, Mac::Frame &aFrame) { - MeshForwarder *obj = reinterpret_cast(aContext); - obj->HandleSentFrame(aFrame); + static_cast(aContext)->HandleSentFrame(aFrame); } void MeshForwarder::HandleSentFrame(Mac::Frame &aFrame) @@ -1101,8 +1097,7 @@ exit: void MeshForwarder::HandleReceivedFrame(void *aContext, Mac::Frame &aFrame, ThreadError aError) { - MeshForwarder *obj = reinterpret_cast(aContext); - obj->HandleReceivedFrame(aFrame, aError); + static_cast(aContext)->HandleReceivedFrame(aFrame, aError); } void MeshForwarder::HandleReceivedFrame(Mac::Frame &aFrame, ThreadError aError) @@ -1373,8 +1368,7 @@ exit: void MeshForwarder::HandleReassemblyTimer(void *aContext) { - MeshForwarder *obj = reinterpret_cast(aContext); - obj->HandleReassemblyTimer(); + static_cast(aContext)->HandleReassemblyTimer(); } void MeshForwarder::HandleReassemblyTimer() @@ -1468,8 +1462,8 @@ void MeshForwarder::HandleDataRequest(const Mac::Address &aMacSource, const Thre VerifyOrExit((neighbor = mMle.GetNeighbor(aMacSource)) != NULL, ;); neighbor->mLastHeard = Timer::GetNow(); - mMle.HandleMacDataRequest(*reinterpret_cast(neighbor)); - childIndex = mMle.GetChildIndex(*reinterpret_cast(neighbor)); + mMle.HandleMacDataRequest(*static_cast(neighbor)); + childIndex = mMle.GetChildIndex(*static_cast(neighbor)); for (Message *message = mSendQueue.GetHead(); message; message = message->GetNext()) { diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index d8228dd57..1b10b0624 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -927,8 +927,7 @@ exit: void Mle::HandleNetifStateChanged(uint32_t aFlags, void *aContext) { - Mle *obj = reinterpret_cast(aContext); - obj->HandleNetifStateChanged(aFlags); + static_cast(aContext)->HandleNetifStateChanged(aFlags); } void Mle::HandleNetifStateChanged(uint32_t aFlags) @@ -970,8 +969,7 @@ void Mle::HandleNetifStateChanged(uint32_t aFlags) void Mle::HandleParentRequestTimer(void *aContext) { - Mle *obj = reinterpret_cast(aContext); - obj->HandleParentRequestTimer(); + static_cast(aContext)->HandleParentRequestTimer(); } void Mle::HandleParentRequestTimer(void) @@ -1217,8 +1215,7 @@ exit: void Mle::HandleSendChildUpdateRequest(void *aContext) { - Mle *obj = reinterpret_cast(aContext); - obj->HandleSendChildUpdateRequest(); + static_cast(aContext)->HandleSendChildUpdateRequest(); } void Mle::HandleSendChildUpdateRequest(void) @@ -1365,8 +1362,8 @@ exit: void Mle::HandleUdpReceive(void *aContext, otMessage aMessage, const otMessageInfo *aMessageInfo) { - Mle *obj = reinterpret_cast(aContext); - obj->HandleUdpReceive(*static_cast(aMessage), *static_cast(aMessageInfo)); + static_cast(aContext)->HandleUdpReceive(*static_cast(aMessage), + *static_cast(aMessageInfo)); } void Mle::HandleUdpReceive(Message &aMessage, const Ip6::MessageInfo &aMessageInfo) @@ -1779,7 +1776,7 @@ ThreadError Mle::HandleParentResponse(const Message &aMessage, const Ip6::Messag uint32_t aKeySequence) { ThreadError error = kThreadError_None; - const ThreadMessageInfo *threadMessageInfo = reinterpret_cast(aMessageInfo.mLinkInfo); + const ThreadMessageInfo *threadMessageInfo = static_cast(aMessageInfo.mLinkInfo); ResponseTlv response; SourceAddressTlv sourceAddress; LeaderDataTlv leaderData; @@ -2227,7 +2224,7 @@ exit: ThreadError Mle::HandleDiscoveryResponse(const Message &aMessage, const Ip6::MessageInfo &aMessageInfo) { ThreadError error = kThreadError_None; - const ThreadMessageInfo *threadMessageInfo = reinterpret_cast(aMessageInfo.mLinkInfo); + const ThreadMessageInfo *threadMessageInfo = static_cast(aMessageInfo.mLinkInfo); Tlv tlv; MeshCoP::Tlv meshcopTlv; MeshCoP::DiscoveryResponseTlv discoveryResponse; diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index 4fb4c1fd5..108f21222 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -626,7 +626,7 @@ ThreadError MleRouter::HandleLinkRequest(const Message &aMessage, const Ip6::Mes if (neighbor->mState != Neighbor::kStateValid) { const ThreadMessageInfo *threadMessageInfo = - reinterpret_cast(aMessageInfo.mLinkInfo); + static_cast(aMessageInfo.mLinkInfo); memcpy(&neighbor->mMacAddr, &macAddr, sizeof(neighbor->mMacAddr)); neighbor->mLinkInfo.Clear(); @@ -665,7 +665,7 @@ ThreadError MleRouter::SendLinkAccept(const Ip6::MessageInfo &aMessageInfo, Neig const TlvRequestTlv &aTlvRequest, const ChallengeTlv &aChallenge) { ThreadError error = kThreadError_None; - const ThreadMessageInfo *threadMessageInfo = reinterpret_cast(aMessageInfo.mLinkInfo); + const ThreadMessageInfo *threadMessageInfo = static_cast(aMessageInfo.mLinkInfo); static const uint8_t routerTlvs[] = {Tlv::kLinkMargin}; Message *message; Header::Command command; @@ -771,7 +771,7 @@ ThreadError MleRouter::HandleLinkAccept(const Message &aMessage, const Ip6::Mess uint32_t aKeySequence, bool aRequest) { ThreadError error = kThreadError_None; - const ThreadMessageInfo *threadMessageInfo = reinterpret_cast(aMessageInfo.mLinkInfo); + const ThreadMessageInfo *threadMessageInfo = static_cast(aMessageInfo.mLinkInfo); Neighbor *neighbor = NULL; Mac::ExtAddress macAddr; VersionTlv version; @@ -1217,7 +1217,7 @@ uint8_t MleRouter::GetActiveRouterCount(void) const ThreadError MleRouter::HandleAdvertisement(const Message &aMessage, const Ip6::MessageInfo &aMessageInfo) { ThreadError error = kThreadError_None; - const ThreadMessageInfo *threadMessageInfo = reinterpret_cast(aMessageInfo.mLinkInfo); + const ThreadMessageInfo *threadMessageInfo = static_cast(aMessageInfo.mLinkInfo); Mac::ExtAddress macAddr; SourceAddressTlv sourceAddress; LeaderDataTlv leaderData; @@ -1558,7 +1558,7 @@ void MleRouter::UpdateRoutes(const RouteTlv &aRoute, uint8_t aRouterId) ThreadError MleRouter::HandleParentRequest(const Message &aMessage, const Ip6::MessageInfo &aMessageInfo) { ThreadError error = kThreadError_None; - const ThreadMessageInfo *threadMessageInfo = reinterpret_cast(aMessageInfo.mLinkInfo); + const ThreadMessageInfo *threadMessageInfo = static_cast(aMessageInfo.mLinkInfo); Mac::ExtAddress macAddr; VersionTlv version; ScanMaskTlv scanMask; @@ -1630,8 +1630,7 @@ exit: void MleRouter::HandleStateUpdateTimer(void *aContext) { - MleRouter *obj = reinterpret_cast(aContext); - obj->HandleStateUpdateTimer(); + static_cast(aContext)->HandleStateUpdateTimer(); } void MleRouter::HandleStateUpdateTimer(void) @@ -1831,7 +1830,7 @@ ThreadError MleRouter::HandleChildIdRequest(const Message &aMessage, const Ip6:: uint32_t aKeySequence) { ThreadError error = kThreadError_None; - const ThreadMessageInfo *threadMessageInfo = reinterpret_cast(aMessageInfo.mLinkInfo); + const ThreadMessageInfo *threadMessageInfo = static_cast(aMessageInfo.mLinkInfo); Mac::ExtAddress macAddr; ResponseTlv response; LinkFrameCounterTlv linkFrameCounter; @@ -2950,9 +2949,9 @@ exit: void MleRouter::HandleUdpReceive(void *aContext, otMessage aMessage, const otMessageInfo *aMessageInfo) { - MleRouter *obj = reinterpret_cast(aContext); + static_cast(aContext)->HandleUdpReceive(*static_cast(aMessage), + *static_cast(aMessageInfo)); (void)aMessageInfo; - obj->HandleUdpReceive(*static_cast(aMessage), *static_cast(aMessageInfo)); } void MleRouter::HandleUdpReceive(Message &aMessage, const Ip6::MessageInfo &aMessageInfo) @@ -3049,8 +3048,7 @@ exit: void MleRouter::HandleAddressSolicit(void *aContext, Coap::Header &aHeader, Message &aMessage, const Ip6::MessageInfo &aMessageInfo) { - MleRouter *obj = reinterpret_cast(aContext); - obj->HandleAddressSolicit(aHeader, aMessage, aMessageInfo); + static_cast(aContext)->HandleAddressSolicit(aHeader, aMessage, aMessageInfo); } void MleRouter::HandleAddressSolicit(Coap::Header &aHeader, Message &aMessage, const Ip6::MessageInfo &aMessageInfo) @@ -3212,8 +3210,7 @@ exit: void MleRouter::HandleAddressRelease(void *aContext, Coap::Header &aHeader, Message &aMessage, const Ip6::MessageInfo &aMessageInfo) { - MleRouter *obj = reinterpret_cast(aContext); - obj->HandleAddressRelease(aHeader, aMessage, aMessageInfo); + static_cast(aContext)->HandleAddressRelease(aHeader, aMessage, aMessageInfo); } void MleRouter::HandleAddressRelease(Coap::Header &aHeader, Message &aMessage, diff --git a/src/core/thread/network_data.cpp b/src/core/thread/network_data.cpp index dea3a55dc..fa834bd51 100644 --- a/src/core/thread/network_data.cpp +++ b/src/core/thread/network_data.cpp @@ -317,7 +317,7 @@ void NetworkData::RemoveTemporaryData(uint8_t *aData, uint8_t &aDataLength) void NetworkData::RemoveTemporaryData(uint8_t *aData, uint8_t &aDataLength, PrefixTlv &aPrefix) { - NetworkDataTlv *cur = reinterpret_cast(aPrefix.GetSubTlvs()); + NetworkDataTlv *cur = aPrefix.GetSubTlvs(); NetworkDataTlv *end; BorderRouterTlv *borderRouter; HasRouteTlv *hasRoute; @@ -331,7 +331,7 @@ void NetworkData::RemoveTemporaryData(uint8_t *aData, uint8_t &aDataLength, Pref while (1) { - end = reinterpret_cast(aPrefix.GetSubTlvs() + aPrefix.GetSubTlvsLength()); + end = aPrefix.GetNext(); if (cur >= end) { @@ -410,8 +410,8 @@ void NetworkData::RemoveTemporaryData(uint8_t *aData, uint8_t &aDataLength, Pref BorderRouterTlv *NetworkData::FindBorderRouter(PrefixTlv &aPrefix) { BorderRouterTlv *rval = NULL; - NetworkDataTlv *cur = reinterpret_cast(aPrefix.GetSubTlvs()); - NetworkDataTlv *end = reinterpret_cast(aPrefix.GetSubTlvs() + aPrefix.GetSubTlvsLength()); + NetworkDataTlv *cur = aPrefix.GetSubTlvs(); + NetworkDataTlv *end = aPrefix.GetNext(); while (cur < end) { @@ -430,8 +430,8 @@ exit: BorderRouterTlv *NetworkData::FindBorderRouter(PrefixTlv &aPrefix, bool aStable) { BorderRouterTlv *rval = NULL; - NetworkDataTlv *cur = reinterpret_cast(aPrefix.GetSubTlvs()); - NetworkDataTlv *end = reinterpret_cast(aPrefix.GetSubTlvs() + aPrefix.GetSubTlvsLength()); + NetworkDataTlv *cur = aPrefix.GetSubTlvs(); + NetworkDataTlv *end = aPrefix.GetNext(); while (cur < end) { @@ -451,8 +451,8 @@ exit: HasRouteTlv *NetworkData::FindHasRoute(PrefixTlv &aPrefix) { HasRouteTlv *rval = NULL; - NetworkDataTlv *cur = reinterpret_cast(aPrefix.GetSubTlvs()); - NetworkDataTlv *end = reinterpret_cast(aPrefix.GetSubTlvs() + aPrefix.GetSubTlvsLength()); + NetworkDataTlv *cur = aPrefix.GetSubTlvs(); + NetworkDataTlv *end = aPrefix.GetNext(); while (cur < end) { @@ -471,8 +471,8 @@ exit: HasRouteTlv *NetworkData::FindHasRoute(PrefixTlv &aPrefix, bool aStable) { HasRouteTlv *rval = NULL; - NetworkDataTlv *cur = reinterpret_cast(aPrefix.GetSubTlvs()); - NetworkDataTlv *end = reinterpret_cast(aPrefix.GetSubTlvs() + aPrefix.GetSubTlvsLength()); + NetworkDataTlv *cur = aPrefix.GetSubTlvs(); + NetworkDataTlv *end = aPrefix.GetNext(); while (cur < end) { @@ -492,8 +492,8 @@ exit: ContextTlv *NetworkData::FindContext(PrefixTlv &aPrefix) { ContextTlv *rval = NULL; - NetworkDataTlv *cur = reinterpret_cast(aPrefix.GetSubTlvs()); - NetworkDataTlv *end = reinterpret_cast(aPrefix.GetSubTlvs() + aPrefix.GetSubTlvsLength()); + NetworkDataTlv *cur = aPrefix.GetSubTlvs(); + NetworkDataTlv *end = aPrefix.GetNext(); while (cur < end) { diff --git a/src/core/thread/network_data_leader.cpp b/src/core/thread/network_data_leader.cpp index dd09128f4..e26610301 100644 --- a/src/core/thread/network_data_leader.cpp +++ b/src/core/thread/network_data_leader.cpp @@ -142,7 +142,7 @@ ThreadError Leader::GetContext(const Ip6::Address &aAddress, Lowpan::Context &aC continue; } - prefix = reinterpret_cast(cur); + prefix = static_cast(cur); if (PrefixMatch(prefix->GetPrefix(), aAddress.mFields.m8, prefix->GetPrefixLength()) < 0) { @@ -190,7 +190,7 @@ ThreadError Leader::GetContext(uint8_t aContextId, Lowpan::Context &aContext) continue; } - prefix = reinterpret_cast(cur); + prefix = static_cast(cur); contextTlv = FindContext(*prefix); if (contextTlv == NULL) @@ -232,7 +232,7 @@ bool Leader::IsOnMesh(const Ip6::Address &aAddress) continue; } - prefix = reinterpret_cast(cur); + prefix = static_cast(cur); if (PrefixMatch(prefix->GetPrefix(), aAddress.mFields.m8, prefix->GetPrefixLength()) < 0) { @@ -266,7 +266,7 @@ ThreadError Leader::RouteLookup(const Ip6::Address &aSource, const Ip6::Address continue; } - prefix = reinterpret_cast(cur); + prefix = static_cast(cur); if (PrefixMatch(prefix->GetPrefix(), aSource.mFields.m8, prefix->GetPrefixLength()) >= 0) { @@ -313,7 +313,7 @@ ThreadError Leader::ExternalRouteLookup(uint8_t aDomainId, const Ip6::Address &a continue; } - prefix = reinterpret_cast(cur); + prefix = static_cast(cur); if (prefix->GetDomainId() != aDomainId) { @@ -325,16 +325,14 @@ ThreadError Leader::ExternalRouteLookup(uint8_t aDomainId, const Ip6::Address &a if (plen > rval_plen) { // select border router - for (subCur = reinterpret_cast(prefix->GetSubTlvs()); - subCur < reinterpret_cast(prefix->GetSubTlvs() + prefix->GetSubTlvsLength()); - subCur = subCur->GetNext()) + for (subCur = prefix->GetSubTlvs(); subCur < prefix->GetNext(); subCur = subCur->GetNext()) { if (subCur->GetType() != NetworkDataTlv::kTypeHasRoute) { continue; } - hasRoute = reinterpret_cast(subCur); + hasRoute = static_cast(subCur); for (uint8_t i = 0; i < hasRoute->GetNumEntries(); i++) { @@ -379,16 +377,14 @@ ThreadError Leader::DefaultRouteLookup(PrefixTlv &aPrefix, uint16_t *aRloc16) BorderRouterEntry *entry; BorderRouterEntry *route = NULL; - for (NetworkDataTlv *cur = reinterpret_cast(aPrefix.GetSubTlvs()); - cur < reinterpret_cast(aPrefix.GetSubTlvs() + aPrefix.GetSubTlvsLength()); - cur = cur->GetNext()) + for (NetworkDataTlv *cur = aPrefix.GetSubTlvs(); cur < aPrefix.GetNext(); cur = cur->GetNext()) { if (cur->GetType() != NetworkDataTlv::kTypeBorderRouter) { continue; } - borderRouter = reinterpret_cast(cur); + borderRouter = static_cast(cur); for (uint8_t i = 0; i < borderRouter->GetNumEntries(); i++) { @@ -529,8 +525,7 @@ exit: void Leader::HandleServerData(void *aContext, Coap::Header &aHeader, Message &aMessage, const Ip6::MessageInfo &aMessageInfo) { - Leader *obj = reinterpret_cast(aContext); - obj->HandleServerData(aHeader, aMessage, aMessageInfo); + static_cast(aContext)->HandleServerData(aHeader, aMessage, aMessageInfo); } void Leader::HandleServerData(Coap::Header &aHeader, Message &aMessage, @@ -602,9 +597,9 @@ void Leader::RlocLookup(uint16_t aRloc16, bool &aIn, bool &aStable, uint8_t *aTl { if (cur->GetType() == NetworkDataTlv::kTypePrefix) { - prefix = reinterpret_cast(cur); - subCur = reinterpret_cast(prefix->GetSubTlvs()); - subEnd = reinterpret_cast(prefix->GetSubTlvs() + prefix->GetSubTlvsLength()); + prefix = static_cast(cur); + subCur = prefix->GetSubTlvs(); + subEnd = prefix->GetNext(); while (subCur < subEnd) { @@ -686,7 +681,7 @@ bool Leader::IsStableUpdated(uint16_t aRloc16, uint8_t *aTlvs, uint8_t aTlvsLeng { if (cur->GetType() == NetworkDataTlv::kTypePrefix) { - prefix = reinterpret_cast(cur); + prefix = static_cast(cur); context = FindContext(*prefix); borderRouter = FindBorderRouter(*prefix); hasRoute = FindHasRoute(*prefix); @@ -776,7 +771,7 @@ ThreadError Leader::AddNetworkData(uint8_t *aTlvs, uint8_t aTlvsLength) switch (cur->GetType()) { case NetworkDataTlv::kTypePrefix: - AddPrefix(*reinterpret_cast(cur)); + AddPrefix(*static_cast(cur)); otDumpDebgNetData("add prefix done", mTlvs, mLength); break; @@ -795,19 +790,19 @@ ThreadError Leader::AddNetworkData(uint8_t *aTlvs, uint8_t aTlvsLength) ThreadError Leader::AddPrefix(PrefixTlv &aPrefix) { - NetworkDataTlv *cur = reinterpret_cast(aPrefix.GetSubTlvs()); - NetworkDataTlv *end = reinterpret_cast(aPrefix.GetSubTlvs() + aPrefix.GetSubTlvsLength()); + NetworkDataTlv *cur = aPrefix.GetSubTlvs(); + NetworkDataTlv *end = aPrefix.GetNext(); while (cur < end) { switch (cur->GetType()) { case NetworkDataTlv::kTypeHasRoute: - AddHasRoute(aPrefix, *reinterpret_cast(cur)); + AddHasRoute(aPrefix, *static_cast(cur)); break; case NetworkDataTlv::kTypeBorderRouter: - AddBorderRouter(aPrefix, *reinterpret_cast(cur)); + AddBorderRouter(aPrefix, *static_cast(cur)); break; default: @@ -841,7 +836,7 @@ ThreadError Leader::AddHasRoute(PrefixTlv &aPrefix, HasRouteTlv &aHasRoute) if ((dstHasRoute = FindHasRoute(*dstPrefix, aHasRoute.IsStable())) == NULL) { - dstHasRoute = reinterpret_cast(dstPrefix->GetNext()); + dstHasRoute = static_cast(dstPrefix->GetNext()); Insert(reinterpret_cast(dstHasRoute), sizeof(HasRouteTlv)); dstPrefix->SetLength(dstPrefix->GetLength() + sizeof(HasRouteTlv)); dstHasRoute->Init(); @@ -882,7 +877,7 @@ ThreadError Leader::AddBorderRouter(PrefixTlv &aPrefix, BorderRouterTlv &aBorder } else if ((contextId = AllocateContext()) >= 0) { - dstContext = reinterpret_cast(dstPrefix->GetNext()); + dstContext = static_cast(dstPrefix->GetNext()); Insert(reinterpret_cast(dstContext), sizeof(ContextTlv)); dstPrefix->SetLength(dstPrefix->GetLength() + sizeof(ContextTlv)); dstContext->Init(); @@ -897,7 +892,7 @@ ThreadError Leader::AddBorderRouter(PrefixTlv &aPrefix, BorderRouterTlv &aBorder if ((dstBorderRouter = FindBorderRouter(*dstPrefix, aBorderRouter.IsStable())) == NULL) { - dstBorderRouter = reinterpret_cast(dstPrefix->GetNext()); + dstBorderRouter = static_cast(dstPrefix->GetNext()); Insert(reinterpret_cast(dstBorderRouter), sizeof(BorderRouterTlv)); dstPrefix->SetLength(dstPrefix->GetLength() + sizeof(BorderRouterTlv)); dstBorderRouter->Init(); @@ -985,7 +980,7 @@ ThreadError Leader::RemoveRloc(uint16_t aRloc16) { case NetworkDataTlv::kTypePrefix: { - prefix = reinterpret_cast(cur); + prefix = static_cast(cur); RemoveRloc(*prefix, aRloc16); if (prefix->GetSubTlvsLength() == 0) @@ -1015,13 +1010,13 @@ ThreadError Leader::RemoveRloc(uint16_t aRloc16) ThreadError Leader::RemoveRloc(PrefixTlv &prefix, uint16_t aRloc16) { - NetworkDataTlv *cur = reinterpret_cast(prefix.GetSubTlvs()); + NetworkDataTlv *cur = prefix.GetSubTlvs(); NetworkDataTlv *end; ContextTlv *context; while (1) { - end = reinterpret_cast(prefix.GetSubTlvs() + prefix.GetSubTlvsLength()); + end = prefix.GetNext(); if (cur >= end) { @@ -1031,7 +1026,7 @@ ThreadError Leader::RemoveRloc(PrefixTlv &prefix, uint16_t aRloc16) switch (cur->GetType()) { case NetworkDataTlv::kTypeHasRoute: - RemoveRloc(prefix, *reinterpret_cast(cur), aRloc16); + RemoveRloc(prefix, *static_cast(cur), aRloc16); // remove has route tlv if empty if (cur->GetLength() == 0) @@ -1044,7 +1039,7 @@ ThreadError Leader::RemoveRloc(PrefixTlv &prefix, uint16_t aRloc16) break; case NetworkDataTlv::kTypeBorderRouter: - RemoveRloc(prefix, *reinterpret_cast(cur), aRloc16); + RemoveRloc(prefix, *static_cast(cur), aRloc16); // remove border router tlv if empty if (cur->GetLength() == 0) @@ -1156,7 +1151,7 @@ ThreadError Leader::RemoveContext(uint8_t aContextId) { case NetworkDataTlv::kTypePrefix: { - prefix = reinterpret_cast(cur); + prefix = static_cast(cur); RemoveContext(*prefix, aContextId); if (prefix->GetSubTlvsLength() == 0) @@ -1186,14 +1181,14 @@ ThreadError Leader::RemoveContext(uint8_t aContextId) ThreadError Leader::RemoveContext(PrefixTlv &aPrefix, uint8_t aContextId) { - NetworkDataTlv *cur = reinterpret_cast(aPrefix.GetSubTlvs()); + NetworkDataTlv *cur = aPrefix.GetSubTlvs(); NetworkDataTlv *end; ContextTlv *context; uint8_t length; while (1) { - end = reinterpret_cast(aPrefix.GetSubTlvs() + aPrefix.GetSubTlvsLength()); + end = aPrefix.GetNext(); if (cur >= end) { @@ -1210,7 +1205,7 @@ ThreadError Leader::RemoveContext(PrefixTlv &aPrefix, uint8_t aContextId) case NetworkDataTlv::kTypeContext: { // remove context tlv - context = reinterpret_cast(cur); + context = static_cast(cur); if (context->GetContextId() == aContextId) { diff --git a/src/core/thread/network_data_local.cpp b/src/core/thread/network_data_local.cpp index a78a640f6..dd4bb2786 100644 --- a/src/core/thread/network_data_local.cpp +++ b/src/core/thread/network_data_local.cpp @@ -62,7 +62,7 @@ ThreadError Local::AddOnMeshPrefix(const uint8_t *aPrefix, uint8_t aPrefixLength prefixTlv->Init(0, aPrefixLength, aPrefix); prefixTlv->SetSubTlvsLength(sizeof(BorderRouterTlv) + sizeof(BorderRouterEntry)); - brTlv = reinterpret_cast(prefixTlv->GetSubTlvs()); + brTlv = static_cast(prefixTlv->GetSubTlvs()); brTlv->Init(); brTlv->SetLength(brTlv->GetLength() + sizeof(BorderRouterEntry)); brTlv->GetEntry(0)->Init(); @@ -109,7 +109,7 @@ ThreadError Local::AddHasRoutePrefix(const uint8_t *aPrefix, uint8_t aPrefixLeng prefixTlv->Init(0, aPrefixLength, aPrefix); prefixTlv->SetSubTlvsLength(sizeof(HasRouteTlv) + sizeof(HasRouteEntry)); - hasRouteTlv = reinterpret_cast(prefixTlv->GetSubTlvs()); + hasRouteTlv = static_cast(prefixTlv->GetSubTlvs()); hasRouteTlv->Init(); hasRouteTlv->SetLength(hasRouteTlv->GetLength() + sizeof(HasRouteEntry)); hasRouteTlv->GetEntry(0)->Init(); @@ -151,7 +151,7 @@ ThreadError Local::UpdateRloc(void) switch (cur->GetType()) { case NetworkDataTlv::kTypePrefix: - UpdateRloc(*reinterpret_cast(cur)); + UpdateRloc(*static_cast(cur)); break; default: @@ -167,18 +167,16 @@ ThreadError Local::UpdateRloc(void) ThreadError Local::UpdateRloc(PrefixTlv &aPrefix) { - for (NetworkDataTlv *cur = reinterpret_cast(aPrefix.GetSubTlvs()); - cur < reinterpret_cast(aPrefix.GetSubTlvs() + aPrefix.GetSubTlvsLength()); - cur = cur->GetNext()) + for (NetworkDataTlv *cur = aPrefix.GetSubTlvs(); cur < aPrefix.GetNext(); cur = cur->GetNext()) { switch (cur->GetType()) { case NetworkDataTlv::kTypeHasRoute: - UpdateRloc(*reinterpret_cast(cur)); + UpdateRloc(*static_cast(cur)); break; case NetworkDataTlv::kTypeBorderRouter: - UpdateRloc(*reinterpret_cast(cur)); + UpdateRloc(*static_cast(cur)); break; default: diff --git a/src/core/thread/network_data_tlvs.hpp b/src/core/thread/network_data_tlvs.hpp index dcf3118b5..e2e11d353 100644 --- a/src/core/thread/network_data_tlvs.hpp +++ b/src/core/thread/network_data_tlvs.hpp @@ -313,7 +313,10 @@ public: * @returns A pointer to the Sub-TLVs. * */ - uint8_t *GetSubTlvs() { return GetPrefix() + BitVectorBytes(mPrefixLength); } + NetworkDataTlv *GetSubTlvs() { + return reinterpret_cast(GetPrefix() + + BitVectorBytes(mPrefixLength)); + } /** * This method returns the Sub-TLVs length in bytes.