There is a memory leak when destroying an IS object created with
ISConcatenate function.
The leak can be reproduced with code below.
Cheers,
Michael Souza
------------------------------------------------------------------
static char help[] = "Memory leak in ISConcatenate function\n\n";
#include <petscksp.h>
#include "matblock.h"
int main(int argc, char **args) {
PetscErrorCode ierr;
IS isa, isb, isc;
ierr = PetscInitialize(&argc, &args, (char *) 0, help); CHKERRQ(ierr);
ierr = ISCreateStride(PETSC_COMM_WORLD,2,0,1,&isa); CHKERRQ(ierr);
ierr = ISCreateStride(PETSC_COMM_WORLD,2,2,1,&isb); CHKERRQ(ierr);
IS isarray[] = {isa, isb};
ierr = ISConcatenate(PETSC_COMM_WORLD,2,isarray,&isc); CHKERRQ(ierr);
ierr = ISDestroy(&isa); CHKERRQ(ierr);
ierr = ISDestroy(&isb); CHKERRQ(ierr);
ierr = ISDestroy(&isc); CHKERRQ(ierr);
ierr = PetscFinalize(); CHKERRQ(ierr);
PetscFunctionReturn(0);
}
------------------------------------------------------------------