# PetscHeaderDestroy

Final step in destroying a PetscObject

### Synopsis

    #define PetscHeaderDestroy(h) \
      (PetscLogObjectDestroy((PetscObject)(h)) || \
       PetscHeaderDestroy_Private((PetscObject)(h)) || \
       PetscFree(h))

    /* ---------------------------------------------------------------------------------------*/

    #if !defined(PETSC_USE_DEBUG)

    #define PetscValidHeaderSpecific(h,ck,arg)
    #define PetscValidHeader(h,arg)
    #define PetscValidPointer(h,arg)
    #define PetscValidCharPointer(h,arg)
    #define PetscValidIntPointer(h,arg)
    #define PetscValidScalarPointer(h,arg)

    #elif !defined(PETSC_HAVE_CRAY90_POINTER)
    /*
        Macros to test if a PETSc object is valid and if pointers are
    valid

    */
    #define PetscValidHeaderSpecific(h,ck,arg)                                            \

### Input Parameters

h -the header created with PetscHeaderCreate()

### See Also

PetscHeaderCreate()

Level:developer
Location: include/private/petscimpl.h
Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages