<p>pespin <strong>submitted</strong> this change.</p><p><a href="https://gerrit.osmocom.org/c/osmo-pcu/+/25053">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  pespin: Looks good to me, approved
  osmith: Looks good to me, but someone else must approve

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Move rate_ctr free to tbf subclass destructor<br><br>This way we clean up tbf_free entry point, and leave memory freeing for<br>later on at the end when talloc_free is called.<br><br>Change-Id: I1c45e3296e565725bcbbca391d9518772fffa89d<br>---<br>M src/tbf.cpp<br>M src/tbf_dl.cpp<br>M src/tbf_ul.cpp<br>M src/tbf_ul.h<br>4 files changed, 15 insertions(+), 11 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/tbf.cpp b/src/tbf.cpp</span><br><span>index ca0dc41..16a53cc 100644</span><br><span>--- a/src/tbf.cpp</span><br><span>+++ b/src/tbf.cpp</span><br><span>@@ -164,6 +164,7 @@</span><br><span> {</span><br><span>   osmo_fsm_inst_free(state_fsm.fi);</span><br><span>    state_fsm.fi = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+  rate_ctr_group_free(m_ctrs);</span><br><span> }</span><br><span> </span><br><span> uint32_t gprs_rlcmac_tbf::tlli() const</span><br><span>@@ -269,19 +270,11 @@</span><br><span> {</span><br><span>         /* update counters */</span><br><span>        if (tbf->direction == GPRS_RLCMAC_UL_TBF) {</span><br><span style="color: hsl(0, 100%, 40%);">-          gprs_rlcmac_ul_tbf *ul_tbf = as_ul_tbf(tbf);</span><br><span>                 bts_do_rate_ctr_inc(tbf->bts, CTR_TBF_UL_FREED);</span><br><span>          if (tbf->state_is(TBF_ST_FLOW))</span><br><span>                   bts_do_rate_ctr_inc(tbf->bts, CTR_TBF_UL_ABORTED);</span><br><span style="color: hsl(0, 100%, 40%);">-           rate_ctr_group_free(ul_tbf->m_ul_egprs_ctrs);</span><br><span style="color: hsl(0, 100%, 40%);">-                rate_ctr_group_free(ul_tbf->m_ul_gprs_ctrs);</span><br><span>      } else {</span><br><span>             gprs_rlcmac_dl_tbf *dl_tbf = as_dl_tbf(tbf);</span><br><span style="color: hsl(0, 100%, 40%);">-            if (tbf->is_egprs_enabled()) {</span><br><span style="color: hsl(0, 100%, 40%);">-                       rate_ctr_group_free(dl_tbf->m_dl_egprs_ctrs);</span><br><span style="color: hsl(0, 100%, 40%);">-                } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                        rate_ctr_group_free(dl_tbf->m_dl_gprs_ctrs);</span><br><span style="color: hsl(0, 100%, 40%);">-         }</span><br><span>            bts_do_rate_ctr_inc(tbf->bts, CTR_TBF_DL_FREED);</span><br><span>          if (tbf->state_is(TBF_ST_FLOW))</span><br><span>                   bts_do_rate_ctr_inc(tbf->bts, CTR_TBF_DL_ABORTED);</span><br><span>@@ -297,8 +290,6 @@</span><br><span>  if (tbf->ms())</span><br><span>            tbf->set_ms(NULL);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       rate_ctr_group_free(tbf->m_ctrs);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>         LOGP(DTBF, LOGL_DEBUG, "********** %s-TBF ends here **********\n",</span><br><span>              (tbf->direction != GPRS_RLCMAC_UL_TBF) ? "DL" : "UL");</span><br><span>   talloc_free(tbf);</span><br><span>diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp</span><br><span>index e76ea8c..0330a78 100644</span><br><span>--- a/src/tbf_dl.cpp</span><br><span>+++ b/src/tbf_dl.cpp</span><br><span>@@ -180,7 +180,12 @@</span><br><span> gprs_rlcmac_dl_tbf::~gprs_rlcmac_dl_tbf()</span><br><span> {</span><br><span>      osmo_timer_del(&m_llc_timer);</span><br><span style="color: hsl(0, 100%, 40%);">-       /* ~gprs_rlcmac_dl_tbf() is called automatically upon return */</span><br><span style="color: hsl(120, 100%, 40%);">+       if (is_egprs_enabled()) {</span><br><span style="color: hsl(120, 100%, 40%);">+             rate_ctr_group_free(m_dl_egprs_ctrs);</span><br><span style="color: hsl(120, 100%, 40%);">+ } else {</span><br><span style="color: hsl(120, 100%, 40%);">+              rate_ctr_group_free(m_dl_gprs_ctrs);</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+     /* ~gprs_rlcmac_tbf() is called automatically upon return */</span><br><span> }</span><br><span> </span><br><span> gprs_rlcmac_dl_tbf::gprs_rlcmac_dl_tbf(struct gprs_rlcmac_bts *bts_, GprsMs *ms) :</span><br><span>diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp</span><br><span>index d4575a3..6e50734 100644</span><br><span>--- a/src/tbf_ul.cpp</span><br><span>+++ b/src/tbf_ul.cpp</span><br><span>@@ -91,6 +91,13 @@</span><br><span>        tbf_ul_egprs_ctr_description,</span><br><span> };</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+gprs_rlcmac_ul_tbf::~gprs_rlcmac_ul_tbf()</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ rate_ctr_group_free(m_ul_egprs_ctrs);</span><br><span style="color: hsl(120, 100%, 40%);">+ rate_ctr_group_free(m_ul_gprs_ctrs);</span><br><span style="color: hsl(120, 100%, 40%);">+  /* ~gprs_rlcmac_tbf() is called automatically upon return */</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static int ul_tbf_dtor(struct gprs_rlcmac_ul_tbf *tbf)</span><br><span> {</span><br><span>     tbf->~gprs_rlcmac_ul_tbf();</span><br><span>diff --git a/src/tbf_ul.h b/src/tbf_ul.h</span><br><span>index 9396633..2bc908d 100644</span><br><span>--- a/src/tbf_ul.h</span><br><span>+++ b/src/tbf_ul.h</span><br><span>@@ -54,6 +54,7 @@</span><br><span> </span><br><span> struct gprs_rlcmac_ul_tbf : public gprs_rlcmac_tbf {</span><br><span>  gprs_rlcmac_ul_tbf(struct gprs_rlcmac_bts *bts, GprsMs *ms);</span><br><span style="color: hsl(120, 100%, 40%);">+  ~gprs_rlcmac_ul_tbf();</span><br><span>       gprs_rlc_window *window();</span><br><span>   struct msgb *create_ul_ack(uint32_t fn, uint8_t ts);</span><br><span>         bool ctrl_ack_to_toggle();</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-pcu/+/25053">change 25053</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-pcu/+/25053"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-pcu </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I1c45e3296e565725bcbbca391d9518772fffa89d </div>
<div style="display:none"> Gerrit-Change-Number: 25053 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-Reviewer: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-Reviewer: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>