Changeset 446
- Timestamp:
- Apr 19, 2004, 9:41:51 AM (22 years ago)
- Location:
- trunk/archive/pslib/src
- Files:
-
- 11 edited
-
Metadata/Makefile (modified) (1 diff)
-
Metadata/metadata.c (modified) (21 diffs)
-
Utils/Makefile (modified) (3 diffs)
-
Utils/array.c (modified) (1 diff)
-
Utils/dlist.c (modified) (1 diff)
-
Utils/hash.c (modified) (1 diff)
-
Utils/memory.c (modified) (8 diffs)
-
Utils/psArray.h (modified) (7 diffs)
-
Utils/tst_array.c (modified) (2 diffs)
-
Utils/tst_hash.c (modified) (1 diff)
-
Utils/tst_memory.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/archive/pslib/src/Metadata/Makefile
r228 r446 4 4 5 5 PSLIB_DIR = ../../ 6 UTILS_DIR = ../Utils7 6 8 INCLUDES = -I. -I$(PSLIB_DIR)/include 9 LIBS = -L$( UTILS_DIR)-lUtils7 INCLUDES = -I. -I$(PSLIB_DIR)/include -I$(FFTW_DIR)/include 8 LIBS = -L$(PSLIB_DIR)/lib -lUtils 10 9 11 10 PROGS = metadata -
trunk/archive/pslib/src/Metadata/metadata.c
r164 r446 6 6 #include <assert.h> 7 7 #include <string.h> 8 #include "ps Utils.h"9 #include "psMeta Data.h"8 #include "psLib.h" 9 #include "psMetadata.h" 10 10 11 11 /*****************************************************************************/ … … 13 13 * Handle sets of metadata 14 14 */ 15 psMeta DataSet *psMetaDataSetAlloc(void) // make a new set of metadata16 { 17 psMeta DataSet *ms = psAlloc(sizeof(psMetaDataSet));15 psMetadata *psMetadataAlloc(void) // make a new set of metadata 16 { 17 psMetadata *ms = psAlloc(sizeof(psMetadata)); 18 18 19 19 ms->list = psDlistAlloc(NULL); // list of metadata 20 ms->table = psHashAlloc( 128);// hash table20 ms->table = psHashAlloc(); // hash table 21 21 22 22 return ms; 23 23 } 24 24 25 void psMeta DataSetFree(psMetaDataSet*ms) // destroy a set of metadata25 void psMetadataFree(psMetadata *ms) // destroy a set of metadata 26 26 { 27 27 if (ms == NULL) { … … 30 30 31 31 psDlistFree(ms->list, (void (*)(void *))NULL); 32 psHashFree(ms->table, (void (*)(void *))psMeta DataItemFree);32 psHashFree(ms->table, (void (*)(void *))psMetadataItemFree); 33 33 34 34 psFree(ms); … … 37 37 /*****************************************************************************/ 38 38 /* 39 * Return a properly filled-out psMeta DataItem39 * Return a properly filled-out psMetadataItem 40 40 * 41 41 * N.b. For types PS_META_FLOAT, PS_META_INT, and PS_META_STR, a COPY … … 43 43 * to the data will be kept. 44 44 */ 45 psMeta DataItem *psMetaDataItemAlloc(45 psMetadataItem *psMetadataItemAlloc( 46 46 int typeFlags, // type of this piece of metadata + flags 47 47 const void *data, // value of new item … … 51 51 ) 52 52 { 53 const psMeta DataType type = typeFlags & PS_META_TYPE_MASK; // the type part of typeFlags54 psMeta DataFlags flags = typeFlags & ~PS_META_TYPE_MASK; // the flags part of typeFlags53 const psMetadataType type = typeFlags & PS_META_TYPE_MASK; // the type part of typeFlags 54 psMetadataFlags flags = typeFlags & ~PS_META_TYPE_MASK; // the flags part of typeFlags 55 55 static int id = 0; // unique ID for an item of metadata 56 psMeta DataItem *ms = psAlloc(sizeof(psMetaDataItem));56 psMetadataItem *ms = psAlloc(sizeof(psMetadataItem)); 57 57 58 58 *(int *)&ms->id = id++; // need to cast away const … … 125 125 } 126 126 127 void psMeta DataItemFree(psMetaDataItem *ms) // piece of metadata to destroy127 void psMetadataItemFree(psMetadataItem *ms) // piece of metadata to destroy 128 128 { 129 129 if(ms == NULL) { … … 167 167 /*****************************************************************************/ 168 168 /* 169 * Add an new psMeta DataItem to a psMetaDataSet170 */ 171 psMeta DataItem *psMetaDataAppend(psMetaDataSet *restrict ms, psMetaDataItem *restrict item)172 { 173 psMeta DataItem *meta = NULL; // an item of metadata169 * Add an new psMetadataItem to a psMetadata 170 */ 171 psMetadataItem *psMetadataAppend(psMetadata *restrict ms, psMetadataItem *restrict item) 172 { 173 psMetadataItem *meta = NULL; // an item of metadata 174 174 assert (ms != NULL && ms->list != NULL && ms->table != NULL); 175 175 … … 178 178 179 179 if (item->flags & PS_META_NON_UNIQUE) { 180 psMeta DataItem *head = meta;180 psMetadataItem *head = meta; 181 181 if (head == NULL) { // this is the first item of this name 182 head = psMeta DataAppend(ms, psMetaDataItemAlloc(PS_META_ITEM_SET, NULL, NULL, item->name));182 head = psMetadataAppend(ms, psMetadataItemAlloc(PS_META_ITEM_SET, NULL, NULL, item->name)); 183 183 } 184 184 … … 202 202 203 203 psDlistAppend(head->items, item); 204 psHashInsert(ms->table, item->name, item, (void (*)(void *))psMeta DataItemFree);204 psHashInsert(ms->table, item->name, item, (void (*)(void *))psMetadataItemFree); 205 205 206 206 return item; 207 207 } else if (meta != NULL) { 208 psError(__func__, "Key \"%s\" is already present in the metaDataSet 0x%x", item->name, ms); 209 //psMetaDataItemFree(item); 208 psError(__func__, PS_ERR_UNKNOWN, PS_NEW_ERROR, 209 "Key \"%s\" is already present in the metaDataSet 0x%x", item->name, ms); 210 //psMetadataItemFree(item); 210 211 211 212 return NULL; … … 213 214 214 215 psDlistAppend(ms->list, item); 215 psHashInsert(ms->table, item->name, item, (void (*)(void *))psMeta DataItemFree);216 psHashInsert(ms->table, item->name, item, (void (*)(void *))psMetadataItemFree); 216 217 217 218 return item; … … 222 223 * Remove and return an item of metadata from a set 223 224 */ 224 psMeta DataItem *psMetaDataRemove(psMetaDataSet*restrict ms, const char *restrict key)225 psMetadataItem *psMetadataRemove(psMetadata *restrict ms, const char *restrict key) 225 226 { 226 227 assert (ms != NULL && ms->list != NULL && ms->table != NULL); 227 228 228 psMeta DataItem *meta = psHashRemove(ms->table, key);229 psMetadataItem *meta = psHashRemove(ms->table, key); 229 230 230 231 if (meta == NULL) { … … 239 240 *ptr = '\0'; 240 241 241 psMeta DataItem *base = psHashLookup(ms->table, baseKey); // here's the non-qualified metadata242 psMetadataItem *base = psHashLookup(ms->table, baseKey); // here's the non-qualified metadata 242 243 assert (base != NULL); 243 244 … … 253 254 * Iterators for the psDlist representation of the metadata 254 255 */ 255 void psMeta DataSetIterator(psMetaDataSet*ms)256 void psMetadataIterator(psMetadata *ms) 256 257 { 257 258 assert (ms != NULL); … … 259 260 } 260 261 261 psMeta DataItem *psMetaDataGetNext(psMetaDataSet*restrict ms,262 psMetadataItem *psMetadataGetNext(psMetadata *restrict ms, 262 263 const char *restrict match) 263 264 { 264 265 assert (ms != NULL); 265 psMeta DataItem *meta = psDlistGetNext(ms->list, 0);266 psMetadataItem *meta = psDlistGetNext(ms->list, 0); 266 267 267 268 if (match == NULL || meta == NULL) { … … 271 272 return meta; 272 273 } else { 273 return psMeta DataGetNext(ms, match);274 return psMetadataGetNext(ms, match); 274 275 } 275 276 } … … 280 281 * Access using the hash table 281 282 */ 282 psMeta DataItem *psMetaDataLookup(const psMetaDataSet*restrict ms,283 psMetadataItem *psMetadataLookup(const psMetadata *restrict ms, 283 284 const char *restrict key) 284 285 { … … 289 290 290 291 /*****************************************************************************/ 291 void psMeta DataItemPrint(FILE *fd, // file descriptor to write to292 const psMeta DataItem *restrict ms, // item of metadata to print292 void psMetadataItemPrint(FILE *fd, // file descriptor to write to 293 const psMetadataItem *restrict ms, // item of metadata to print 293 294 const char *prefix) // print this at the beginning of each line 294 295 { … … 308 309 case PS_META_ITEM_SET: 309 310 { // gcc 3.3 doesn't allow a declaration here 310 psMeta DataItem *meta = NULL;311 psMetadataItem *meta = NULL; 311 312 312 313 fprintf(fd, "\n"); 313 314 psDlistSetIterator(ms->items, PS_DLIST_HEAD, 0); 314 315 while ((meta = psDlistGetNext(ms->items, 0)) != NULL) { 315 psMeta DataItemPrint(fd, meta, "\t");316 psMetadataItemPrint(fd, meta, "\t"); 316 317 } 317 318 } … … 369 370 psSetLogFormat("NM"); // suppress some of the psLogMsg verbosity 370 371 371 psMeta DataSet *ms = psMetaDataSetAlloc(); // set of metadata372 psMeta DataItem *meta = NULL; // used to traverse a set of metadata372 psMetadata *ms = psMetadataAlloc(); // set of metadata 373 psMetadataItem *meta = NULL; // used to traverse a set of metadata 373 374 374 375 for (int i = 0; i < 10; i += 5) { 375 376 float sqrti = sqrt(i); 376 psMeta DataAppend(ms, psMetaDataItemAlloc(PS_META_INT, &i, NULL, "const.%d", i));377 psMeta DataAppend(ms, psMetaDataItemAlloc(PS_META_FLOAT, &sqrti, "square root", "const.sqrt%d", i));378 } 379 psMeta DataAppend(ms, psMetaDataItemAlloc(PS_META_STR | PS_META_NON_UNIQUE,377 psMetadataAppend(ms, psMetadataItemAlloc(PS_META_INT, &i, NULL, "const.%d", i)); 378 psMetadataAppend(ms, psMetadataItemAlloc(PS_META_FLOAT, &sqrti, "square root", "const.sqrt%d", i)); 379 } 380 psMetadataAppend(ms, psMetadataItemAlloc(PS_META_STR | PS_META_NON_UNIQUE, 380 381 "Bonjour", "French", "lang.hello")); 381 psMeta DataAppend(ms, psMetaDataItemAlloc(PS_META_STR | PS_META_NON_UNIQUE,382 psMetadataAppend(ms, psMetadataItemAlloc(PS_META_STR | PS_META_NON_UNIQUE, 382 383 "Aloha", "Hawaiian", "lang.hello")); 383 psMeta DataAppend(ms, psMetaDataItemAlloc(PS_META_STR | PS_META_NON_UNIQUE,384 psMetadataAppend(ms, psMetadataItemAlloc(PS_META_STR | PS_META_NON_UNIQUE, 384 385 "Good Morning", "English", "lang.hello")); 385 386 /* 386 387 * Print all metadata starting "lang" 387 388 */ 388 psMeta DataItemFree(psMetaDataRemove(ms, "lang.hello.0"));389 390 psMeta DataSetIterator(ms);391 while ((meta = psMeta DataGetNext(ms, "lang")) != NULL) {392 psMeta DataItemPrint(stdout, meta, "");389 psMetadataItemFree(psMetadataRemove(ms, "lang.hello.0")); 390 391 psMetadataIterator(ms); 392 while ((meta = psMetadataGetNext(ms, "lang")) != NULL) { 393 psMetadataItemPrint(stdout, meta, ""); 393 394 } 394 395 /* 395 396 * Remove a key 396 397 */ 397 psMeta DataItemFree(psMetaDataRemove(ms, "lang.hello"));398 psMetadataItemFree(psMetadataRemove(ms, "lang.hello")); 398 399 /* 399 400 * Print all metadata 400 401 */ 401 402 fprintf(stdout, "------\n"); 402 psMeta DataSetIterator(ms);403 while ((meta = psMeta DataGetNext(ms, NULL)) != NULL) {404 psMeta DataItemPrint(stdout, meta, "");403 psMetadataIterator(ms); 404 while ((meta = psMetadataGetNext(ms, NULL)) != NULL) { 405 psMetadataItemPrint(stdout, meta, ""); 405 406 } 406 407 /* … … 409 410 fprintf(stdout, "------\n"); 410 411 fprintf(stdout, "Looking up by name:\n"); 411 meta = psMeta DataLookup(ms, "const.5");412 meta = psMetadataLookup(ms, "const.5"); 412 413 if (meta != NULL) { 413 psMeta DataItemPrint(stdout, meta, "");414 psMetadataItemPrint(stdout, meta, ""); 414 415 } 415 416 /* 416 417 * Clean up 417 418 */ 418 psMeta DataSetFree(ms);419 psMetadataFree(ms); 419 420 /* 420 421 * Check for memory leaks -
trunk/archive/pslib/src/Utils/Makefile
r384 r446 1 1 CC = cc -std=c99 2 CFLAGS = -Wall -g -I$(PSLIB_DIR)/include 2 CFLAGS = -Wall -g -I$(PSLIB_DIR)/include -I$(FFTW_DIR)/include 3 3 4 4 PSLIB_DIR = ../.. … … 6 6 OBJS = array.o dlist.o error.o hash.o logmsg.o memory.o misc.o trace.o 7 7 8 libUtils.a : $(OBJS)9 ar r libUtils.a $?10 ranlib libUtils.a8 $(PSLIB_DIR)/lib/libUtils.a : $(OBJS) 9 ar r $(PSLIB_DIR)/lib/libUtils.a $? 10 ranlib $(PSLIB_DIR)/lib/libUtils.a 11 11 # 12 12 # Error codes … … 25 25 $$p; \ 26 26 done 27 tst_array : libUtils.a tst_array.o28 $(CC) -o tst_array tst_array.olibUtils.a29 tst_dlist : libUtils.a tst_dlist.o30 $(CC) -o tst_dlist tst_dlist.olibUtils.a31 tst_error : libUtils.a tst_error.o32 $(CC) -o tst_error tst_error.olibUtils.a33 tst_hash : libUtils.a tst_hash.o34 $(CC) -o tst_hash tst_hash.olibUtils.a35 tst_logmsg : libUtils.a tst_logmsg.o36 $(CC) -o tst_logmsg tst_logmsg.olibUtils.a37 tst_memory : libUtils.a tst_memory.o38 $(CC) -o tst_memory tst_memory.olibUtils.a39 tst_trace : libUtils.a tst_trace.o40 $(CC) -o tst_trace tst_trace.olibUtils.a27 tst_array : $(PSLIB_DIR)/lib/libUtils.a tst_array.o 28 $(CC) $(CFLAGS) -o tst_array tst_array.o $(PSLIB_DIR)/lib/libUtils.a 29 tst_dlist : $(PSLIB_DIR)/lib/libUtils.a tst_dlist.o 30 $(CC) $(CFLAGS) -o tst_dlist tst_dlist.o $(PSLIB_DIR)/lib/libUtils.a 31 tst_error : $(PSLIB_DIR)/lib/libUtils.a tst_error.o 32 $(CC) $(CFLAGS) -o tst_error tst_error.o $(PSLIB_DIR)/lib/libUtils.a 33 tst_hash : $(PSLIB_DIR)/lib/libUtils.a tst_hash.o 34 $(CC) $(CFLAGS) -o tst_hash tst_hash.o $(PSLIB_DIR)/lib/libUtils.a 35 tst_logmsg : $(PSLIB_DIR)/lib/libUtils.a tst_logmsg.o 36 $(CC) $(CFLAGS) -o tst_logmsg tst_logmsg.o $(PSLIB_DIR)/lib/libUtils.a 37 tst_memory : $(PSLIB_DIR)/lib/libUtils.a tst_memory.o 38 $(CC) $(CFLAGS) -o tst_memory tst_memory.o $(PSLIB_DIR)/lib/libUtils.a 39 tst_trace : $(PSLIB_DIR)/lib/libUtils.a tst_trace.o 40 $(CC) $(CFLAGS) -o tst_trace tst_trace.o $(PSLIB_DIR)/lib/libUtils.a 41 41 # 42 42 # -
trunk/archive/pslib/src/Utils/array.c
r385 r446 11 11 P_PS_CREATE_ARRAY_TYPE(static, my_, psVoidPtr); 12 12 13 psVoidPtrArray *psVoidPtrArrayAlloc(int n , int s)13 psVoidPtrArray *psVoidPtrArrayAlloc(int n) 14 14 { 15 return my_psVoidPtrArrayAlloc(n , s);15 return my_psVoidPtrArrayAlloc(n); 16 16 } 17 17 -
trunk/archive/pslib/src/Utils/dlist.c
r390 r446 313 313 } 314 314 315 psVoidPtrArray *restrict arr = psVoidPtrArrayAlloc(dlist->n , dlist->n);315 psVoidPtrArray *restrict arr = psVoidPtrArrayAlloc(dlist->n); 316 316 317 317 psDlistElem *ptr = dlist->head; -
trunk/archive/pslib/src/Utils/hash.c
r267 r446 67 67 * Con/Destruct psHash tables 68 68 */ 69 psHash *psHashAlloc(int nbucket) // initial number of buckets 70 { 69 psHash *psHashAlloc(void) 70 { 71 int nbucket = 128; // XXX initial number of buckets 71 72 psHash *table = psAlloc(sizeof(psHash)); 72 73 table->buckets = psAlloc(nbucket*sizeof(HashBucket *)); -
trunk/archive/pslib/src/Utils/memory.c
r329 r446 52 52 return NULL; 53 53 } 54 static psMemExhaustedC allbackmemExhaustedCB = memExhaustedCB0;55 56 psMemExhaustedC allback psMemExhaustedSetCB(psMemExhaustedCallbackfunc)57 { 58 psMemExhaustedC allbackold = memExhaustedCB;54 static psMemExhaustedCB memExhaustedCB = memExhaustedCB0; 55 56 psMemExhaustedCB psMemExhaustedSetCB(psMemExhaustedCB func) 57 { 58 psMemExhaustedCB old = memExhaustedCB; 59 59 60 60 memExhaustedCB = (func != NULL) ? func : memExhaustedCB0; … … 89 89 } 90 90 } 91 static psMemProblemC allbackmemProblemCB = memProblemCB0;92 93 psMemProblemC allback psMemProblemSetCB(psMemProblemCallbackfunc)94 { 95 psMemProblemC allbackold = memProblemCB;91 static psMemProblemCB memProblemCB = memProblemCB0; 92 93 psMemProblemCB psMemProblemSetCB(psMemProblemCB func) 94 { 95 psMemProblemCB old = memProblemCB; 96 96 97 97 memProblemCB = (func != NULL) ? func : memProblemCB0; … … 129 129 * isn't resignalled) 130 130 */ 131 static intmemAllocateCB0(const psMemBlock *ptr)131 static long memAllocateCB0(const psMemBlock *ptr) 132 132 { 133 133 static int incr = 0; // "p_psMemAllocateID += incr" … … 138 138 } 139 139 140 static intmemFreeCB0(const psMemBlock *ptr)140 static long memFreeCB0(const psMemBlock *ptr) 141 141 { 142 142 static int incr = 0; // "p_psMemFreeID += incr" … … 150 150 * The default callbacks, and the routines to change them 151 151 */ 152 static psMem CallbackmemAllocateCB = memAllocateCB0;153 static psMem CallbackmemFreeCB = memFreeCB0;154 155 psMem Callback psMemAllocateSetCB(psMemCallbackfunc)156 { 157 psMem Callbackold = memAllocateCB;152 static psMemAllocateCB memAllocateCB = memAllocateCB0; 153 static psMemFreeCB memFreeCB = memFreeCB0; 154 155 psMemAllocateCB psMemAllocateSetCB(psMemAllocateCB func) 156 { 157 psMemAllocateCB old = memAllocateCB; 158 158 159 159 memAllocateCB = (func != NULL) ? func : memAllocateCB0; … … 162 162 } 163 163 164 psMem Callback psMemFreeSetCB(psMemCallbackfunc)165 { 166 psMem Callbackold = memFreeCB;164 psMemFreeCB psMemFreeSetCB(psMemFreeCB func) 165 { 166 psMemFreeCB old = memFreeCB; 167 167 168 168 memFreeCB = (func != NULL) ? func : memFreeCB0; … … 208 208 } 209 209 210 if (m-> magic0 != P_PS_MEMMAGIC || m->magic!= P_PS_MEMMAGIC) {210 if (m->startblock != P_PS_MEMMAGIC || m->endblock != P_PS_MEMMAGIC) { 211 211 if (!quiet) { 212 212 psError(__func__, PS_ERR_MEMORY_CORRUPTION, PS_NEW_ERROR, … … 261 261 ptr->file = file; 262 262 *(int *)&ptr->lineno = lineno; 263 *(void **)&ptr->magic0 = *(void **)&ptr->magic = P_PS_MEMMAGIC; 263 *(void **)&ptr->startblock = *(void **)&ptr->endblock = P_PS_MEMMAGIC; 264 ptr->endpost = &ptr->endblock; // should point just beyond allocated memory XXX 264 265 265 266 ptr->refCounter = 1; // one user so far -
trunk/archive/pslib/src/Utils/psArray.h
r388 r446 2 2 #define PS_ARRAY_H 3 3 4 //#include <stdlib.h>5 4 /** 6 5 * Declare TYPEArray … … 8 7 #define PS_DECLARE_ARRAY_TYPE(TYPE) \ 9 8 typedef struct { \ 10 int size; /* number of allocated elements */\11 int n ; /* number of elements in use */\12 \9 psType type; /* Type of data. THIS STRUCT ELEMENT MUST BE FIRST IN THE STRUCT */\ 10 int nalloc; /* Total number of elements available */\ 11 int n; /* Number of elements in use */\ 13 12 TYPE *arr; /* the actual data */ \ 14 13 } PS_CONCAT(TYPE, Array); \ 15 14 \ 16 PS_CONCAT(TYPE, Array) *PS_CONCAT3(TYPE,Array,Alloc)(int n , int s); \15 PS_CONCAT(TYPE, Array) *PS_CONCAT3(TYPE,Array,Alloc)(int n); \ 17 16 PS_CONCAT(TYPE, Array) *PS_CONCAT3(TYPE,Array,Realloc)(PS_CONCAT(TYPE, Array) *arr, int n); \ 18 17 void PS_CONCAT3(TYPE,Array,Free)(PS_CONCAT(TYPE, Array) *arr) … … 27 26 #define P_PS_CREATE_ARRAY_TYPE(QUAL,PREFIX,TYPE) \ 28 27 \ 29 QUAL PS_CONCAT(TYPE, Array) *PS_CONCAT4(PREFIX,TYPE,Array,Alloc)(int n, /* initial dimension */\ 30 int s) /* initial number of elements */ \ 28 QUAL PS_CONCAT(TYPE, Array) *PS_CONCAT4(PREFIX,TYPE,Array,Alloc)(int n) /* initial dimension */ \ 31 29 { \ 32 30 PS_CONCAT(TYPE, Array) *arr = psAlloc(sizeof(PS_CONCAT(TYPE, Array))); \ 33 31 \ 34 if (n > s) { \ 35 psLogMsg(PS_STRING(TYPE) "ArrayAlloc", PS_LOG_ERROR, "Too few elements requested in array (%d < %d)\n", s, n); \ 36 s = n; \ 37 } \ 32 arr->nalloc = arr->n = n; \ 38 33 \ 39 arr->size = s; \ 40 arr->n = n; \ 41 \ 42 if (s == 0) { \ 34 if (n == 0) { \ 43 35 arr->arr = NULL; \ 44 36 } else { \ 45 arr->arr = psAlloc( s*sizeof(TYPE)); \37 arr->arr = psAlloc(n*sizeof(TYPE)); \ 46 38 } \ 47 39 \ … … 52 44 { \ 53 45 if (arr == NULL) { \ 54 return PS_CONCAT4(PREFIX,TYPE,Array,Alloc)(n , n); \46 return PS_CONCAT4(PREFIX,TYPE,Array,Alloc)(n); \ 55 47 } \ 56 48 \ 57 if (n <= arr-> size) { \49 if (n <= arr->nalloc) { \ 58 50 if (arr->n < n) { \ 59 51 arr->n = n; \ … … 61 53 } else { \ 62 54 arr->arr = psRealloc(arr->arr, n*sizeof(TYPE)); \ 63 arr-> size= n; \55 arr->nalloc = n; \ 64 56 } \ 65 57 \ … … 91 83 P_PS_CREATE_ARRAY_TYPE(static, my_, P_PS_CONCAT(TYPE, Ptr)) \ 92 84 \ 93 PS_CONCAT(TYPE, PtrArray) *PS_CONCAT3(TYPE,PtrArray,Alloc)(int n , int s) \85 PS_CONCAT(TYPE, PtrArray) *PS_CONCAT3(TYPE,PtrArray,Alloc)(int n) \ 94 86 { \ 95 PS_CONCAT(TYPE, PtrArray) *arr = PS_CONCAT4(my_,TYPE,PtrArray,Alloc)(n , s); \87 PS_CONCAT(TYPE, PtrArray) *arr = PS_CONCAT4(my_,TYPE,PtrArray,Alloc)(n); \ 96 88 for (int i = 0; i < arr->n; i++) { \ 97 89 arr->arr[i] = psMemIncrRefCounter(PS_CONCAT(TYPE, Alloc)());\ … … 113 105 { \ 114 106 if (arr == NULL) { return; } \ 115 for (int i = 0; i < arr-> size; i++) { \107 for (int i = 0; i < arr->nalloc; i++) { \ 116 108 PS_CONCAT(TYPE, Free)(psMemDecrRefCounter(arr->arr[i])); \ 117 109 } \ -
trunk/archive/pslib/src/Utils/tst_array.c
r267 r446 1 1 #include "psLib.h" 2 #include "psArray.h" 2 3 3 4 typedef struct { … … 23 24 int main(void) 24 25 { 25 psXYArray *t = psXYArrayAlloc(10 , 15);26 psXYPtrArray *pt = psXYPtrArrayAlloc(10 , 10);26 psXYArray *t = psXYArrayAlloc(10); 27 psXYPtrArray *pt = psXYPtrArrayAlloc(10); 27 28 28 29 for (int i = 0; i < t->n; i++) { -
trunk/archive/pslib/src/Utils/tst_hash.c
r267 r446 32 32 long memId0 = psMemGetId(); 33 33 34 psHash *hash = psHashAlloc( 16);34 psHash *hash = psHashAlloc(); 35 35 36 36 psHashInsert(hash, "Lynda", IdAlloc("Lee"), (void (*)(void *))IdFree); -
trunk/archive/pslib/src/Utils/tst_memory.c
r390 r446 30 30 } 31 31 32 static psMemProblemC allbackdefault_MemProblemCB = NULL;32 static psMemProblemCB default_MemProblemCB = NULL; 33 33 34 34 static void my_MemProblemCB(const psMemBlock *ptr,
Note:
See TracChangeset
for help on using the changeset viewer.
