diff --git a/src/arkode/arkode.c b/src/arkode/arkode.c index 48b1cc995a..28f73d609b 100644 --- a/src/arkode/arkode.c +++ b/src/arkode/arkode.c @@ -1119,6 +1119,7 @@ void arkFree(void **arkode_mem) if (ark_mem->hadapt_mem != NULL) { if (ark_mem->hadapt_mem->owncontroller) { (void) SUNAdaptController_Destroy(ark_mem->hadapt_mem->hcontroller); + ark_mem->hadapt_mem->owncontroller = SUNFALSE; } free(ark_mem->hadapt_mem); ark_mem->hadapt_mem = NULL; diff --git a/src/arkode/arkode_arkstep_io.c b/src/arkode/arkode_arkstep_io.c index c36febb152..58a5b6ce01 100644 --- a/src/arkode/arkode_arkstep_io.c +++ b/src/arkode/arkode_arkstep_io.c @@ -502,6 +502,7 @@ int ARKStepSetOptimalParams(void *arkode_mem) } if (hadapt_mem->owncontroller) { retval = SUNAdaptController_Destroy(hadapt_mem->hcontroller); + ark_mem->hadapt_mem->owncontroller = SUNFALSE; if (retval != SUNADAPTCONTROLLER_SUCCESS) { arkProcessError(ark_mem, ARK_MEM_FAIL, "ARKODE", "ARKStepSetOptimalParams", "SUNAdaptController_Destroy failure"); diff --git a/src/arkode/arkode_erkstep_io.c b/src/arkode/arkode_erkstep_io.c index 23483a956c..6c1b71a851 100644 --- a/src/arkode/arkode_erkstep_io.c +++ b/src/arkode/arkode_erkstep_io.c @@ -294,6 +294,7 @@ int ERKStepSetDefaults(void* arkode_mem) } if (ark_mem->hadapt_mem->owncontroller) { retval = SUNAdaptController_Destroy(ark_mem->hadapt_mem->hcontroller); + ark_mem->hadapt_mem->owncontroller = SUNFALSE; if (retval != SUNADAPTCONTROLLER_SUCCESS) { arkProcessError(ark_mem, ARK_MEM_FAIL, "ARKODE", "ERKStepSetDefaults", "SUNAdaptController_Destroy failure");