static void testValid(void) { int err; const char *src; DaDesc desc; DaStruct *da; desc.elements = 10; desc.bytesPerElement = 1; da = daCreate(&desc, &err); sput_fail_if(da == NULL, "Unable to create dynamic array."); sput_fail_if(daClear(da, &err, DA_FAST) != 0, "daClear should succeed if we clear fast"); sput_fail_if(err != DA_OK, "err != DA_OK"); sput_fail_if(da->used != 0, "daClear should reset the used counter"); src = "5555555555"; memcpy(da->firstAddr, src, 10); da->used = 10; sput_fail_if(daClear(da, &err, DA_SECURE) != 0, "daClear should succeed if we clear fast"); sput_fail_if(err != DA_OK, "err != DA_OK"); sput_fail_if(da->used != 0, "daClear should reset the used counter"); src = "0000000000"; sput_fail_if(memcmp(da->firstAddr, src, 10) != 0, "daClear in secure mode doesn't erase the array content"); daDestroy(da, &err); }
void destroyTechnology(void * data) { // Getting node. Node * n = (Node *) data; daDestroy(n -> edges, &free); // Getting technology. Technology * t = (Technology *) n -> data; if(t -> name != NULL) { free(t -> name); } if(t -> requires_resources != NULL) { iaDestroy(t -> requires_resources); } if(t -> provides_units != NULL) { iaDestroy(t -> provides_units); } free(t); free(n); }
IntArray * strSplitAndConvert(char delimiter, char * str, int (* function)(const char * data)) { // Auxiliary array. DynArray * array = strSplit(delimiter, str); // Failed. if(array == NULL) { return NULL; } // Create an array. IntArray * result = iaCreate(); for(int i = 0; i < array -> length; i++) { char * tmp = daGetByIndex(array, i); iaPrepend(result, function(tmp)); } // Free the auxiliary array. daDestroy(array, &free); // All done. return result; }
void lbmRendererShutdown() { daDestroy(&sUpdates, NULL); }