static int crfsuite_train_release(crfsuite_trainer_t* self) { int count = crfsuite_interlocked_decrement(&self->nref); if (count == 0) { crfsuite_train_delete(self); } return count; }
static int model_release(crfsuite_model_t* model) { int count = crfsuite_interlocked_decrement(&model->nref); if (count == 0) { /* This instance is being destroyed. */ model_internal_t* internal = (model_internal_t*)model->internal; crf1dt_delete((crf1dt_t*)internal->tagger->internal); free(internal->tagger); free(internal->labels); free(internal->attrs); crf1dm_close(internal->crf1dm); free(internal); free(model); } return count; }