# HG changeset patch # User Nina Engelhardt # Date 1324474131 -3600 # Node ID 9c577efe70cd43c7557ace913583503cd6c21153 # Parent ef1712d6d7d8374aa899135c23c25a7917e74854 added random access and free diff -r ef1712d6d7d8 -r 9c577efe70cd ListOfArrays.c --- a/ListOfArrays.c Tue Dec 20 18:52:57 2011 +0100 +++ b/ListOfArrays.c Wed Dec 21 14:28:51 2011 +0100 @@ -5,8 +5,7 @@ ListOfArrays* makeListOfArrays(size_t entry_size, int num_entries_per_block){ ListOfArrays* newLoA = (ListOfArrays*) VMS__malloc(sizeof(ListOfArrays)); newLoA->dim1info = makePrivDynArrayOfSize(&(newLoA->dim1),8); - - + newLoA->entry_size = entry_size; newLoA->num_entries_per_fragment = num_entries_per_block; newLoA->next_free_index = 0; @@ -31,6 +30,11 @@ } } +void freeListOfArrays(ListOfArrays* list){ + freeDynArrayDeep(list->dim1info,&VMS__free); + VMS__free((void*)list); +} + /* void addToListOfArraysDependency(Dependency value, ListOfArrays* list){ int offset_in_fragment = list->next_free_index % list->num_entries_per_fragment; diff -r ef1712d6d7d8 -r 9c577efe70cd ListOfArrays.h --- a/ListOfArrays.h Tue Dec 20 18:52:57 2011 +0100 +++ b/ListOfArrays.h Wed Dec 21 14:28:51 2011 +0100 @@ -47,9 +47,9 @@ void forAllInListOfArraysDo(ListOfArrays* list, ListOfArraysFnPtr fnPtr); -#define getValuefromListOfArrays(type,index,list) +#define valueInListOfArrays(type,index,list) ((type*)((list->dim1)[index / list->num_entries_per_fragment]))[index % list->num_entries_per_fragment] -#define setValueInListOfArrays(type,index,value,list) +#define setValueInListOfArrays(type,index,value,list) ((type*)((list->dim1)[index / list->num_entries_per_fragment]))[index % list->num_entries_per_fragment] = value #endif /* LISTOFARRAYS_H */