Thanks Lennart,

I will add this before pushing code.

Regards,
Canh.

-----Original Message-----
From: Lennart Lund [mailto:lennart.l...@ericsson.com] 
Sent: Tuesday, October 11, 2016 8:51 PM
To: Canh Van Truong; Vu Minh Nguyen; mahesh.va...@oracle.com
Cc: opensaf-devel@lists.sourceforge.net
Subject: RE: [PATCH 1 of 1] log: fix cppcheck with performance severity
[#1975]

Hi Canh,

Ack with comment

1)
Why not initialize all variables in the structs in initialization list? At
least for the lists where some variables are. More consistent
Example:
struct file_communicate {
  bool request_f; /* True if pending request */
  bool answer_f;  /* True if pending answer */
  bool timeout_f; /* True if API has got a timeout. Thread shall not answer
*/
  lgsf_treq_t request_code;       /* Request code from API */
  int return_code;        /* Return code from handlers */
  void *indata_ptr;       /* In-parameters for handlers */
  size_t outdata_size;
  void *outdata_ptr;      /* Out data from handlers */

  file_communicate() : request_code(LGSF_NOREQ)
  {
    answer_f = false;
    request_f = false;
    timeout_f = false;
    return_code = LGSF_NORETC;
    indata_ptr = NULL;
    outdata_ptr = NULL;
    outdata_size = 0;
  }
};

Could be initialized as:

struct file_communicate {
  bool request_f; /* True if pending request */
  bool answer_f;  /* True if pending answer */
  bool timeout_f; /* True if API has got a timeout. Thread shall not answer
*/
  lgsf_treq_t request_code;       /* Request code from API */
  int return_code;        /* Return code from handlers */
  void *indata_ptr;       /* In-parameters for handlers */
  size_t outdata_size;
  void *outdata_ptr;      /* Out data from handlers */

  file_communicate() :
    request_f(false),
    answer_f(false),
    timeout_f(false),
    request_code(LGSF_NOREQ),
    return_code(LGSF_NORETC),
    indata_ptr(NULL),
    outdata_size(0),
    outdata_ptr(NULL)
  {  }
};


> -----Original Message-----
> From: Canh Van Truong [mailto:canh.v.tru...@dektech.com.au]
> Sent: den 31 augusti 2016 10:49
> To: Vu Minh Nguyen <vu.m.ngu...@dektech.com.au>; Lennart Lund 
> <lennart.l...@ericsson.com>; mahesh.va...@oracle.com
> Cc: opensaf-devel@lists.sourceforge.net
> Subject: [PATCH 1 of 1] log: fix cppcheck with performance severity 
> [#1975]
> 
>  osaf/services/saf/logsv/lgs/lgs_config.cc |  35
++++++++++++------------------
>  osaf/services/saf/logsv/lgs/lgs_file.cc   |   4 +-
>  2 files changed, 16 insertions(+), 23 deletions(-)
> 
> 
> Fix performance reported by cppcheck.
> 
> diff --git a/osaf/services/saf/logsv/lgs/lgs_config.cc
> b/osaf/services/saf/logsv/lgs/lgs_config.cc
> --- a/osaf/services/saf/logsv/lgs/lgs_config.cc
> +++ b/osaf/services/saf/logsv/lgs/lgs_config.cc
> @@ -137,32 +137,25 @@ typedef struct _lgs_conf_t {
>    lgs_conf_flg_t logDataGroupname_cnfflag;
>    lgs_conf_flg_t logStreamFileFormat_cnfflag;
> 
> -  _lgs_conf_t() {
> -    /*
> -     * For the following flags, LGS_CNF_DEF means that no external
> -     * configuration exists and the corresponding attributes hard-coded
> -     * default value is used.Is set to false if configuration is found in
> -     * IMM object or environment variable.
> -     * See function lgs_logconf_get() for more info.
> -     */
> +  _lgs_conf_t()
> +  : logRootDirectory(lgs_conf_def.logRootDirectory),
> +    logRootDirectory_cnfflag(LGS_CNF_DEF),
> +    logMaxLogrecsize_cnfflag(LGS_CNF_DEF),
> +    logStreamSystemHighLimit_cnfflag(LGS_CNF_DEF),
> +    logStreamSystemLowLimit_cnfflag(LGS_CNF_DEF),
> +    logStreamAppHighLimit_cnfflag(LGS_CNF_DEF),
> +    logStreamAppLowLimit_cnfflag(LGS_CNF_DEF),
> +    logMaxApplicationStreams_cnfflag(LGS_CNF_DEF),
> +    logFileIoTimeout_cnfflag(LGS_CNF_DEF),
> +    logFileSysConfig_cnfflag(LGS_CNF_DEF),
> +    logDataGroupname_cnfflag(LGS_CNF_DEF),
> +    logStreamFileFormat_cnfflag(LGS_CNF_DEF)
> +  {
>      OpenSafLogConfig_object_exist = false;
> -    logRootDirectory_cnfflag = LGS_CNF_DEF;
> -    logStreamSystemHighLimit_cnfflag = LGS_CNF_DEF;
> -    logStreamSystemLowLimit_cnfflag = LGS_CNF_DEF;
> -    logStreamAppHighLimit_cnfflag = LGS_CNF_DEF;
> -    logStreamAppLowLimit_cnfflag = LGS_CNF_DEF;
> -    logDataGroupname_cnfflag = LGS_CNF_DEF;
>      /*
>       * The following attributes cannot be configured in the config file
>       * Will be set to false if the attribute exists in the IMM config
object
>       */
> -    logMaxLogrecsize_cnfflag = LGS_CNF_DEF;
> -    logMaxApplicationStreams_cnfflag = LGS_CNF_DEF;
> -    logFileIoTimeout_cnfflag = LGS_CNF_DEF;
> -    logFileSysConfig_cnfflag = LGS_CNF_DEF;
> -    logStreamFileFormat_cnfflag = LGS_CNF_DEF;
> -
> -    logRootDirectory = lgs_conf_def.logRootDirectory;
>      (void) strcpy(logDataGroupname, lgs_conf_def.logDataGroupname);
>      (void) strcpy(logStreamFileFormat, lgs_conf_def.logStreamFileFormat);
>      logMaxLogrecsize = lgs_conf_def.logMaxLogrecsize; diff --git 
> a/osaf/services/saf/logsv/lgs/lgs_file.cc
> b/osaf/services/saf/logsv/lgs/lgs_file.cc
> --- a/osaf/services/saf/logsv/lgs/lgs_file.cc
> +++ b/osaf/services/saf/logsv/lgs/lgs_file.cc
> @@ -51,11 +51,11 @@ struct file_communicate {
>    size_t outdata_size;
>    void *outdata_ptr;      /* Out data from handlers */
> 
> -  file_communicate() {
> +  file_communicate() : request_code(LGSF_NOREQ)  {
>      answer_f = false;
>      request_f = false;
>      timeout_f = false;
> -    request_code = LGSF_NOREQ;
>      return_code = LGSF_NORETC;
>      indata_ptr = NULL;
>      outdata_ptr = NULL;


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to