Hi Nagu, I think it is good practice to use explicit for constructors taking one argument to avoid implicit conversions. If implicit conversions is needed it should be removed/Regards HansN
-----Original Message----- From: Nagendra Kumar [mailto:nagendr...@oracle.com] Sent: den 28 maj 2014 12:58 To: Hans Feldt; Hans Nordebäck Cc: opensaf-devel@lists.sourceforge.net Subject: RE: [devel] [PATCH 1 of 1] amfd: fix SU constructor [#713] Can you please share the advantage for using 'explicit' here: + explicit AVD_SU(const SaNameT *dn); Thanks -Nagu > -----Original Message----- > From: Hans Feldt [mailto:hans.fe...@ericsson.com] > Sent: 28 May 2014 13:16 > To: hans.nordeb...@ericsson.com > Cc: opensaf-devel@lists.sourceforge.net > Subject: [devel] [PATCH 1 of 1] amfd: fix SU constructor [#713] > > osaf/services/saf/amf/amfd/include/su.h | 2 +- > osaf/services/saf/amf/amfd/su.cc | 43 > ++++++++++++++++++-------------- > 2 files changed, 25 insertions(+), 20 deletions(-) > > > saAmfSUMaintenanceCampaign was not initialized properly thus causing > SMF campaigns to fail. While fixing that we align to "rule": > http://www.parashift.com/c++-faq/init-lists.html and initialize > attributes using the initialization list rather than assignment. > > 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 > @@ -93,7 +93,7 @@ class AVD_SU { > AVD_SU *su_list_su_type_next; > > AVD_SU() {}; > - AVD_SU(const SaNameT *dn); > + explicit AVD_SU(const SaNameT *dn); > ~AVD_SU() {}; > void set_su_failover(bool value); > void dec_curr_stdby_si(); > 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 > @@ -32,27 +32,32 @@ > > AmfDb<AVD_SU> *su_db = NULL; > > -AVD_SU::AVD_SU(const SaNameT *dn) { > +AVD_SU::AVD_SU(const SaNameT *dn): > + saAmfSURank(0), > + saAmfSUFailover(false), > + saAmfSUFailover_configured(false), > + saAmfSUPreInstantiable(static_cast<SaBoolT>(false)), > + saAmfSUOperState(SA_AMF_OPERATIONAL_DISABLED), > + > saAmfSuReadinessState(SA_AMF_READINESS_OUT_OF_SERVICE), > + > saAmfSUPresenceState(SA_AMF_PRESENCE_UNINSTANTIATED), > + saAmfSUNumCurrActiveSIs(0), > + saAmfSUNumCurrStandbySIs(0), > + saAmfSURestartCount(0), > + term_state(false), > + su_switch(AVSV_SI_TOGGLE_STABLE), > + su_is_external(false), > + sg_of_su(NULL), > + su_on_node(NULL), > + list_of_susi(NULL), > + list_of_comp(NULL), > + sg_list_su_next(NULL), > + avnd_list_su_next(NULL), > + su_type(NULL), > + su_list_su_type_next(NULL) { > + > memcpy(name.value, dn->value, sizeof(name.value)); > name.length = dn->length; > - saAmfSUFailover = false; > - term_state = false; > - su_switch = AVSV_SI_TOGGLE_STABLE; > - saAmfSUPreInstantiable = static_cast<SaBoolT>(false); > - saAmfSUOperState = SA_AMF_OPERATIONAL_DISABLED; > - saAmfSUPresenceState = SA_AMF_PRESENCE_UNINSTANTIATED; > - saAmfSuReadinessState = SA_AMF_READINESS_OUT_OF_SERVICE; > - saAmfSUNumCurrActiveSIs = 0; > - saAmfSUNumCurrStandbySIs = 0; > - su_is_external = false; > - sg_of_su = NULL; > - su_on_node = NULL; > - list_of_susi = NULL; > - list_of_comp = NULL; > - sg_list_su_next = NULL; > - avnd_list_su_next = NULL; > - su_type = NULL; > - su_list_su_type_next = NULL; > + saAmfSUMaintenanceCampaign.length = 0; > saAmfSUHostedByNode.length = 0; > pend_cbk.invocation = 0; > pend_cbk.admin_oper = (SaAmfAdminOperationIdT)0; > > ---------------------------------------------------------------------- > -------- Time is money. Stop wasting it! Get your web API in 5 > minutes. > www.restlet.com/download > http://p.sf.net/sfu/restlet > _______________________________________________ > Opensaf-devel mailing list > Opensaf-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/opensaf-devel ------------------------------------------------------------------------------ Time is money. Stop wasting it! Get your web API in 5 minutes. www.restlet.com/download http://p.sf.net/sfu/restlet _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel