void __r_array_tests () { printf("Running __r_array_tests()...\n"); printf("tests (1)\n"); r_array_t *array = r_array_new(3, R_ARRAY_DEFAULT); assert(array->maxlen == 3); assert(array->len == 0); printf("tests (2)\n"); r_array_append(array, "0"); r_array_append(array, "1"); r_array_append(array, "2"); assert(array->maxlen == 3); assert(array->len == 3); printf("tests (3)\n"); r_array_append(array, "3"); assert(array->maxlen == 4); assert(array->len == 4); printf("tests (4)\n"); r_array_replace(array, 2, "2.0"); r_array_insert(array, 3, "2.5"); assert(array->maxlen == 5); assert(array->len == 5); printf("tests (5)\n"); r_array_insert(array, 0, "-1"); assert(array->maxlen == 6); assert(array->len == 6); printf("tests (6)\n"); r_array_insert(array, 5, "2.75"); assert(array->maxlen == 7); assert(array->len == 7); assert(strcmp(array->items[array->len - 1], "3") == 0); printf("tests (7)\n"); for (int i=0; i < array->len; i++) { printf("r_array_t array[%d]: '%s'\n", i, array->items[i]); } printf("tests (8)\n"); r_array_destroy(array); array = NULL; printf("tests (9)\n"); r_array_t *array_of_heapitems = r_array_new(3, R_ARRAY_DEALLOCATE_ITEMS); char *str = "abc"; r_array_append(array_of_heapitems, strdup(str)); r_array_append(array_of_heapitems, strdup(str)); assert(array_of_heapitems->len == 2); assert(array_of_heapitems->maxlen == 3); printf("tests (10)\n"); r_array_destroy(array_of_heapitems); array_of_heapitems = NULL; }
void rex_compiler_destroy(rexcompiler_t *co) { if (co) { r_array_destroy(co->stack); r_array_destroy(co->temptrans); r_free(co); } }
void rex_state_cleanup(robject_t *obj) { rexstate_t *state = (rexstate_t*) obj; r_array_destroy(state->trans); r_array_destroy(state->etrans); r_array_destroy(state->subset); r_object_cleanup(obj); }
void rex_dfasimulator_destroy(rex_dfasimulator_t *si) { if (si) { r_array_destroy(si->accepts); r_free(si); } }
void rex_fragment_destroy(rexfragment_t *frag) { if (frag) r_array_destroy(frag->dangling); r_free(frag); }