[petsc-dev] is this wrong?
Lisandro Dalcin
dalcinl at gmail.com
Mon Nov 6 08:39:07 CST 2017
Did you mean
*flg = currentvalue;
?
On 6 November 2017 at 17:25, Mark Adams <mfadams at lbl.gov> wrote:
> This code looks wrong. I get a valgrind warning if the option is not set. I
> think this code should be added.
>
> PetscErrorCode PetscOptionsBool_Private(PetscOptionItems
> *PetscOptionsObject,const char opt[],const char text[],const char
> man[],PetscBool currentvalue,PetscBool *flg,PetscBool *set)
> {
> PetscErrorCode ierr;
> PetscBool iset;
> PetscOptionItem amsopt;
>
> PetscFunctionBegin;
> if (!PetscOptionsObject->count) {
> ierr =
> PetscOptionItemCreate_Private(PetscOptionsObject,opt,text,man,OPTION_BOOL,&amsopt);CHKERRQ(ierr);
> ierr = PetscMalloc(sizeof(PetscBool),&amsopt->data);CHKERRQ(ierr);
>
> *(PetscBool*)amsopt->data = currentvalue;
> }
> flg = currentvalue;
> ierr =
> PetscOptionsGetBool(PetscOptionsObject->options,PetscOptionsObject->prefix,opt,flg,&iset);CHKERRQ(ierr);
> if (set) *set = iset;
> if (PetscOptionsObject->printhelp && PetscOptionsObject->count == 1 &&
> !PetscOptionsObject->alreadyprinted) {
> const char *v = PetscBools[currentvalue];
> ierr = (*PetscHelpPrintf)(PetscOptionsObject->comm," -%s%s: <%s> %s
> (%s)\n",PetscOptionsObject->prefix?PetscOptionsObject->prefix:"",opt+1,v,text,ManSection(man));CHKERRQ(ierr);
> }
> PetscFunctionReturn(0);
> }
>
--
Lisandro Dalcin
============
Research Scientist
Computer, Electrical and Mathematical Sciences & Engineering (CEMSE)
Extreme Computing Research Center (ECRC)
King Abdullah University of Science and Technology (KAUST)
http://ecrc.kaust.edu.sa/
4700 King Abdullah University of Science and Technology
al-Khawarizmi Bldg (Bldg 1), Office # 0109
Thuwal 23955-6900, Kingdom of Saudi Arabia
http://www.kaust.edu.sa
Office Phone: +966 12 808-0459
More information about the petsc-dev
mailing list