static void _csi_fini (csi_t *ctx) { if (! ctx->finished) _csi_finish (ctx); if (ctx->free_array != NULL) csi_array_free (ctx, ctx->free_array); if (ctx->free_dictionary != NULL) csi_dictionary_free (ctx, ctx->free_dictionary); if (ctx->free_string != NULL) csi_string_free (ctx, ctx->free_string); _csi_slab_fini (ctx); _csi_perm_fini (ctx); }
static void _csi_fini (csi_t *ctx) { _csi_stack_fini (ctx, &ctx->ostack); _csi_stack_fini (ctx, &ctx->dstack); _csi_scanner_fini (ctx, &ctx->scanner); _csi_hash_table_fini (&ctx->strings); if (ctx->free_array != NULL) csi_array_free (ctx, ctx->free_array); if (ctx->free_dictionary != NULL) csi_dictionary_free (ctx, ctx->free_dictionary); if (ctx->free_string != NULL) csi_string_free (ctx, ctx->free_string); _csi_slab_fini (ctx); _csi_perm_fini (ctx); }