I really like "const" usage, but isn't this too much?

Lisandro Dalcin dalcinl at gmail.com
Wed Dec 3 19:37:20 CST 2008


On Wed, Dec 3, 2008 at 9:17 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>   That is wierd; it seems strange that it would even compile.

OK, I'll try to review all this tomorrow, there are some other weird
Vec calls with such "const".

>    BTW: I think your new change
> 7 - v->unplacedarray = v->array; /* save previous array so reset can bring
> it back */ 8
> - v->array = (PetscScalar *)a; 9 +
>  if (a) { 10 + v->unplacedarray = v->array; /* save previous array so reset
> can bring it back */ 11
> + v->array = (PetscScalar *)a; 12 + }
> is TOTALLY wrong.

You see, I should never push before commenting :-(

> It is perfectly legitimate to place null arrays and one
> wants
> them to behave just like regular place arrays (saving the previous array).

What's the use case? This is used internally in PETSc? I do not remember...

> Why did you make this change and what was wrong with the way it was?

Do you mean that it is legitimate taht if a user makes the nasty bug
of calling VecPlaceArray(x,ptr) with ptr being NULL, then next he/she
will get a nasty segfault when calling Vec operations (let say,
VecMax()) ???

Barry, feel free to revert the changeset. Anyway, please let me know
the rationale for this "feature", I still do not get it...


>
>  Barry
>
>
> On Dec 3, 2008, at 4:45 PM, Lisandro Dalcin wrote:
>
>> VecPlaceArray(Vec vec,const PetscScalar array[])
>> VecReplaceArray(Vec vec,const PetscScalar array[])
>>
>> --
>> Lisandro Dalcín
>> ---------------
>> Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
>> Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
>> Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
>> PTLC - Güemes 3450, (3000) Santa Fe, Argentina
>> Tel/Fax: +54-(0)342-451.1594
>>
>
>



-- 
Lisandro Dalcín
---------------
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594




More information about the petsc-dev mailing list