Skip to content

Commit 92dc742

Browse files
authored
Updated while loops to for loops. (#1955)
1 parent 3de6c6b commit 92dc742

File tree

1 file changed

+17
-33
lines changed

1 file changed

+17
-33
lines changed

Packet++/src/Packet.cpp

Lines changed: 17 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -209,13 +209,11 @@ namespace pcpp
209209
// set all data pointers in layers to the new array address
210210
const uint8_t* dataPtr = m_RawPacket->getRawData();
211211

212-
Layer* curLayer = m_FirstLayer;
213-
while (curLayer != nullptr)
212+
for (Layer* curLayer = m_FirstLayer; curLayer != nullptr; curLayer = curLayer->getNextLayer())
214213
{
215214
PCPP_LOG_DEBUG("Setting new data pointer to layer '" << typeid(curLayer).name() << "'");
216-
curLayer->m_Data = (uint8_t*)dataPtr;
215+
curLayer->m_Data = const_cast<uint8_t*>(dataPtr);
217216
dataPtr += curLayer->getHeaderLen();
218-
curLayer = curLayer->getNextLayer();
219217
}
220218
}
221219

@@ -303,8 +301,7 @@ namespace pcpp
303301
packetTrailerLen = m_LastLayer->getDataLen();
304302

305303
// go over all layers from the first layer to the last layer and set the data ptr and data length for each one
306-
Layer* curLayer = m_FirstLayer;
307-
while (curLayer != nullptr)
304+
for (Layer* curLayer = m_FirstLayer; curLayer != nullptr; curLayer = curLayer->getNextLayer())
308305
{
309306
// set data ptr to layer
310307
curLayer->m_Data = const_cast<uint8_t*>(dataPtr);
@@ -321,9 +318,6 @@ namespace pcpp
321318
// advance data ptr and data length
322319
dataPtr += curLayer->getHeaderLen();
323320
dataLen -= curLayer->getHeaderLen();
324-
325-
// move to next layer
326-
curLayer = curLayer->getNextLayer();
327321
}
328322

329323
return true;
@@ -509,33 +503,29 @@ namespace pcpp
509503

510504
Layer* Packet::getLayerOfType(ProtocolType layerType, int index) const
511505
{
512-
Layer* curLayer = getFirstLayer();
513506
int curIndex = 0;
514-
while (curLayer != nullptr)
507+
for (Layer* curLayer = getFirstLayer(); curLayer != nullptr; curLayer = curLayer->getNextLayer())
515508
{
516-
if (curLayer->getProtocol() == layerType)
517-
{
518-
if (curIndex < index)
519-
curIndex++;
520-
else
521-
break;
522-
}
523-
curLayer = curLayer->getNextLayer();
509+
if (curLayer->getProtocol() != layerType)
510+
continue;
511+
512+
if (curIndex == index)
513+
return curLayer;
514+
515+
curIndex++;
524516
}
525517

526-
return curLayer;
518+
return nullptr;
527519
}
528520

529521
bool Packet::isPacketOfType(ProtocolType protocolType) const
530522
{
531-
Layer* curLayer = getFirstLayer();
532-
while (curLayer != nullptr)
523+
for (Layer* curLayer = getFirstLayer(); curLayer != nullptr; curLayer = curLayer->getNextLayer())
533524
{
534525
if (curLayer->getProtocol() == protocolType)
535526
{
536527
return true;
537528
}
538-
curLayer = curLayer->getNextLayer();
539529
}
540530

541531
return false;
@@ -600,9 +590,8 @@ namespace pcpp
600590
const uint8_t* dataPtr = m_RawPacket->getRawData();
601591

602592
// go over all layers from the first layer to the last layer and set the data ptr and data length for each layer
603-
Layer* curLayer = m_FirstLayer;
604593
bool passedExtendedLayer = false;
605-
while (curLayer != nullptr)
594+
for (Layer* curLayer = m_FirstLayer; curLayer != nullptr; curLayer = curLayer->getNextLayer())
606595
{
607596
// set the data ptr
608597
curLayer->m_Data = (uint8_t*)dataPtr;
@@ -619,7 +608,6 @@ namespace pcpp
619608
// assuming header length of the layer that requested to be extended hasn't been enlarged yet
620609
size_t headerLen = curLayer->getHeaderLen() + (curLayer == layer ? numOfBytesToExtend : 0);
621610
dataPtr += headerLen;
622-
curLayer = curLayer->getNextLayer();
623611
}
624612

625613
return true;
@@ -680,12 +668,9 @@ namespace pcpp
680668
void Packet::computeCalculateFields()
681669
{
682670
// calculated fields should be calculated from top layer to bottom layer
683-
684-
Layer* curLayer = m_LastLayer;
685-
while (curLayer != nullptr)
671+
for (Layer* curLayer = m_LastLayer; curLayer != nullptr; curLayer = curLayer->getPrevLayer())
686672
{
687673
curLayer->computeCalculateFields();
688-
curLayer = curLayer->getPrevLayer();
689674
}
690675
}
691676

@@ -834,11 +819,10 @@ namespace pcpp
834819
{
835820
result.clear();
836821
result.push_back(printPacketInfo(timeAsLocalTime));
837-
Layer* curLayer = m_FirstLayer;
838-
while (curLayer != nullptr)
822+
823+
for (Layer* curLayer = m_FirstLayer; curLayer != nullptr; curLayer = curLayer->getNextLayer())
839824
{
840825
result.push_back(curLayer->toString());
841-
curLayer = curLayer->getNextLayer();
842826
}
843827
}
844828

0 commit comments

Comments
 (0)