void ray_del(t_ray *rayon) { if (rayon) { vector_del(rayon->o); vector_del(rayon->d); free(rayon); rayon = NULL; } }
void plan_del(t_plan *plan) { if (plan) { vector_del(plan->normal); free(plan); plan = NULL; } }
int test_run (void) { SCL_vector_t vector; SCL_iterator_t iterator; void* data; int stat; int i; printf ("Create vector: "); fflush (stdout); vector = vector_new(); printf ("(%p = vector_new()) != NULL ... ", vector); fflush (stdout); printf ("%s\n", ((vector!=NULL) ? "PASS" : "FAIL")); printf ( "(%ld = vector_size (vector)) == 0 ..................... %s\n", vector_size(vector), ((vector_size(vector)==0) ? "PASS" : "FAIL") ); printf ( "(%ld = vector_count (vector)) == 0 .................... %s\n", vector_count(vector), ((vector_count(vector)==0) ? "PASS" : "FAIL") ); printf ("Push data in back vector.\n"); for (i=0 ; i<VECTOR_SIZE ; i++) { stat = vector_push_back (vector, (void*)g_data1[i]); printf ( "[%d,%s] = vector_push_back (vector, %08X) .... %s\n", stat, scl_statstr(stat), g_data1[i], ((stat==SCL_OK) ? "PASS" : "FAIL") ); } printf ("Iterate back through vector, changing data.\n"); for (i=7, iterator=vector_end(vector) ; iterator!=NULL ; iterator=vector_prev(iterator)) { data = vector_data_get (iterator); printf ( "%08X = vector_data_get (iterator=>%p) .... %s\n", data, iterator, (((unsigned long)data==g_data1[--i]) ? "PASS" : "FAIL") ); vector_data_set (iterator, iterator); printf ("%08X -> %08X\n", data, vector_data_get(iterator)); } printf ( "(%ld = vector_size (vector)) == 16 ................... %s\n", vector_size(vector), ((vector_size(vector)==16) ? "PASS" : "FAIL") ); printf ( "(%ld = vector_count (vector)) == 7 .................... %s\n", vector_count(vector), ((vector_count(vector)==7) ? "PASS" : "FAIL") ); printf ("Foreach on vector.\n"); for (i=0 ; i<VECTOR_SIZE ; i++) g_flag[i] = 0; g_vector = vector; vector_foreach (vector, cbfn, NULL); printf ("Erase vector.\n"); vector_erase (vector); printf ( "(%ld = vector_size (vector)) == 0 ..................... %s\n", vector_size(vector), ((vector_size(vector)==0) ? "PASS" : "FAIL") ); printf ( "(%ld = vector_count (vector)) == 0 .................... %s\n", vector_count(vector), ((vector_count(vector)==0) ? "PASS" : "FAIL") ); printf ("Delete vector.\n"); vector_del (vector); printf ("\n"); return 0; }
void vector_clear_del(vector_t *v, void (*df)(void *)) { assert(v); vector_clear(v, df); vector_del(v); }