osaf/services/saf/amf/amfd/comp.cc         |    1 -
 osaf/services/saf/amf/amfd/csi.cc          |   84 ++++++++++-------------
 osaf/services/saf/amf/amfd/include/comp.h  |    5 +-
 osaf/services/saf/amf/amfd/include/csi.h   |    3 +
 osaf/services/saf/amf/amfd/include/su.h    |    3 +-
 osaf/services/saf/amf/amfd/ndfsm.cc        |    6 +-
 osaf/services/saf/amf/amfd/nodeswbundle.cc |    3 +-
 osaf/services/saf/amf/amfd/sgproc.cc       |   15 +--
 osaf/services/saf/amf/amfd/su.cc           |  102 +++++++---------------------
 9 files changed, 78 insertions(+), 144 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
@@ -79,7 +79,6 @@ void AVD_COMP::initialize() {
   comp_type = {};
   comp_type_list_comp_next = {};
   su = {};
-  su_comp_next = {};
   admin_pend_cbk = {};
 }
 
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
@@ -26,6 +26,38 @@
 
 AmfDb<std::string, AVD_CSI> *csi_db = NULL;
 
+//
+AVD_COMP* AVD_CSI::find_assigned_comp(const SaNameT *cstype,
+                                        const AVD_SU_SI_REL *sisu,
+                                        const std::vector<AVD_COMP*> 
&list_of_comp) {
+  auto iter = list_of_comp.begin();
+  AVD_COMP* comp = nullptr;
+  for (; iter != list_of_comp.end(); ++iter) {
+    comp = *iter;
+    AVD_COMPCS_TYPE *cst;
+    if (NULL != (cst = avd_compcstype_find_match(cstype, comp))) {
+      if (SA_AMF_HA_ACTIVE == sisu->state) {
+        if (cst->saAmfCompNumCurrActiveCSIs < cst->saAmfCompNumMaxActiveCSIs) {
+          break;
+        } else { /* We can't assign this csi to this comp, so check for 
another comp */
+          continue ;
+        }
+      } else {
+        if (cst->saAmfCompNumCurrStandbyCSIs < 
cst->saAmfCompNumMaxStandbyCSIs) {
+          break;
+        } else { /* We can't assign this csi to this comp, so check for 
another comp */
+          continue ;
+        }
+      }
+    }
+  }
+  if (iter == list_of_comp.end()) {
+    return NULL;
+  } else {
+    return comp;
+  }
+}
+
 void avd_csi_delete(AVD_CSI *csi)
 {
        AVD_CSI_ATTR *temp;
@@ -445,7 +477,6 @@ static SaAisErrorT csi_ccb_completed_cre
        AVD_SU_SI_REL *t_sisu;
        AVD_COMP_CSI_REL *compcsi;
        SaNameT cstype_name;
-       AVD_COMPCS_TYPE *cst;
 
        TRACE_ENTER2("CCB ID %llu, '%s'", opdata->ccbId, 
opdata->objectName.value);
 
@@ -480,7 +511,7 @@ static SaAisErrorT csi_ccb_completed_cre
 
                                compcsi = t_sisu->list_of_csicomp;
                                while (compcsi != NULL) {
-                                       compcsi->comp->assign_flag = true;
+                                       compcsi->comp->set_assigned();
                                        compcsi = compcsi->susi_csicomp_next;
                                }
 
@@ -488,29 +519,9 @@ static SaAisErrorT csi_ccb_completed_cre
 
                                /* Component not found.*/
                                if (NULL == t_comp) {
-                                       /* This means that all the components 
are assigned, let us assigned it to assigned 
+                                       /* This means that all the components 
are assigned, let us assigned it to assigned
                                           component.*/
-                                       t_comp = su->list_of_comp;
-                                       while (t_comp != NULL) {
-                                               if (NULL != (cst = 
avd_compcstype_find_match(&cstype_name, t_comp))) {
-                                                       if (SA_AMF_HA_ACTIVE == 
t_sisu->state) {
-                                                               if 
(cst->saAmfCompNumCurrActiveCSIs < cst->saAmfCompNumMaxActiveCSIs) {
-                                                                       break;
-                                                               } else { /* We 
cann't assign this csi to this comp, so check for another comp */
-                                                                       t_comp 
= t_comp->su_comp_next;
-                                                                       
continue ;
-                                                               }
-                                                       } else {
-                                                               if 
(cst->saAmfCompNumCurrStandbyCSIs < cst->saAmfCompNumMaxStandbyCSIs) {
-                                                                       break;
-                                                               } else { /* We 
cann't assign this csi to this comp, so check for another comp */
-                                                                       t_comp 
= t_comp->su_comp_next;
-                                                                       
continue ;
-                                                               }
-                                                       }
-                                               }
-                                               t_comp = t_comp->su_comp_next;
-                                       }
+                                       t_comp = 
AVD_CSI::find_assigned_comp(&cstype_name, t_sisu, su->list_of_comp);
                                }
                                if (NULL == t_comp) {
                                        report_ccb_validation_error(opdata, 
"Compcsi doesn't exist or "
@@ -958,7 +969,6 @@ SaAisErrorT csi_assign_hdlr(AVD_CSI *csi
        AVD_SU_SI_REL *t_sisu;
        bool first_sisu = true;
        AVD_COMP_CSI_REL *compcsi;
-       AVD_COMPCS_TYPE *cst;
        SaAisErrorT rc = SA_AIS_ERR_NO_OP;
 
        /* Check whether csi assignment is already in progress and if yes, then 
return.
@@ -983,7 +993,7 @@ SaAisErrorT csi_assign_hdlr(AVD_CSI *csi
 
                        compcsi = t_sisu->list_of_csicomp;
                        while (compcsi != NULL) {
-                               compcsi->comp->assign_flag = true;
+                               compcsi->comp->set_assigned();
                                compcsi = compcsi->susi_csicomp_next;
                        }
 
@@ -993,27 +1003,7 @@ SaAisErrorT csi_assign_hdlr(AVD_CSI *csi
                        if (NULL == t_comp) {
                                /* This means that all the components are 
assigned, let us assigned it to assigned 
                                   component.*/
-                               t_comp = t_sisu->su->list_of_comp;
-                               while (t_comp != NULL) {
-                                       if (NULL != (cst = 
avd_compcstype_find_match(&csi->saAmfCSType, t_comp))) {
-                                               if (SA_AMF_HA_ACTIVE == 
t_sisu->state) {
-                                                       if 
(cst->saAmfCompNumCurrActiveCSIs < cst->saAmfCompNumMaxActiveCSIs) {
-                                                               break;
-                                                       } else { /* We cann't 
assign this csi to this comp, so check for another comp */
-                                                               t_comp = 
t_comp->su_comp_next;
-                                                               continue ;
-                                                       }
-                                               } else {
-                                                       if 
(cst->saAmfCompNumCurrStandbyCSIs < cst->saAmfCompNumMaxStandbyCSIs) {
-                                                               break;
-                                                       } else { /* We cann't 
assign this csi to this comp, so check for another comp */
-                                                               t_comp = 
t_comp->su_comp_next;
-                                                               continue ;
-                                                       }
-                                               }
-                                       }
-                                       t_comp = t_comp->su_comp_next;
-                               }
+                               t_comp = 
AVD_CSI::find_assigned_comp(&csi->saAmfCSType, t_sisu, 
t_sisu->su->list_of_comp);
                        }
                        if (NULL == t_comp) {
                                LOG_ER("Compcsi doesn't exist or 
MaxActiveCSI/MaxStandbyCSI have reached for csi '%s'",
diff --git a/osaf/services/saf/amf/amfd/include/comp.h 
b/osaf/services/saf/amf/amfd/include/comp.h
--- a/osaf/services/saf/amf/amfd/include/comp.h
+++ b/osaf/services/saf/amf/amfd/include/comp.h
@@ -121,10 +121,11 @@ class AVD_COMP {
   AVD_COMP_TYPE *comp_type;
   AVD_COMP *comp_type_list_comp_next;
   AVD_SU *su;          /* SU to which this component belongs */
-  AVD_COMP *su_comp_next;      /* the next component in list of  components
-                                 * in this SU */
   AVD_ADMIN_OPER_CBK admin_pend_cbk;  /* holds callback invocation for admin 
operation */
 
+  void set_unassigned() {assign_flag = false;}
+  void set_assigned() {assign_flag = true;}
+  bool is_assigned() {return assign_flag;}
  private:
   void initialize();
   // disallow copy and assign
diff --git a/osaf/services/saf/amf/amfd/include/csi.h 
b/osaf/services/saf/amf/amfd/include/csi.h
--- a/osaf/services/saf/amf/amfd/include/csi.h
+++ b/osaf/services/saf/amf/amfd/include/csi.h
@@ -84,6 +84,9 @@ class AVD_CSI {
   AVD_CS_TYPE *cstype {};
   bool assign_flag {};   /* Flag used while assigning. to mark this csi has 
been assigned a Comp
                          from * current SI being assigned */
+
+  static AVD_COMP* find_assigned_comp(const SaNameT *cstype, const 
AVD_SU_SI_REL *sisu, const std::vector<AVD_COMP*> &list_of_comp);
+
  private:
   AVD_CSI();
   // disallow copy and assign
diff --git a/osaf/services/saf/amf/amfd/include/su.h 
b/osaf/services/saf/amf/amfd/include/su.h
--- a/osaf/services/saf/amf/amfd/include/su.h
+++ b/osaf/services/saf/amf/amfd/include/su.h
@@ -90,8 +90,7 @@ class AVD_SU {
        AVD_AVND *su_on_node;   /*  the node on which this SU resides */
        struct avd_su_si_rel_tag *list_of_susi; /* the list of su si 
relationship elements */
 
-       // TODO: use some container for the comp list
-       AVD_COMP *list_of_comp; /* the list of  components in this SU */
+       std::vector<AVD_COMP*> list_of_comp;    /* the list of  components in 
this SU */
 
        AVD_SUTYPE *su_type;
        AVD_SU *su_list_su_type_next;
diff --git a/osaf/services/saf/amf/amfd/ndfsm.cc 
b/osaf/services/saf/amf/amfd/ndfsm.cc
--- a/osaf/services/saf/amf/amfd/ndfsm.cc
+++ b/osaf/services/saf/amf/amfd/ndfsm.cc
@@ -28,6 +28,7 @@
 #include <amfd.h>
 #include <cluster.h>
 #include <daemon.h>
+#include <algorithm>
 
 AmfDb<uint32_t, AVD_FAIL_OVER_NODE> *node_list_db = 0;      /* SaClmNodeIdT 
index */
 
@@ -205,9 +206,8 @@ void avd_nd_ncs_su_assigned(AVD_CL_CB *c
                /* Make application SUs operational state ENABLED */
                for (const auto& su : avnd->list_of_su) {
                        su->set_oper_state(SA_AMF_OPERATIONAL_ENABLED);
-                       AVD_COMP *comp;
-                       for (comp = su->list_of_comp; comp; comp = 
comp->su_comp_next)
-                               avd_comp_oper_state_set(comp, 
SA_AMF_OPERATIONAL_ENABLED);
+                       std::for_each (su->list_of_comp.begin(), 
su->list_of_comp.end(),
+                               [] (AVD_COMP *comp) 
{avd_comp_oper_state_set(comp, SA_AMF_OPERATIONAL_ENABLED);});
                }
                /* We can now set the LEDS */
                avd_snd_set_leds_msg(cb, avnd);
diff --git a/osaf/services/saf/amf/amfd/nodeswbundle.cc 
b/osaf/services/saf/amf/amfd/nodeswbundle.cc
--- a/osaf/services/saf/amf/amfd/nodeswbundle.cc
+++ b/osaf/services/saf/amf/amfd/nodeswbundle.cc
@@ -71,11 +71,10 @@ static int is_config_valid(const SaNameT
 static int is_swbdl_delete_ok_for_node(const SaNameT *bundle_dn_to_delete,
        const SaNameT *node_dn, const std::vector<AVD_SU*> &su_list, 
CcbUtilOperationData_t *opdata)
 {
-       const AVD_COMP *comp;
        SaNameT bundle_dn;
 
        for (const auto& su : su_list) {
-               for (comp = su->list_of_comp; comp != NULL; comp = 
comp->su_comp_next) {
+               for (const auto& comp : su->list_of_comp) {
                        
avsv_create_association_class_dn(&comp->comp_type->saAmfCtSwBundle, 
                                node_dn, "safInstalledSwBundle", &bundle_dn);
 
diff --git a/osaf/services/saf/amf/amfd/sgproc.cc 
b/osaf/services/saf/amf/amfd/sgproc.cc
--- a/osaf/services/saf/amf/amfd/sgproc.cc
+++ b/osaf/services/saf/amf/amfd/sgproc.cc
@@ -62,7 +62,7 @@ static void verify_csi_deps_and_delete_i
                                                        
compcsi->comp->comp_info.name.value,
                                                        
compcsi->csi->name.value);
                                        compcsi->csi->assign_flag = false;
-                                       compcsi->comp->assign_flag = false;
+                                       compcsi->comp->set_unassigned();
                                        
avd_compcsi_from_csi_and_susi_delete(susi, compcsi, true);
                                        //Delete compcsi of dependents.
                                        
verify_csi_deps_and_delete_invalid_compcsi(susi);
@@ -148,7 +148,7 @@ uint32_t avd_new_assgn_susi(AVD_CL_CB *c
                        continue;
                }
 
-               l_comp->assign_flag = true;
+               l_comp->set_assigned();
                l_csi->assign_flag = true;
                l_csi = l_csi->si_list_of_csi_next;
        } /* while(l_csi != AVD_CSI_NULL) */
@@ -169,31 +169,27 @@ uint32_t avd_new_assgn_susi(AVD_CL_CB *c
        l_csi = si->list_of_csi;
        while (NULL !=  l_csi) {
                if (false == l_csi->assign_flag) {
-                       l_comp = su->list_of_comp;
                        /* Assign to only those comps, which have assignment. 
Those comps, which could not have assignment 
                           before, cann't find compcsi here also.*/
-                       while (l_comp != NULL) { 
+                       for (const auto& l_comp : su->list_of_comp) {
                                AVD_COMP_TYPE *comptype = 
comptype_db->find(Amf::to_string(&l_comp->saAmfCompType));
                                osafassert(comptype);
-                               if ((true == l_comp->assign_flag) && 
(comptype->saAmfCtCompCategory != SA_AMF_COMP_LOCAL)) {
+                               if ((true == l_comp->is_assigned()) && 
(comptype->saAmfCtCompCategory != SA_AMF_COMP_LOCAL)) {
                                        if (NULL != (cst = 
avd_compcstype_find_match(&l_csi->saAmfCSType, l_comp))) {
                                                if (SA_AMF_HA_ACTIVE == 
ha_state) {
                                                        if 
(cst->saAmfCompNumCurrActiveCSIs < cst->saAmfCompNumMaxActiveCSIs) {
                                                        } else { /* We cann't 
assign this csi to this comp, so check for another comp */
-                                                               l_comp = 
l_comp->su_comp_next;
                                                                continue ;
                                                        }
                                                } else {
                                                        if 
(cst->saAmfCompNumCurrStandbyCSIs < cst->saAmfCompNumMaxStandbyCSIs) {
                                                        } else { /* We cann't 
assign this csi to this comp, so check for another comp */
-                                                               l_comp = 
l_comp->su_comp_next;
                                                                continue ;
                                                        }
                                                }
                                                if ((compcsi = 
avd_compcsi_create(susi, l_csi, l_comp, true)) == NULL) {
                                                        /* free all the CSI 
assignments and end this loop */
                                                        avd_compcsi_delete(cb, 
susi, true);
-                                                       l_comp = 
l_comp->su_comp_next;
                                                        continue;
                                                }
                                                l_csi->assign_flag = true;
@@ -201,8 +197,7 @@ uint32_t avd_new_assgn_susi(AVD_CL_CB *c
                                                break;
                                        }/* if (NULL != (cst = 
avd_compcstype_find_match(&l_csi->saAmfCSType, l_comp))) */
                                }/* if (true == l_comp->assign_flag) */
-                               l_comp = l_comp->su_comp_next;
-                       }/* while (l_comp != NULL) */
+                       }/* for (const auto& l_comp : su->list_of_comp) */
                }/* if (false == l_csi->assign_flag)*/
                l_csi = l_csi->si_list_of_csi_next;
        }/* while (l_csi != NULL) */
diff --git a/osaf/services/saf/amf/amfd/su.cc b/osaf/services/saf/amf/amfd/su.cc
--- a/osaf/services/saf/amf/amfd/su.cc
+++ b/osaf/services/saf/amf/amfd/su.cc
@@ -54,7 +54,7 @@ void AVD_SU::initialize() {
        sg_of_su = NULL;
        su_on_node = NULL;
        list_of_susi = NULL;
-       list_of_comp = NULL;
+       list_of_comp = {};
        su_type = NULL;
        su_list_su_type_next = NULL; 
        name.length = 0;
@@ -85,7 +85,7 @@ void AVD_SU::remove_from_model() {
        /* All the components under this SU should have been deleted
         * by now, just do the sanity check to confirm it is done 
         */
-       osafassert(list_of_comp == NULL);
+       osafassert(list_of_comp.empty() == true);
        osafassert(list_of_susi == NULL);
 
        m_AVSV_SEND_CKPT_UPDT_ASYNC_RMV(avd_cb, this, AVSV_CKPT_AVD_SU_CONFIG);
@@ -117,47 +117,25 @@ int AVD_SU::hastate_assignments_count(Sa
 }
 
 void AVD_SU::remove_comp(AVD_COMP *comp) {
-       AVD_COMP *i_comp = NULL;
-       AVD_COMP *prev_comp = NULL;
        AVD_SU *su_ref = comp->su;
 
        osafassert(su_ref != NULL);
 
-       if (comp->su != NULL) {
-               /* remove COMP from SU */
-               i_comp = comp->su->list_of_comp;
-
-               while ((i_comp != NULL) && (i_comp != comp)) {
-                       prev_comp = i_comp;
-                       i_comp = i_comp->su_comp_next;
-               }
-
-               if (i_comp == comp) {
-                       if (prev_comp == NULL) {
-                               comp->su->list_of_comp = comp->su_comp_next;
-                       } else {
-                               prev_comp->su_comp_next = comp->su_comp_next;
-                       }
-
-                       comp->su_comp_next = NULL;
-                       /* Marking SU referance pointer to NULL, please dont 
use further in the routine */
-                       comp->su = NULL;
-               }
-       }
-
+       if (comp->su != nullptr) {
+       comp->su->list_of_comp.erase(std::remove(comp->su->list_of_comp.begin(),
+                                          comp->su->list_of_comp.end(), comp), 
comp->su->list_of_comp.end());
+  }
        bool old_preinst_value = saAmfSUPreInstantiable;
        bool curr_preinst_value = saAmfSUPreInstantiable;
 
        // check if preinst possibly is still true
        if (comp_is_preinstantiable(comp) == true) {
                curr_preinst_value = false;
-               i_comp = list_of_comp;
-               while (i_comp) {
+               for (const auto& i_comp : list_of_comp) {
                        if ((comp_is_preinstantiable(i_comp) == true) && 
(i_comp != comp)) {
                                curr_preinst_value = true;
                                break;
                        }
-                       i_comp = i_comp->su_comp_next;
                }
        }
 
@@ -174,37 +152,15 @@ void AVD_SU::remove_comp(AVD_COMP *comp)
 }
 
 void AVD_SU::add_comp(AVD_COMP *comp) {
-       AVD_COMP *i_comp = comp->su->list_of_comp;
-       AVD_COMP *prev_comp = NULL; 
-       bool found_pos= false;
-
-       while ((i_comp == NULL) || (comp->comp_info.inst_level >= 
i_comp->comp_info.inst_level)) {
-               while ((i_comp != NULL) && (comp->comp_info.inst_level == 
i_comp->comp_info.inst_level)) {
-
-                       if (m_CMP_HORDER_SANAMET(comp->comp_info.name, 
i_comp->comp_info.name) < 0){
-                               found_pos = true;
-                               break;
+       comp->su->list_of_comp.push_back(comp);
+       std::sort(comp->su->list_of_comp.begin(), comp->su->list_of_comp.end(), 
[] (const AVD_COMP *c1, const AVD_COMP *c2) -> bool {
+                       if (c1->comp_info.inst_level < 
c2->comp_info.inst_level) return true;
+                       if (c1->comp_info.inst_level == 
c2->comp_info.inst_level) {
+                               if (m_CMP_HORDER_SANAMET(c1->comp_info.name, 
c2->comp_info.name) < 0)
+                                       return true;
                        }
-                       prev_comp = i_comp;
-                       i_comp = i_comp->su_comp_next;
-                       if ((i_comp != NULL) && (i_comp->comp_info.inst_level > 
comp->comp_info.inst_level)) {
-                               found_pos = true;
-                               break;
-                       }
-
-               }
-               if (found_pos || (i_comp == NULL))
-                       break;
-               prev_comp = i_comp;
-               i_comp = i_comp->su_comp_next;
-       }
-       if (prev_comp == NULL) {
-               comp->su_comp_next = comp->su->list_of_comp;
-               comp->su->list_of_comp = comp;
-       } else {
-               prev_comp->su_comp_next = comp;
-               comp->su_comp_next = i_comp;
-       }
+                       return false;
+               });
 
        /* Verify if the SUs preinstan value need to be changed */
        if (comp_is_preinstantiable(comp) == true) {
@@ -804,7 +760,6 @@ void AVD_SU::set_readiness_state(SaAmfRe
        if (saAmfSuReadinessState == readiness_state)
                return;
 
-       AVD_COMP *comp = NULL;
        osafassert(readiness_state <= SA_AMF_READINESS_STOPPING);
        TRACE_ENTER2("'%s' %s", name.value,
                avd_readiness_state_name[readiness_state]);
@@ -819,8 +774,8 @@ void AVD_SU::set_readiness_state(SaAmfRe
 
        /* Since Su readiness state has changed, we need to change it for all 
the
         * component in this SU.*/
-       comp = list_of_comp;
-       while (comp != NULL) {
+
+       for (const auto& comp : list_of_comp) {
                SaAmfReadinessStateT saAmfCompReadinessState;
                if ((saAmfSuReadinessState == SA_AMF_READINESS_IN_SERVICE) &&
                                (comp->saAmfCompOperState == 
SA_AMF_OPERATIONAL_ENABLED)) {
@@ -832,7 +787,6 @@ void AVD_SU::set_readiness_state(SaAmfRe
                        saAmfCompReadinessState = 
SA_AMF_READINESS_OUT_OF_SERVICE;
 
                avd_comp_readiness_state_set(comp, saAmfCompReadinessState);
-               comp = comp->su_comp_next;
        }
 
        TRACE_LEAVE();
@@ -1028,7 +982,7 @@ void AVD_SU::unlock_instantiation(SaImmO
 
        TRACE_ENTER2("'%s'", name.value);
 
-       if (list_of_comp == NULL) {
+       if (list_of_comp.empty() == true) {
                report_admin_op_error(immoi_handle, invocation, 
SA_AIS_ERR_BAD_OPERATION, NULL,
                                "There is no component configured for SU 
'%s'.", name.value);
                goto done;
@@ -2057,12 +2011,7 @@ void AVD_SU::set_saAmfSUPreInstantiable(
  * resets the assign flag for all contained components
  */
 void AVD_SU::reset_all_comps_assign_flag() {
-       AVD_COMP *t_comp = list_of_comp;
-       // TODO(hafe) add and use a comp method
-       while (t_comp != NULL) {
-               t_comp->assign_flag = false;
-               t_comp = t_comp->su_comp_next;
-       }
+       std::for_each(list_of_comp.begin(), list_of_comp.end(), [](AVD_COMP 
*comp ) {comp->set_unassigned();});
 }
 
 /**
@@ -2071,20 +2020,20 @@ void AVD_SU::reset_all_comps_assign_flag
  * @return
  */
 AVD_COMP *AVD_SU::find_unassigned_comp_that_provides_cstype(const SaNameT 
*cstype) {
-       AVD_COMP *l_comp = list_of_comp;
-       while (l_comp != NULL) {
+       AVD_COMP *l_comp = nullptr;
+       for (const auto& comp : list_of_comp) {
+               l_comp = comp;
                bool npi_is_assigned = false;
                AVD_COMP_TYPE *comptype = 
comptype_db->find(Amf::to_string(&l_comp->saAmfCompType));
                osafassert(comptype);
                if ((comptype->saAmfCtCompCategory == SA_AMF_COMP_LOCAL) && 
is_comp_assigned_any_csi(l_comp))
                        npi_is_assigned = true;
                
-               if ((l_comp->assign_flag == false) && (npi_is_assigned == 
false)) {
+               if ((l_comp->is_assigned() == false) && (npi_is_assigned == 
false)) {
                        AVD_COMPCS_TYPE *cst = 
avd_compcstype_find_match(cstype, l_comp);
                        if (cst != NULL)
                                break;
                }
-               l_comp = l_comp->su_comp_next;
        }
 
        return l_comp;
@@ -2097,8 +2046,7 @@ AVD_COMP *AVD_SU::find_unassigned_comp_t
  */
 void AVD_SU::disable_comps(SaAisErrorT result)
 {
-       AVD_COMP *comp;
-       for (comp = list_of_comp; comp; comp = comp->su_comp_next) {
+       for (const auto& comp : list_of_comp) {
                comp->curr_num_csi_actv = 0;
                comp->curr_num_csi_stdby = 0;
                avd_comp_oper_state_set(comp, SA_AMF_OPERATIONAL_DISABLED);
@@ -2180,7 +2128,7 @@ SaAisErrorT AVD_SU::check_su_stability()
                rc = SA_AIS_ERR_BAD_OPERATION;
                goto done;
        }
-       for (AVD_COMP *comp = list_of_comp; comp; comp = comp->su_comp_next) {
+       for (const auto& comp : list_of_comp) {
                rc = check_comp_stability(comp);
                if (rc != SA_AIS_OK)
                        goto done;

------------------------------------------------------------------------------
Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to