On Nov 30, 2013, at 7:34 PM, Jed Brown <[email protected]> wrote:
> Barry Smith <[email protected]> writes: > >> I propose the following alternative: >> >> Remove the type arguments from PetscMalloc2-7() > > I'm happy to do this. I think I can almost entirely automate it. Cool, make it so. > > I agree that these functions are almost exclusively used internally, and > I think that every use in PETSc matches the types, so there is no point > keeping the old versions. > >> Add PetscMalloc1() >> >> Add PetscCalloc1() >> >> Use PetscCalloc1() to implement PetscNew() > > PetscCalloc1 *is* PetscNew. I would prefer "calloc" since it matches a > libc function that does the same thing, where as "new" conjures up > images of C++, where "new" only initializes non-POD types (which > includes std::complex<double>, but not struct {double real,imag;}). So > perhaps replace all uses of PetscNew with PetscCalloc1? PetscNew() is PetscCalloc1(1,&beasty); the original analogy with C++ was that it creates a struct and initializes it to zero entries. :-) I’d like to keep it. > > I wonder how many uses of PetscNew should have actually been PetscNewLog. I check and there are some that could be fixed. Barry
