Changeset 164 for trunk/archive/pslib/src/Utils/psArray.h
- Timestamp:
- Mar 9, 2004, 2:34:28 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/archive/pslib/src/Utils/psArray.h (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/archive/pslib/src/Utils/psArray.h
r141 r164 14 14 } PS_CONCAT(TYPE, Array); \ 15 15 \ 16 PS_CONCAT(TYPE, Array) *PS_CONCAT3(TYPE,Array, New)(int n, int s); \16 PS_CONCAT(TYPE, Array) *PS_CONCAT3(TYPE,Array,Alloc)(int n, int s); \ 17 17 PS_CONCAT(TYPE, Array) *PS_CONCAT3(TYPE,Array,Realloc)(PS_CONCAT(TYPE, Array) *arr, int n); \ 18 void PS_CONCAT3(TYPE,Array, Del)(PS_CONCAT(TYPE, Array) *arr)18 void PS_CONCAT3(TYPE,Array,Free)(PS_CONCAT(TYPE, Array) *arr) 19 19 20 20 /*****************************************************************************/ … … 27 27 #define P_PS_CREATE_ARRAY_TYPE(QUAL,PREFIX,TYPE) \ 28 28 \ 29 QUAL PS_CONCAT(TYPE, Array) *PS_CONCAT4(PREFIX,TYPE,Array, New)(int n, /* initial dimension */\29 QUAL PS_CONCAT(TYPE, Array) *PS_CONCAT4(PREFIX,TYPE,Array,Alloc)(int n, /* initial dimension */\ 30 30 int s) /* initial number of elements */ \ 31 31 { \ … … 33 33 \ 34 34 if (n > s) { \ 35 psLogMsg(PS_STRING(TYPE) "Array New", PS_LOG_ERROR, "Too few elements requested in array (%d < %d)\n", s, n); \35 psLogMsg(PS_STRING(TYPE) "ArrayAlloc", PS_LOG_ERROR, "Too few elements requested in array (%d < %d)\n", s, n); \ 36 36 s = n; \ 37 37 } \ … … 52 52 { \ 53 53 if (arr == NULL) { \ 54 return PS_CONCAT4(PREFIX,TYPE,Array, New)(n, n); \54 return PS_CONCAT4(PREFIX,TYPE,Array,Alloc)(n, n); \ 55 55 } \ 56 56 \ … … 67 67 } \ 68 68 \ 69 QUAL void PS_CONCAT4(PREFIX,TYPE,Array, Del)(PS_CONCAT(TYPE,Array) *arr) \69 QUAL void PS_CONCAT4(PREFIX,TYPE,Array,Free)(PS_CONCAT(TYPE,Array) *arr) \ 70 70 { \ 71 71 if (arr == NULL) { \ … … 88 88 P_PS_CREATE_ARRAY_TYPE(static, my_, P_PS_CONCAT(TYPE, Ptr)) \ 89 89 \ 90 PS_CONCAT(TYPE, PtrArray) *PS_CONCAT3(TYPE,PtrArray, New)(int n, int s) \90 PS_CONCAT(TYPE, PtrArray) *PS_CONCAT3(TYPE,PtrArray,Alloc)(int n, int s) \ 91 91 { \ 92 PS_CONCAT(TYPE, PtrArray) *arr = PS_CONCAT4(my_,TYPE,PtrArray, New)(n, s); \92 PS_CONCAT(TYPE, PtrArray) *arr = PS_CONCAT4(my_,TYPE,PtrArray,Alloc)(n, s); \ 93 93 for (int i = 0; i < arr->n; i++) { \ 94 arr->arr[i] = psMemIncrRefCounter,(PS_CONCAT(TYPE, New)());\94 arr->arr[i] = psMemIncrRefCounter,(PS_CONCAT(TYPE, Alloc)());\ 95 95 } \ 96 96 \ … … 101 101 { \ 102 102 for (int i = n; i < arr->n; i++) { \ 103 PS_CONCAT(TYPE, Del)(psMemDecrRefCounter(arr->arr[i]));\103 PS_CONCAT(TYPE, Free)(psMemDecrRefCounter(arr->arr[i]));\ 104 104 } \ 105 105 \ … … 107 107 } \ 108 108 \ 109 void PS_CONCAT3(TYPE,PtrArray, Del)(PS_CONCAT2(TYPE,PtrArray) *arr) \109 void PS_CONCAT3(TYPE,PtrArray,Free)(PS_CONCAT2(TYPE,PtrArray) *arr) \ 110 110 { \ 111 111 if (arr == NULL) { return; } \ 112 112 for (int i = 0; i < arr->size; i++) { \ 113 PS_CONCAT(TYPE, Del)(psMemDecrRefCounter(arr->arr[i])); \113 PS_CONCAT(TYPE, Free)(psMemDecrRefCounter(arr->arr[i])); \ 114 114 } \ 115 PS_CONCAT4(my_, TYPE, PtrArray, Del)(arr); \115 PS_CONCAT4(my_, TYPE, PtrArray, Free)(arr); \ 116 116 } 117 117 … … 129 129 } psVoidPtrArray; 130 130 131 psVoidPtrArray *psVoidPtrArray New(int n, int s);131 psVoidPtrArray *psVoidPtrArrayAlloc(int n, int s); 132 132 psVoidPtrArray *psVoidPtrArrayRealloc(psVoidPtrArray *arr, int n); 133 void psVoidPtrArray Del(psVoidPtrArray *arr,134 void (*elemDel)(void *)); // destructor for array data133 void psVoidPtrArrayFree(psVoidPtrArray *arr, 134 void (*elemFree)(void *)); // destructor for array data 135 135 136 136
Note:
See TracChangeset
for help on using the changeset viewer.
