Soved valgrind error on CQI updates in RR and PF schedulers
authorMarco Miozzo <marco.miozzo@cttc.es>
Fri, 20 Jan 2012 16:26:55 +0100
changeset 8584 188a9d439fd8
parent 8576 dad6fca5e0fb
child 8585 e7d1c8d286c9
Soved valgrind error on CQI updates in RR and PF schedulers
src/lte/model/pf-ff-mac-scheduler.cc
src/lte/model/rr-ff-mac-scheduler.cc
--- a/src/lte/model/pf-ff-mac-scheduler.cc	Fri Jan 20 13:11:55 2012 +0100
+++ b/src/lte/model/pf-ff-mac-scheduler.cc	Fri Jan 20 16:26:55 2012 +0100
@@ -1060,13 +1060,15 @@
           NS_ASSERT_MSG (itMap != m_p10CqiRxed.end (), " Does not find CQI report for user " << (*itP10).first);
           NS_LOG_INFO (this << " P10-CQI exired for user " << (*itP10).first);
           m_p10CqiRxed.erase (itMap);
-          m_p10CqiTimers.erase (itP10);
+          std::map <uint16_t,uint32_t>::iterator temp = itP10;
+          itP10++;
+          m_p10CqiTimers.erase (temp);
         }
       else
         {
           (*itP10).second--;
+          itP10++;
         }
-      itP10++;
     }
   
   // refresh DL CQI A30 Map
@@ -1081,13 +1083,15 @@
           NS_ASSERT_MSG (itMap != m_a30CqiRxed.end (), " Does not find CQI report for user " << (*itA30).first);
           NS_LOG_INFO (this << " A30-CQI exired for user " << (*itA30).first);
           m_a30CqiRxed.erase (itMap);
-          m_a30CqiTimers.erase (itA30);
+          std::map <uint16_t,uint32_t>::iterator temp = itA30;
+          itA30++;
+          m_a30CqiTimers.erase (temp);
         }
       else
         {
           (*itA30).second--;
+          itA30++;
         }
-      itA30++;
     }
     
     return;
@@ -1110,13 +1114,15 @@
           NS_LOG_INFO (this << " UL-CQI exired for user " << (*itUl).first);
           (*itMap).second.clear ();
           m_ueCqi.erase (itMap);
-          m_ueCqiTimers.erase (itUl);
+          std::map <uint16_t,uint32_t>::iterator temp = itUl;
+          itUl++;
+          m_ueCqiTimers.erase (temp);
         }
       else
         {
           (*itUl).second--;
+          itUl++;
         }
-      itUl++;
     }
     
     return;
--- a/src/lte/model/rr-ff-mac-scheduler.cc	Fri Jan 20 13:11:55 2012 +0100
+++ b/src/lte/model/rr-ff-mac-scheduler.cc	Fri Jan 20 16:26:55 2012 +0100
@@ -915,13 +915,15 @@
           NS_ASSERT_MSG (itMap != m_p10CqiRxed.end (), " Does not find CQI report for user " << (*itP10).first);
           NS_LOG_INFO (this << " P10-CQI exired for user " << (*itP10).first);
           m_p10CqiRxed.erase (itMap);
-          m_p10CqiTimers.erase (itP10);
+          std::map <uint16_t,uint32_t>::iterator temp = itP10;
+          itP10++;
+          m_p10CqiTimers.erase (temp);
         }
       else
         {
           (*itP10).second--;
+          itP10++;
         }
-      itP10++;
     }
   
   return;
@@ -944,13 +946,15 @@
           NS_LOG_INFO (this << " UL-CQI exired for user " << (*itUl).first);
           (*itMap).second.clear ();
           m_ueCqi.erase (itMap);
-          m_ueCqiTimers.erase (itUl);
+          std::map <uint16_t,uint32_t>::iterator temp = itUl;
+          itUl++;
+          m_ueCqiTimers.erase (temp);
         }
       else
         {
           (*itUl).second--;
+          itUl++;
         }
-      itUl++;
     }
   
   return;