[petsc-dev] is this wrong?

Mark Adams mfadams at lbl.gov
Mon Nov 6 08:25:22 CST 2017


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);
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20171106/de04d243/attachment.html>


More information about the petsc-dev mailing list