static void _cleanup(doeE env, doeObject o) { dcPathFiller pf = (dcPathFiller)o; dcPathFillerData* p = (dcPathFillerData*)o; doeObject po; (*pf)->reset(env, pf); po = (doeObject)(p->runsBuilder); if (po != NULL) { (*po)->_cleanup(env, po); doeMem_free(env, po); } po = (doeObject)(p->fastOutputPC); if (po != NULL) { (*po)->_cleanup(env, po); doeMem_free(env, po); } dcPool_destroy(env, p->poolRun); dcPool_destroy(env, p->poolLeftSide); if (p->xt != NULL) doeMem_free(env, p->xt); if (p->yt != NULL) doeMem_free(env, p->yt); BASE__cleanup(env, o); }
static void PC__cleanup(doeE env, doeObject o) { CJPCData* p = (CJPCData*)o; JNIEnv* jenv = (JNIEnv*)doeE_getPCtxt(env); BASE__cleanup(env, o); (*jenv)->DeleteGlobalRef(jenv, p->jpc); }
static void FastOutputPC_init(doeE env, dcPathConsumer target) { FastOutputPCData* p = (FastOutputPCData*)target; BASE_init(env, target); if (doeError_occurred(env)) { BASE__cleanup(env, target); return; } *target = (dcPathConsumerFace*)&FastOutputPCClass; }
static void RunsBuilder_init(doeE env, dcPathConsumer target, dcPathFillerData* pfp) { RunsBuilderData* p = (RunsBuilderData*)target; BASE_init(env, target); if (doeError_occurred(env)) { BASE__cleanup(env, target); return; } *target = &RunsBuilderClass; p->pfp = pfp; }
static void RunsBuilder__cleanup(doeE env, doeObject o) { BASE__cleanup(env, o); }
static void FastOutputPC__cleanup(doeE env, doeObject o) { BASE__cleanup(env, o); }