static void Zoltan_Free_Zoltan_Struct_Members(ZZ *zz) { Zoltan_Free_Machine_Desc(&(zz->Machine_Desc)); Zoltan_Free_Params(&(zz->Params)); Zoltan_Timer_Destroy(&(zz->ZTime)); Zoltan_Free_Structures(zz); /* Algorithm-specific structures */ Zoltan_LB_Free_Struct(&(zz->LB)); Zoltan_Order_Free_Struct(&(zz->Order)); }
int Zoltan_Copy_Params(PARAM_LIST **to, PARAM_LIST const *from) { PARAM_LIST *param; PARAM_LIST *prev; if (*to != NULL) { Zoltan_Free_Params(to); } prev = NULL; while (from) { param = (PARAM_LIST *) ZOLTAN_MALLOC(sizeof(PARAM_LIST)); if (param == NULL) { Zoltan_Free_Params(to); return ZOLTAN_MEMERR; } param->name = Zoltan_Strdup(from->name); param->new_val = Zoltan_Strdup(from->new_val); param->index = from->index; param->next = NULL; if (prev){ prev->next = param; } from = from->next; prev = param; if (*to == NULL){ *to = param; } } return ZOLTAN_OK; }