| 1635 | } |
| 1636 | |
| 1637 | void cbm_free_result(CBMFileResult *result) { |
| 1638 | if (!result) { |
| 1639 | return; |
| 1640 | } |
| 1641 | if (result->cached_tree) { |
| 1642 | ts_tree_delete(result->cached_tree); |
| 1643 | result->cached_tree = NULL; |
| 1644 | } |
| 1645 | for (int i = 0; i < result->owned_result_count; i++) { |
| 1646 | cbm_free_result(result->owned_results[i]); |
| 1647 | } |
| 1648 | free(result->owned_results); |
| 1649 | result->owned_results = NULL; |
| 1650 | result->owned_result_count = 0; |
| 1651 | cbm_arena_destroy(&result->arena); |
| 1652 | free(result); |
| 1653 | } |
| 1654 | |
| 1655 | void cbm_free_tree(CBMFileResult *result) { |
| 1656 | if (result && result->cached_tree) { |