Ack. I think this patch is on top of older patches, so was not able to apply, but could review.
Thanks -Nagu > -----Original Message----- > From: Gary Lee [mailto:[email protected]] > Sent: 17 September 2015 11:25 > To: [email protected]; Nagendra Kumar; > [email protected]; [email protected]; Praveen Malviya > Cc: [email protected] > Subject: [PATCH 1 of 1] amfd: convert list_of_si to std::vector [#1142] > > osaf/services/saf/amf/amfd/comp.cc | 2 +- > osaf/services/saf/amf/amfd/csi.cc | 3 +- > osaf/services/saf/amf/amfd/include/sg.h | 9 ++- > osaf/services/saf/amf/amfd/include/si.h | 2 +- > osaf/services/saf/amf/amfd/ndproc.cc | 3 +- > osaf/services/saf/amf/amfd/sg.cc | 64 > +++++++--------------------- > osaf/services/saf/amf/amfd/sg_2n_fsm.cc | 25 ++-------- > osaf/services/saf/amf/amfd/sg_nored_fsm.cc | 8 +--- > osaf/services/saf/amf/amfd/sg_npm_fsm.cc | 55 +++++++++++------------ > osaf/services/saf/amf/amfd/sg_nway_fsm.cc | 13 +++-- > osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc | 16 +++--- > osaf/services/saf/amf/amfd/si.cc | 1 - > osaf/services/saf/amf/amfd/si_dep.cc | 8 +-- > 13 files changed, 74 insertions(+), 135 deletions(-) > > > diff --git a/osaf/services/saf/amf/amfd/comp.cc > b/osaf/services/saf/amf/amfd/comp.cc > --- a/osaf/services/saf/amf/amfd/comp.cc > +++ b/osaf/services/saf/amf/amfd/comp.cc > @@ -1659,7 +1659,7 @@ > > bool is_comp_assigned_any_csi(AVD_COMP *comp) > { > - for (AVD_SI *si = comp->su->sg_of_su->list_of_si; si != NULL; si = si- > >sg_list_of_si_next) { > + for (const auto& si : comp->su->sg_of_su->list_of_si) { > for (AVD_CSI *csi = si->list_of_csi; csi; csi = csi- > >si_list_of_csi_next) { > for (AVD_COMP_CSI_REL *compcsi = csi- > >list_compcsi; compcsi; compcsi = compcsi->csi_csicomp_next) { > if (compcsi->comp == comp) > diff --git a/osaf/services/saf/amf/amfd/csi.cc > b/osaf/services/saf/amf/amfd/csi.cc > --- a/osaf/services/saf/amf/amfd/csi.cc > +++ b/osaf/services/saf/amf/amfd/csi.cc > @@ -1383,10 +1383,9 @@ > */ > bool csi_assignment_validate(AVD_SG *sg) > { > - AVD_SI *temp_si; > AVD_SU_SI_REL *temp_sisu; > > - for (temp_si = sg->list_of_si; temp_si; temp_si = temp_si- > >sg_list_of_si_next) > + for (const auto& temp_si : sg->list_of_si) > for (temp_sisu = temp_si->list_of_sisu; temp_sisu; temp_sisu > = temp_sisu->si_next) > if (temp_sisu->csi_add_rem == true) > return true; > diff --git a/osaf/services/saf/amf/amfd/include/sg.h > b/osaf/services/saf/amf/amfd/include/sg.h > --- a/osaf/services/saf/amf/amfd/include/sg.h > +++ b/osaf/services/saf/amf/amfd/include/sg.h > @@ -186,10 +186,11 @@ > std::vector<AVD_SU*> list_of_su; > AVD_SU* first_su(); > > - AVD_SI *list_of_si; /* the list of service instances in > - * this group in the descending order > - * of the rank. > - */ > + /* the list of service instances in > + * this group in the descending order > + * of the rank. > + */ > + std::vector<AVD_SI*> list_of_si; > SaInvocationT adminOp_invocationId; > SaAmfAdminOperationIdT adminOp; > > diff --git a/osaf/services/saf/amf/amfd/include/si.h > b/osaf/services/saf/amf/amfd/include/si.h > --- a/osaf/services/saf/amf/amfd/include/si.h > +++ b/osaf/services/saf/amf/amfd/include/si.h > @@ -93,7 +93,6 @@ > > AVD_SG *sg_of_si; /* the service group of this SI */ > AVD_CSI *list_of_csi; /* The list of CSIs in the SI */ > - AVD_SI *sg_list_of_si_next; /* next SI in the SG list of SIs */ > struct avd_su_si_rel_tag *list_of_sisu; /* the list of su si > relationship > elements */ > AVD_SI_DEP_STATE si_dep_state; /* SI-SI dep state of this SI */ > struct avd_spons_si_tag *spons_si_list; > @@ -141,6 +140,7 @@ > void add_csi_db(AVD_CSI* csi); > bool is_sirank_valid(uint32_t newSiRank) const; > void update_sirank(uint32_t newSiRank); > + > private: > AVD_SI(const AVD_SI&); > AVD_SI& operator=(const AVD_SI&); > diff --git a/osaf/services/saf/amf/amfd/ndproc.cc > b/osaf/services/saf/amf/amfd/ndproc.cc > --- a/osaf/services/saf/amf/amfd/ndproc.cc > +++ b/osaf/services/saf/amf/amfd/ndproc.cc > @@ -780,8 +780,7 @@ > } > > if (l_val == > SA_AMF_PRESENCE_TERMINATION_FAILED) { > - for (AVD_SI* si = su- > >sg_of_su->list_of_si; si != NULL; > - si = si- > >sg_list_of_si_next) { > + for (const auto& si : su- > >sg_of_su->list_of_si) { > if (si->invocation != > 0) { > > report_admin_op_error(cb->immOiHandle, si->invocation, > > SA_AIS_ERR_REPAIR_PENDING, > diff --git a/osaf/services/saf/amf/amfd/sg.cc > b/osaf/services/saf/amf/amfd/sg.cc > --- a/osaf/services/saf/amf/amfd/sg.cc > +++ b/osaf/services/saf/amf/amfd/sg.cc > @@ -117,7 +117,6 @@ > sg_fsm_state(AVD_SG_FSM_STABLE), > admin_si(NULL), > > sg_redundancy_model(SA_AMF_NO_REDUNDANCY_MODEL), > - list_of_si(NULL), > sg_type(NULL), > sg_list_app_next(NULL), > app(NULL), > @@ -162,56 +161,30 @@ > { > /* by now SU and SI should have been deleted */ > osafassert(sg->list_of_su.empty() == true); > - osafassert(sg->list_of_si == NULL); > + osafassert(sg->list_of_si.empty() == true); > sg_remove_from_model(sg); > delete sg; > } > > void AVD_SG::add_si(AVD_SI* si) > { > - AVD_SI *i_si = AVD_SI_NULL; > - AVD_SI *prev_si = AVD_SI_NULL; > - > - i_si = this->list_of_si; > - > - while ((i_si != AVD_SI_NULL) && (i_si->saAmfSIRank < si- > >saAmfSIRank)) { > - prev_si = i_si; > - i_si = i_si->sg_list_of_si_next; > - } > si->sg_of_si = this; > - if (prev_si == AVD_SI_NULL) { > - si->sg_list_of_si_next = si->sg_of_si->list_of_si; > - this->list_of_si = si; > - } else { > - prev_si->sg_list_of_si_next = si; > - si->sg_list_of_si_next = i_si; > - } > + list_of_si.push_back(si); > + std::sort(list_of_si.begin(), list_of_si.end(), > + [](const AVD_SI *a, const AVD_SI *b) -> bool {return a- > >saAmfSIRank < b->saAmfSIRank;}); > } > > void AVD_SG::remove_si(AVD_SI* si) > { > - AVD_SI *i_si = NULL; > - AVD_SI *prev_si = NULL; > + auto si_to_remove = std::find(list_of_si.begin(), list_of_si.end(), si); > + > + if (si_to_remove != list_of_si.end()) { > + list_of_si.erase(si_to_remove); > + } else { > + osafassert(false); > + } > > - if (list_of_si != NULL) { > - i_si = list_of_si; > - > - while ((i_si != NULL) && (i_si != si)) { > - prev_si = i_si; > - i_si = i_si->sg_list_of_si_next; > - } > - > - if (i_si == si) { > - if (prev_si == NULL) { > - list_of_si = si->sg_list_of_si_next; > - } else { > - prev_si->sg_list_of_si_next = si- > >sg_list_of_si_next; > - } > - > - si->sg_list_of_si_next = NULL; > - si->sg_of_si = NULL; > - } > - } > + si->sg_of_si = NULL; > } > > /** > @@ -1199,9 +1172,7 @@ > **/ > bool sg_is_tolerance_timer_running_for_any_si(AVD_SG *sg) > { > - AVD_SI *si; > - > - for (si = sg->list_of_si; si != NULL; si = si->sg_list_of_si_next) { > + for (const auto& si : sg->list_of_si) { > if (si->si_dep_state == AVD_SI_TOL_TIMER_RUNNING) { > TRACE("Tolerance timer running for si: %s",si- > >name.value); > return true; > @@ -1484,7 +1455,6 @@ > { > SaAisErrorT rc = SA_AIS_ERR_BAD_OPERATION; > AVD_SG *sg; > - AVD_SI *si; > bool si_exist = false; > CcbUtilOperationData_t *t_opData; > > @@ -1500,21 +1470,19 @@ > break; > case CCBUTIL_DELETE: > sg = sg_db->find(Amf::to_string(&opdata->objectName)); > - if (sg->list_of_si != NULL) { > + if (sg->list_of_si.empty() == false) { > /* check whether there is parent app delete */ > t_opData = ccbutil_getCcbOpDataByDN(opdata- > >ccbId, &sg->app->name); > if (t_opData == NULL || t_opData->operationType != > CCBUTIL_DELETE) { > /* check whether there exists a delete > operation for > * each of the SIs in the SG's list in the > current > CCB > */ > - si = sg->list_of_si; > - while (si != NULL) { > + for (const auto& si : sg->list_of_si) { > t_opData = > ccbutil_getCcbOpDataByDN(opdata->ccbId, &si->name); > if ((t_opData == NULL) || (t_opData- > >operationType != CCBUTIL_DELETE)) { > si_exist = true; > break; > } > - si = si->sg_list_of_si_next; > } > } > if (si_exist == true) { > @@ -1665,7 +1633,7 @@ > adminOp_invocationId = 0; > adminOp = > static_cast<SaAmfAdminOperationIdT>(0); > } > - for (AVD_SI* si = list_of_si; si != NULL; si = si- > >sg_list_of_si_next) { > + for (const auto& si : list_of_si) { > if (si->invocation != 0) { > avd_saImmOiAdminOperationResult(avd_cb- > >immOiHandle, > si->invocation, SA_AIS_OK); > diff --git a/osaf/services/saf/amf/amfd/sg_2n_fsm.cc > b/osaf/services/saf/amf/amfd/sg_2n_fsm.cc > --- a/osaf/services/saf/amf/amfd/sg_2n_fsm.cc > +++ b/osaf/services/saf/amf/amfd/sg_2n_fsm.cc > @@ -264,7 +264,6 @@ > bool act_found = false, quisced_found = false, std_found = false, > any_susi_act_found = false; > AVD_SU_SI_REL *a_susi = NULL; > AVD_SU_SI_REL *s_susi = NULL; > - AVD_SI *si_temp; > > TRACE_ENTER2("'%s'", su->name.value); > > @@ -288,7 +287,7 @@ > /* Any one SI is act: SU state can be said to be Act. Find SUSI, > which has both Act and Std assgnt.*/ > > /* Find SI, which has both Act and Stdby SUSI.*/ > - for (si_temp = su->sg_of_su->list_of_si;NULL != > si_temp;si_temp = si_temp->sg_list_of_si_next) { > + for (const auto& si_temp : su->sg_of_su->list_of_si) { > TRACE("si'%s'", si_temp->name.value); > /* check to see if this SI has both the assignments */ > if (NULL == (susi = si_temp->list_of_sisu)) { > @@ -324,12 +323,10 @@ > SU state can be said to be Act if other Su is not Act. Find > SUSI,which has both Act and Std assgnt.*/ > > /* Find SI, which has both Act and Stdby SUSI.*/ > - si_temp = su->sg_of_su->list_of_si; > - while (NULL != si_temp) { > + for (const auto& si_temp : su->sg_of_su->list_of_si) { > TRACE("si'%s'", si_temp->name.value); > /* check to see if this SI has both the assignments */ > if (NULL == (susi = si_temp->list_of_sisu)) { > - si_temp = si_temp->sg_list_of_si_next; > continue; > } > TRACE("su'%s', si'%s'", susi->su->name.value, susi- > >si->name.value); > @@ -390,7 +387,6 @@ > } > break; > } > - si_temp = si_temp->sg_list_of_si_next; > }/* while (NULL != si_temp) */ > osafassert(a_susi); > osafassert(s_susi); > @@ -401,12 +397,10 @@ > } else if ((true == std_found) && (false == quisced_found)) { > /* This means that there is no Act/Quisced assignment, then > it may have all std assignment.*/ > /* Find SI, which has both Act and Stdby SUSI.*/ > - si_temp = su->sg_of_su->list_of_si; > - while (NULL != si_temp) { > + for (const auto& si_temp : su->sg_of_su->list_of_si) { > TRACE("si'%s'", si_temp->name.value); > /* check to see if this SI has both the assignments */ > if (NULL == (susi = si_temp->list_of_sisu)) { > - si_temp = si_temp->sg_list_of_si_next; > continue; > } > TRACE("su'%s', si'%s'", susi->su->name.value, susi- > >si->name.value); > @@ -428,7 +422,6 @@ > } > break; > } > - si_temp = si_temp->sg_list_of_si_next; > } > osafassert(a_susi); > osafassert(s_susi); > @@ -470,18 +463,14 @@ > AVD_SU_SI_REL *susi; > AVD_SU_SI_REL *a_susi = NULL, *a_susi_1 = NULL, *a_susi_2 = > NULL; > AVD_SU_SI_REL *s_susi = NULL, *s_susi_1 = NULL, *s_susi_2 = > NULL; > - AVD_SI *l_si; > AVD_SU *su_1 = NULL, *su_2 = NULL; > > TRACE_ENTER2("'%s'", sg->name.value); > > - l_si = sg->list_of_si; > - > /* Find out single/both the assigned SUs of SG. */ > - while (NULL != l_si) { > + for (const auto& l_si : sg->list_of_si) { > if ((susi = l_si->list_of_sisu) == NULL) { > /* SI with no assignments!! Check another SI.*/ > - l_si = l_si->sg_list_of_si_next; > continue; > } > su_1 = susi->su; > @@ -493,7 +482,6 @@ > su_2 = susi->si_next->su; > break; > } > - l_si = l_si->sg_list_of_si_next; > } > > if ((NULL == su_1) && (NULL == su_2)) > @@ -590,7 +578,6 @@ > AVD_SU *a_su = NULL; > AVD_SU *s_su = NULL; > AVD_SU *return_su = NULL; > - AVD_SI *i_si; > bool l_flag = true; > AVD_SU_SI_REL *tmp_susi; > > @@ -629,7 +616,7 @@ > l_flag = false; > > /* choose and assign SIs in the SG that dont have active assignment > */ > - for (i_si = sg->list_of_si; i_si != NULL; i_si = > i_si->sg_list_of_si_next) { > + for (const auto& i_si : sg->list_of_si) { > > if ((i_si->saAmfSIAdminState == > SA_AMF_ADMIN_UNLOCKED) && > (i_si->list_of_csi != NULL) && > @@ -687,7 +674,7 @@ > /* choose and assign SIs in the SG that have active assignment but > dont > * have standby assignment. > */ > - for (i_si = sg->list_of_si; i_si != NULL; i_si = > i_si->sg_list_of_si_next) { > + for (const auto& i_si : sg->list_of_si) { > if (i_si->list_of_sisu != AVD_SU_SI_REL_NULL) { > /* found a SI that has active assignment. check if it > has standby > * assignment. If not assign standby to this SU. > diff --git a/osaf/services/saf/amf/amfd/sg_nored_fsm.cc > b/osaf/services/saf/amf/amfd/sg_nored_fsm.cc > --- a/osaf/services/saf/amf/amfd/sg_nored_fsm.cc > +++ b/osaf/services/saf/amf/amfd/sg_nored_fsm.cc > @@ -37,15 +37,12 @@ > * no assignments need to happen. > */ > AVD_SU *SG_NORED::assign_sis_to_sus() { > - AVD_SI *i_si; > AVD_SU_SI_REL *tmp; > > TRACE_ENTER(); > > - i_si = list_of_si; > - > avd_sidep_update_si_dep_state_for_all_sis(this); > - while (i_si != NULL) { > + for (const auto& i_si : list_of_si) { > > /* verify that the SI is unassigned and ready */ > if ((i_si->saAmfSIAdminState != > SA_AMF_ADMIN_UNLOCKED) || > @@ -54,7 +51,6 @@ > (i_si->si_dep_state == > AVD_SI_UNASSIGNING_DUE_TO_DEP) || > (i_si->list_of_csi == NULL) || > (i_si->list_of_sisu != NULL)) { > - i_si = i_si->sg_list_of_si_next; > continue; > } > > @@ -79,8 +75,6 @@ > if (iter == list_of_su.end()) { > break; > } > - > - i_si = i_si->sg_list_of_si_next; > } > > TRACE_LEAVE(); > diff --git a/osaf/services/saf/amf/amfd/sg_npm_fsm.cc > b/osaf/services/saf/amf/amfd/sg_npm_fsm.cc > --- a/osaf/services/saf/amf/amfd/sg_npm_fsm.cc > +++ b/osaf/services/saf/amf/amfd/sg_npm_fsm.cc > @@ -338,7 +338,6 @@ > > ************************************************************** > ***************/ > static void avd_sg_npm_distribute_si_equal(AVD_SG *sg) > { > - AVD_SI *curr_si = NULL; > AVD_SU *curr_su = NULL; > AVD_SU_SI_REL *susi; > > @@ -349,8 +348,7 @@ > * qualified SU to take the active assignment for that SI > */ > > - curr_si = sg->list_of_si; > - while (curr_si != NULL) { > + for (const auto& curr_si : sg->list_of_si) { > > /* verify that the SI is ready and needs active assignments. */ > if ((curr_si->saAmfSIAdminState != > SA_AMF_ADMIN_UNLOCKED) || > @@ -358,7 +356,6 @@ > (curr_si->si_dep_state == > AVD_SI_SPONSOR_UNASSIGNED) || > (curr_si->si_dep_state == > AVD_SI_UNASSIGNING_DUE_TO_DEP) || > (curr_si->list_of_csi == NULL)) { > - curr_si = curr_si->sg_list_of_si_next; > continue; > } > > @@ -388,7 +385,6 @@ > LOG_ER("%s:%u: %s (%u)", __FILE__, > __LINE__, curr_su->name.value, curr_su->name.length); > } > } > - curr_si = curr_si->sg_list_of_si_next; > } > > /* Now run through SI list of the SG to identify if there is > @@ -396,14 +392,12 @@ > * make a Standby HA assignment accordingly > */ > > - curr_si = sg->list_of_si; > - while (curr_si != NULL) { > + for (const auto& curr_si : sg->list_of_si) { > if ((curr_si->list_of_sisu == AVD_SU_SI_REL_NULL) || > (curr_si->saAmfSIAssignmentState == > SA_AMF_ASSIGNMENT_FULLY_ASSIGNED)) { > /* No standby assignment needs to be done when > there is > * either no active assignment exists or it is fully > assigned already > */ > - curr_si = curr_si->sg_list_of_si_next; > continue; > } > /* an assignment exists for this SI check for > @@ -435,8 +429,6 @@ > LOG_ER("%s:%u: %s (%u)", __FILE__, > __LINE__, curr_su->name.value, curr_su->name.length); > } > } > - > - curr_si = curr_si->sg_list_of_si_next; > } > > TRACE_LEAVE(); > @@ -471,11 +463,12 @@ > { > AVD_SU *i_su = NULL, *l_su = NULL, *n_su; > uint32_t cnt = 0; > - AVD_SI *i_si; > + AVD_SI *i_si = NULL; > bool new_su = false; > bool su_found, load_su_found; > bool actv_su_found = false; > AVD_SU_SI_REL *o_susi, *tmp_susi; > + std::vector<AVD_SI*>::iterator si_iter; > > TRACE_ENTER(); > > @@ -489,11 +482,12 @@ > } > > /* Identifying and assigning active assignments. */ > - i_si = sg->list_of_si; > + si_iter = sg->list_of_si.begin(); > su_found = true; > actv_su_found = load_su_found = false; > > - while ((i_si != AVD_SI_NULL) && (su_found == true)) { > + while ((si_iter != sg->list_of_si.end()) && (su_found == true)) { > + i_si = *si_iter; > > /* verify that the SI is ready and needs active assignments. */ > if ((i_si->saAmfSIAdminState != > SA_AMF_ADMIN_UNLOCKED) || > @@ -501,12 +495,12 @@ > (i_si->si_dep_state == AVD_SI_READY_TO_UNASSIGN) || > (i_si->list_of_csi == NULL) || > (i_si->si_dep_state == > AVD_SI_UNASSIGNING_DUE_TO_DEP)) { > - i_si = i_si->sg_list_of_si_next; > + ++si_iter; > continue; > } > > if (i_si->list_of_sisu != AVD_SU_SI_REL_NULL) { > - i_si = i_si->sg_list_of_si_next; > + ++si_iter; > actv_su_found = true; > continue; > } > @@ -652,6 +646,7 @@ > /* if ((su_found == false) && > (cnt < sg->pref_num_active_su)) */ > } /* else (i_su != AVD_SU_NULL) */ > + > if (su_found == true) { > if (avd_new_assgn_susi(cb, i_su, i_si, > SA_AMF_HA_ACTIVE, false, &tmp_susi) == NCSCC_RC_SUCCESS) { > /* Add the SU to the operation list */ > @@ -662,24 +657,26 @@ > } > > /* choose the next SI */ > - i_si = i_si->sg_list_of_si_next; > + ++si_iter; > } > > - } /* while ((i_si != AVD_SI_NULL) && > (su_found == true)) */ > + } > > /* The SUs were loaded only upto the preffered level. If still SIs > * are left load them upto capability level. > */ > - if ((load_su_found == true) && (i_si != AVD_SI_NULL) && (cnt == sg- > >saAmfSGNumPrefActiveSUs)) { > + if ((load_su_found == true) && (si_iter != sg->list_of_si.end()) && (cnt > == sg->saAmfSGNumPrefActiveSUs)) { > /* Identify the highest ranked active assigning SU. */ > i_su = avd_sg_npm_su_next_asgn(cb, sg, NULL, > SA_AMF_HA_ACTIVE); > - while ((i_si != AVD_SI_NULL) && (i_su != NULL)) { > + while ((si_iter != sg->list_of_si.end()) && (i_su != NULL)) { > + i_si = *si_iter; > + > if ((i_si->saAmfSIAdminState != > SA_AMF_ADMIN_UNLOCKED) || > (i_si->si_dep_state == > AVD_SI_SPONSOR_UNASSIGNED) || > (i_si->si_dep_state == > AVD_SI_UNASSIGNING_DUE_TO_DEP) || > (i_si->list_of_csi == NULL) || > (i_si->list_of_sisu != AVD_SU_SI_REL_NULL)) { > - i_si = i_si->sg_list_of_si_next; > + ++si_iter; > continue; > } > > @@ -696,9 +693,8 @@ > } > > /* choose the next SI */ > - i_si = i_si->sg_list_of_si_next; > - > - } /* while ((i_si != AVD_SI_NULL) && (i_su != > AVD_SU_NULL)) */ > + ++si_iter; > + } > > } > /* if ((load_su_found == true) && (i_si != AVD_SI_NULL)) */ > @@ -716,16 +712,18 @@ > } > > /* Identifying and assigning standby assignments. */ > - i_si = sg->list_of_si; > + si_iter = sg->list_of_si.begin(); > new_su = false; > cnt = 0; > l_su = NULL; > /* su with last inservice un assigned SUs. */ > n_su = NULL; > - while (i_si != AVD_SI_NULL) { > + while (si_iter != sg->list_of_si.end()) { > + i_si = *si_iter; > + > /* verify that the SI has active assignments and needs > standby assignments. */ > if ((i_si->list_of_sisu == AVD_SU_SI_REL_NULL) || (i_si- > >list_of_sisu->si_next != AVD_SU_SI_REL_NULL)) { > - i_si = i_si->sg_list_of_si_next; > + ++si_iter; > continue; > } > > @@ -924,9 +922,8 @@ > } > > /* choose the next SI */ > - i_si = i_si->sg_list_of_si_next; > - > - } /* while (i_si != AVD_SI_NULL) */ > + ++si_iter; > + } > > done: > if (sg->su_oper_list.empty() == true) { > diff --git a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc > b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc > --- a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc > +++ b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc > @@ -689,7 +689,6 @@ > > uint32_t SG_NWAY::sg_admin_down(AVD_CL_CB *cb, AVD_SG *sg) { > AVD_SU_SI_REL *curr_susi = 0; > - AVD_SI *curr_si = 0; > bool is_act_asgn; > uint32_t rc = NCSCC_RC_SUCCESS; > > @@ -751,7 +750,7 @@ > if (SA_AMF_ADMIN_LOCKED == sg->saAmfSGAdminState) { > /* pick up all the quiescing susi assignments & > send quiesced assignments to them */ > - for (curr_si = sg->list_of_si; curr_si; curr_si = > curr_si- > >sg_list_of_si_next) { > + for (const auto& curr_si : sg->list_of_si) { > for (curr_susi = curr_si->list_of_sisu; > curr_susi && (SA_AMF_HA_QUIESCING != > curr_susi->state); > curr_susi = curr_susi->si_next) ; > @@ -1244,7 +1243,6 @@ > > ************************************************************** > ************/ > uint32_t avd_sg_nway_si_assign(AVD_CL_CB *cb, AVD_SG *sg) > { > - AVD_SI *curr_si = 0; > AVD_SU *curr_su = NULL; > AVD_SU *pref_su = NULL; > bool is_act_ass_sent = false, is_all_su_oos = true, is_all_si_ok = > false, su_found = true; > @@ -1258,8 +1256,7 @@ > > avd_sidep_update_si_dep_state_for_all_sis(sg); > /* assign active assignments to unassigned sis */ > - for (curr_si = sg->list_of_si; curr_si; curr_si = curr_si- > >sg_list_of_si_next) { > - > + for (const auto& curr_si : sg->list_of_si) { > /* verify if si is ready and needs an assignment */ > if ((curr_si->saAmfSIAdminState != > SA_AMF_ADMIN_UNLOCKED) || > (curr_si->si_dep_state == > AVD_SI_SPONSOR_UNASSIGNED) || > @@ -1409,7 +1406,11 @@ > goto done; > > /* assign standby assignments to the sis */ > - for (curr_si = sg->list_of_si; curr_si && (true == su_found); curr_si = > curr_si->sg_list_of_si_next) { > + for (const auto& curr_si : sg->list_of_si) { > + if (su_found == false) { > + break; > + } > + > /* verify if si is ready */ > if (curr_si->saAmfSIAdminState != > SA_AMF_ADMIN_UNLOCKED) > continue; > diff --git a/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc > b/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc > --- a/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc > +++ b/osaf/services/saf/amf/amfd/sg_nwayact_fsm.cc > @@ -57,22 +57,24 @@ > AVD_SU *avd_sg_nacvred_su_chose_asgn(AVD_CL_CB *cb, AVD_SG *sg) > { > AVD_SU *i_su, *qualified_su; > - AVD_SI *i_si; > bool l_flag, next_si_tobe_assigned = true; > AVD_SU_SI_REL *tmp_rel; > > TRACE_ENTER2("'%s'", sg->name.value); > > - i_si = sg->list_of_si; > + // @todo remove this l_flag?? > l_flag = true; > > avd_sidep_update_si_dep_state_for_all_sis(sg); > - while ((i_si != AVD_SI_NULL) && (l_flag == true)) { > + for (const auto& i_si : sg->list_of_si) { > + if (l_flag == false) { > + break; > + } > + > /* verify that the SI is ready and needs come more > assignments. */ > if ((i_si->saAmfSIAdminState != > SA_AMF_ADMIN_UNLOCKED) || > (i_si->list_of_csi == NULL) || > (i_si->pref_active_assignments() <= i_si- > >curr_active_assignments() )) { > - i_si = i_si->sg_list_of_si_next; > continue; > } > > @@ -80,7 +82,6 @@ > if ((i_si->si_dep_state == AVD_SI_SPONSOR_UNASSIGNED) || > (i_si->si_dep_state == > AVD_SI_READY_TO_UNASSIGN) || > (i_si->si_dep_state == > AVD_SI_UNASSIGNING_DUE_TO_DEP)) { > - i_si = i_si->sg_list_of_si_next; > continue; > } > > @@ -228,11 +229,8 @@ > }/* while */ > }/* if (true == sg->equal_ranked_su) */ > > - > /* choose the next SI */ > - i_si = i_si->sg_list_of_si_next; > - > - }/* while ((i_si != AVD_SI_NULL) && (l_flag == true)) */ > + } > > TRACE_LEAVE(); > > diff --git a/osaf/services/saf/amf/amfd/si.cc > b/osaf/services/saf/amf/amfd/si.cc > --- a/osaf/services/saf/amf/amfd/si.cc > +++ b/osaf/services/saf/amf/amfd/si.cc > @@ -307,7 +307,6 @@ > si_switch(AVSV_SI_TOGGLE_STABLE), > sg_of_si(NULL), > list_of_csi(NULL), > - sg_list_of_si_next(NULL), > list_of_sisu(NULL), > si_dep_state(AVD_SI_NO_DEPENDENCY), > spons_si_list(NULL), > diff --git a/osaf/services/saf/amf/amfd/si_dep.cc > b/osaf/services/saf/amf/amfd/si_dep.cc > --- a/osaf/services/saf/amf/amfd/si_dep.cc > +++ b/osaf/services/saf/amf/amfd/si_dep.cc > @@ -666,11 +666,9 @@ > > ************************************************************** > ************/ > void avd_sidep_update_si_dep_state_for_all_sis(AVD_SG *sg) > { > - AVD_SI *si = NULL; > - > TRACE_ENTER2("'%s'", sg->name.value); > > - for (si = sg->list_of_si; si != NULL; si = si->sg_list_of_si_next) { > + for (const auto& si : sg->list_of_si) { > > /*Avoid screening if si is neither a sponsor si nor a dependent > si*/ > if ((si->spons_si_list != NULL) || (si->num_dependents > 0)) > @@ -2427,11 +2425,9 @@ > **/ > void avd_sidep_sg_take_action(AVD_SG *sg) > { > - AVD_SI *si = NULL; > - > TRACE_ENTER2("'%s'", sg->name.value); > > - for (si = sg->list_of_si; si != NULL; si = si->sg_list_of_si_next) { > + for (const auto& si : sg->list_of_si) { > if ((si->spons_si_list != NULL) || (si->num_dependents > 0)) > sidep_si_take_action(si); > } ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
