# HG changeset patch # User Sean Halle # Date 1379660532 25200 # Node ID 6386ae5cc7707ccfae4d3520522135e25d43f154 # Parent 7731a4d31baa8cd971185eca5ec01950184b674b Updated include paths diff -r 7731a4d31baa -r 6386ae5cc770 ListOfArrays.c --- a/ListOfArrays.c Tue Jul 23 07:30:42 2013 -0700 +++ b/ListOfArrays.c Fri Sep 20 00:02:12 2013 -0700 @@ -1,6 +1,6 @@ -#include "ListOfArrays.h" -#include "PR__common_includes/Services_Offered_by_PR/Memory_Handling/vmalloc__wrapper_library.h" +#include +#include ListOfArrays* makeListOfArrays(size_t entry_size, int num_entries_per_block){ ListOfArrays* newLoA = (ListOfArrays*) PR__malloc(sizeof(ListOfArrays)); diff -r 7731a4d31baa -r 6386ae5cc770 ListOfArrays.h --- a/ListOfArrays.h Tue Jul 23 07:30:42 2013 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* - * File: ListOfArrays.h - * Author: Nina Engelhardt - * - * Created on December 16, 2011, 2:06 PM - */ - -#ifndef _LISTOFARRAYS_H -#define _LISTOFARRAYS_H - -#include -#include - -#include "PR__common_includes/PR__primitive_data_types.h" -#include "DynArray/DynArray.h" - - -typedef struct { - void* next; - void* data; -} ArrayFragment; - -typedef struct { - void** dim1; - PrivDynArrayInfo* dim1info; - //ArrayFragment* last; - size_t entry_size; - int num_entries_per_fragment; - int next_free_index; -} ListOfArrays; - -ListOfArrays* makeListOfArrays(size_t entry_size, int num_entries_per_block); - -#define addToListOfArrays(type,value,list) do { \ - int offset_in_fragment = list->next_free_index % list->num_entries_per_fragment; \ - if(offset_in_fragment == 0){ \ - void* newBlock = PR__malloc(list->entry_size * list->num_entries_per_fragment); \ - addToDynArray(newBlock,list->dim1info); \ - } \ - type* typedFragment = (type*) ((list->dim1)[list->dim1info->numInArray -1]); \ - typedFragment[offset_in_fragment] = value; \ - list->next_free_index++; \ -} while (0) - -#define addToListOfArrays_ext(type,value,list) do { \ - int offset_in_fragment = list->next_free_index % list->num_entries_per_fragment; \ - if(offset_in_fragment == 0){ \ - void* newBlock = malloc(list->entry_size * list->num_entries_per_fragment); \ - addToDynArray(newBlock,list->dim1info); \ - } \ - type* typedFragment = (type*) ((list->dim1)[list->dim1info->numInArray -1]); \ - typedFragment[offset_in_fragment] = value; \ - list->next_free_index++; \ -} while (0) - -typedef void (*ListOfArraysFnPtr) ( void * ); //fn has to cast void * - -void forAllInListOfArraysDo(ListOfArrays* list, ListOfArraysFnPtr fnPtr); - -#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) ((type*)((list->dim1)[index / list->num_entries_per_fragment]))[index % list->num_entries_per_fragment] = value - -void freeListOfArrays(ListOfArrays* list); - -#endif /* LISTOFARRAYS_H */ - diff -r 7731a4d31baa -r 6386ae5cc770 prlistofarrays.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/prlistofarrays.h Fri Sep 20 00:02:12 2013 -0700 @@ -0,0 +1,67 @@ +/* + * File: ListOfArrays.h + * Author: Nina Engelhardt + * + * Created on December 16, 2011, 2:06 PM + */ + +#ifndef _LISTOFARRAYS_H +#define _LISTOFARRAYS_H + +#include +#include + +#include +#include + + +typedef struct { + void* next; + void* data; +} ArrayFragment; + +typedef struct { + void** dim1; + PrivDynArrayInfo* dim1info; + //ArrayFragment* last; + size_t entry_size; + int num_entries_per_fragment; + int next_free_index; +} ListOfArrays; + +ListOfArrays* makeListOfArrays(size_t entry_size, int num_entries_per_block); + +#define addToListOfArrays(type,value,list) do { \ + int offset_in_fragment = list->next_free_index % list->num_entries_per_fragment; \ + if(offset_in_fragment == 0){ \ + void* newBlock = PR__malloc(list->entry_size * list->num_entries_per_fragment); \ + addToDynArray(newBlock,list->dim1info); \ + } \ + type* typedFragment = (type*) ((list->dim1)[list->dim1info->numInArray -1]); \ + typedFragment[offset_in_fragment] = value; \ + list->next_free_index++; \ +} while (0) + +#define addToListOfArrays_ext(type,value,list) do { \ + int offset_in_fragment = list->next_free_index % list->num_entries_per_fragment; \ + if(offset_in_fragment == 0){ \ + void* newBlock = malloc(list->entry_size * list->num_entries_per_fragment); \ + addToDynArray(newBlock,list->dim1info); \ + } \ + type* typedFragment = (type*) ((list->dim1)[list->dim1info->numInArray -1]); \ + typedFragment[offset_in_fragment] = value; \ + list->next_free_index++; \ +} while (0) + +typedef void (*ListOfArraysFnPtr) ( void * ); //fn has to cast void * + +void forAllInListOfArraysDo(ListOfArrays* list, ListOfArraysFnPtr fnPtr); + +#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) ((type*)((list->dim1)[index / list->num_entries_per_fragment]))[index % list->num_entries_per_fragment] = value + +void freeListOfArrays(ListOfArrays* list); + +#endif /* LISTOFARRAYS_H */ +