[petsc-dev] MatNullSpaceDestroy

Lisandro Dalcin dalcinl at gmail.com
Thu Mar 24 11:28:01 CDT 2011


On 23 March 2011 20:09, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> On Mar 23, 2011, at 5:58 PM, Lisandro Dalcin wrote:
>
>> Are you going to rename MatNullSpaceDestroy -> MatNullSpaceDestroy_
>> and add the backward compatibility #define? Changeset 1a6f5fc1c27b
>> broke petsc4py...
>
>   No, it was changed to the &object paradigm.
>
>   Basically what is happening now is that commonly used destroys are changed with the _ paradigm
>
>   Uncommonly used destroy are fixed to use the &object paradigm.
>
>   Don't like the fact that there are two paradigms well I could change everything to & immediately :-(
>

Barry, whatever you want to do, please be consistent :-)... The lines
below are from MatNullSpaceCrete

  /* cannot use MatNullSpaceDestroy() as generic destroy function
because it takes pointer to the object */
  ierr = PetscHeaderCreate(sp,_p_MatNullSpace,int,MAT_NULLSPACE_CLASSID,0,"MatNullSpace",comm,0,0);CHKERRQ(ierr);

So now MatNullSpace instances cannot be freed with
PetscObjectDestroy()... This change broke bad petsc4py Python+PETSc
refcounting management. BTW, PetscObjectDestroy() does not take a
pointer... And IMHO PetscHeaderDestroy should also take a pointer...

Barry, please, just reconsider this and make MatNullSpaceDestroy
follow the same pattern as Object, IS, Vec, Mat, etc.

PS: I still think all this is going to be a mess... now one commented
about my previous proposal about a compatibility header. what's wrong
with that?

-- 
Lisandro Dalcin
---------------
CIMEC (INTEC/CONICET-UNL)
Predio CONICET-Santa Fe
Colectora RN 168 Km 472, Paraje El Pozo
3000 Santa Fe, Argentina
Tel: +54-342-4511594 (ext 1011)
Tel/Fax: +54-342-4511169



More information about the petsc-dev mailing list