Index: /trunk/archive/pslib/src/Metadata/Makefile
===================================================================
--- /trunk/archive/pslib/src/Metadata/Makefile	(revision 445)
+++ /trunk/archive/pslib/src/Metadata/Makefile	(revision 446)
@@ -4,8 +4,7 @@
 
 PSLIB_DIR = ../../
-UTILS_DIR = ../Utils
 
-INCLUDES = -I. -I$(PSLIB_DIR)/include
-LIBS = -L$(UTILS_DIR) -lUtils
+INCLUDES = -I. -I$(PSLIB_DIR)/include -I$(FFTW_DIR)/include
+LIBS = -L$(PSLIB_DIR)/lib -lUtils
 
 PROGS = metadata
Index: /trunk/archive/pslib/src/Metadata/metadata.c
===================================================================
--- /trunk/archive/pslib/src/Metadata/metadata.c	(revision 445)
+++ /trunk/archive/pslib/src/Metadata/metadata.c	(revision 446)
@@ -6,6 +6,6 @@
 #include <assert.h>
 #include <string.h>
-#include "psUtils.h"
-#include "psMetaData.h"
+#include "psLib.h"
+#include "psMetadata.h"
 
 /*****************************************************************************/
@@ -13,15 +13,15 @@
  * Handle sets of metadata
  */
-psMetaDataSet *psMetaDataSetAlloc(void)	// make a new set of metadata
-{
-    psMetaDataSet *ms = psAlloc(sizeof(psMetaDataSet));
+psMetadata *psMetadataAlloc(void)	// make a new set of metadata
+{
+    psMetadata *ms = psAlloc(sizeof(psMetadata));
 
     ms->list = psDlistAlloc(NULL);	// list of metadata
-    ms->table = psHashAlloc(128);	// hash table
+    ms->table = psHashAlloc();		// hash table
 
     return ms;
 }
 
-void psMetaDataSetFree(psMetaDataSet *ms) // destroy a set of metadata
+void psMetadataFree(psMetadata *ms) // destroy a set of metadata
 {
     if (ms == NULL) {
@@ -30,5 +30,5 @@
     
     psDlistFree(ms->list, (void (*)(void *))NULL);
-    psHashFree(ms->table, (void (*)(void *))psMetaDataItemFree);
+    psHashFree(ms->table, (void (*)(void *))psMetadataItemFree);
 
     psFree(ms);
@@ -37,5 +37,5 @@
 /*****************************************************************************/
 /*
- * Return a properly filled-out psMetaDataItem
+ * Return a properly filled-out psMetadataItem
  *
  * N.b. For types PS_META_FLOAT, PS_META_INT, and PS_META_STR, a COPY
@@ -43,5 +43,5 @@
  * to the data will be kept.
  */
-psMetaDataItem *psMetaDataItemAlloc(
+psMetadataItem *psMetadataItemAlloc(
     int typeFlags,			// type of this piece of metadata + flags
     const void *data,			// value of new item
@@ -51,8 +51,8 @@
     )
 {
-    const psMetaDataType type = typeFlags & PS_META_TYPE_MASK; // the type part of typeFlags
-    psMetaDataFlags flags = typeFlags & ~PS_META_TYPE_MASK;    // the flags part of typeFlags
+    const psMetadataType type = typeFlags & PS_META_TYPE_MASK; // the type part of typeFlags
+    psMetadataFlags flags = typeFlags & ~PS_META_TYPE_MASK;    // the flags part of typeFlags
     static int id = 0;			// unique ID for an item of metadata
-    psMetaDataItem *ms = psAlloc(sizeof(psMetaDataItem));
+    psMetadataItem *ms = psAlloc(sizeof(psMetadataItem));
 
     *(int *)&ms->id = id++;		// need to cast away const
@@ -125,5 +125,5 @@
 }
 
-void psMetaDataItemFree(psMetaDataItem *ms) // piece of metadata to destroy
+void psMetadataItemFree(psMetadataItem *ms) // piece of metadata to destroy
 {
     if(ms == NULL) {
@@ -167,9 +167,9 @@
 /*****************************************************************************/
 /*
- * Add an new psMetaDataItem to a psMetaDataSet
- */
-psMetaDataItem *psMetaDataAppend(psMetaDataSet *restrict ms, psMetaDataItem *restrict item)
-{
-    psMetaDataItem *meta = NULL;	// an item of metadata
+ * Add an new psMetadataItem to a psMetadata
+ */
+psMetadataItem *psMetadataAppend(psMetadata *restrict ms, psMetadataItem *restrict item)
+{
+    psMetadataItem *meta = NULL;	// an item of metadata
     assert (ms != NULL && ms->list != NULL && ms->table != NULL);
 
@@ -178,7 +178,7 @@
     
     if (item->flags & PS_META_NON_UNIQUE) {
-	psMetaDataItem *head = meta;
+	psMetadataItem *head = meta;
 	if (head == NULL) {		// this is the first item of this name
-	    head = psMetaDataAppend(ms, psMetaDataItemAlloc(PS_META_ITEM_SET, NULL, NULL, item->name));
+	    head = psMetadataAppend(ms, psMetadataItemAlloc(PS_META_ITEM_SET, NULL, NULL, item->name));
 	}	    
 
@@ -202,10 +202,11 @@
 
 	psDlistAppend(head->items, item);
-	psHashInsert(ms->table, item->name, item, (void (*)(void *))psMetaDataItemFree);
+	psHashInsert(ms->table, item->name, item, (void (*)(void *))psMetadataItemFree);
 
 	return item;
     } else if (meta != NULL) {
-	psError(__func__, "Key \"%s\" is already present in the metaDataSet 0x%x", item->name, ms);
-	//psMetaDataItemFree(item);
+	psError(__func__, PS_ERR_UNKNOWN, PS_NEW_ERROR,
+		"Key \"%s\" is already present in the metaDataSet 0x%x", item->name, ms);
+	//psMetadataItemFree(item);
 
 	return NULL;
@@ -213,5 +214,5 @@
 
     psDlistAppend(ms->list, item);
-    psHashInsert(ms->table, item->name, item, (void (*)(void *))psMetaDataItemFree);
+    psHashInsert(ms->table, item->name, item, (void (*)(void *))psMetadataItemFree);
 
     return item;
@@ -222,9 +223,9 @@
  * Remove and return an item of metadata from a set
  */
-psMetaDataItem *psMetaDataRemove(psMetaDataSet *restrict ms, const char *restrict key)
+psMetadataItem *psMetadataRemove(psMetadata *restrict ms, const char *restrict key)
 {
     assert (ms != NULL && ms->list != NULL && ms->table != NULL);
 
-    psMetaDataItem *meta = psHashRemove(ms->table, key);
+    psMetadataItem *meta = psHashRemove(ms->table, key);
 
     if (meta == NULL) {
@@ -239,5 +240,5 @@
 	    *ptr = '\0';
 
-	    psMetaDataItem *base = psHashLookup(ms->table, baseKey); // here's the non-qualified metadata
+	    psMetadataItem *base = psHashLookup(ms->table, baseKey); // here's the non-qualified metadata
 	    assert (base != NULL);
 
@@ -253,5 +254,5 @@
  * Iterators for the psDlist representation of the metadata
  */
-void psMetaDataSetIterator(psMetaDataSet *ms)
+void psMetadataIterator(psMetadata *ms)
 {
     assert (ms != NULL);
@@ -259,9 +260,9 @@
 }
 
-psMetaDataItem *psMetaDataGetNext(psMetaDataSet *restrict ms,
+psMetadataItem *psMetadataGetNext(psMetadata *restrict ms,
 				  const char *restrict match)
 {
     assert (ms != NULL);
-    psMetaDataItem *meta = psDlistGetNext(ms->list, 0);
+    psMetadataItem *meta = psDlistGetNext(ms->list, 0);
 
     if (match == NULL || meta == NULL) {
@@ -271,5 +272,5 @@
 	    return meta;
 	} else {
-	    return psMetaDataGetNext(ms, match);
+	    return psMetadataGetNext(ms, match);
 	}
     }
@@ -280,5 +281,5 @@
  * Access using the hash table
  */
-psMetaDataItem *psMetaDataLookup(const psMetaDataSet *restrict ms,
+psMetadataItem *psMetadataLookup(const psMetadata *restrict ms,
 				 const char *restrict key)
 {
@@ -289,6 +290,6 @@
 
 /*****************************************************************************/
-void psMetaDataItemPrint(FILE *fd,		// file descriptor to write to
-			 const psMetaDataItem *restrict ms, // item of metadata to print
+void psMetadataItemPrint(FILE *fd,		// file descriptor to write to
+			 const psMetadataItem *restrict ms, // item of metadata to print
 			 const char *prefix)	   // print this at the beginning of each line
 {
@@ -308,10 +309,10 @@
       case PS_META_ITEM_SET:
 	{				// gcc 3.3 doesn't allow a declaration here
-	    psMetaDataItem *meta = NULL;
+	    psMetadataItem *meta = NULL;
 
 	    fprintf(fd, "\n");
 	    psDlistSetIterator(ms->items, PS_DLIST_HEAD, 0);
 	    while ((meta = psDlistGetNext(ms->items, 0)) != NULL) {
-		psMetaDataItemPrint(fd, meta, "\t");
+		psMetadataItemPrint(fd, meta, "\t");
 	    }
 	}
@@ -369,38 +370,38 @@
     psSetLogFormat("NM");		// suppress some of the psLogMsg verbosity
 
-    psMetaDataSet *ms = psMetaDataSetAlloc(); // set of metadata
-    psMetaDataItem *meta = NULL;	    // used to traverse a set of metadata
+    psMetadata *ms = psMetadataAlloc(); // set of metadata
+    psMetadataItem *meta = NULL;	    // used to traverse a set of metadata
 
     for (int i = 0; i < 10; i += 5) {
 	float sqrti = sqrt(i);
-	psMetaDataAppend(ms, psMetaDataItemAlloc(PS_META_INT, &i, NULL, "const.%d", i));
-	psMetaDataAppend(ms, psMetaDataItemAlloc(PS_META_FLOAT, &sqrti, "square root", "const.sqrt%d", i));
-    }
-    psMetaDataAppend(ms, psMetaDataItemAlloc(PS_META_STR | PS_META_NON_UNIQUE,
+	psMetadataAppend(ms, psMetadataItemAlloc(PS_META_INT, &i, NULL, "const.%d", i));
+	psMetadataAppend(ms, psMetadataItemAlloc(PS_META_FLOAT, &sqrti, "square root", "const.sqrt%d", i));
+    }
+    psMetadataAppend(ms, psMetadataItemAlloc(PS_META_STR | PS_META_NON_UNIQUE,
 					   "Bonjour", "French", "lang.hello"));
-    psMetaDataAppend(ms, psMetaDataItemAlloc(PS_META_STR | PS_META_NON_UNIQUE,
+    psMetadataAppend(ms, psMetadataItemAlloc(PS_META_STR | PS_META_NON_UNIQUE,
 					   "Aloha", "Hawaiian", "lang.hello"));
-    psMetaDataAppend(ms, psMetaDataItemAlloc(PS_META_STR | PS_META_NON_UNIQUE,
+    psMetadataAppend(ms, psMetadataItemAlloc(PS_META_STR | PS_META_NON_UNIQUE,
 					   "Good Morning", "English", "lang.hello"));
     /*
      * Print all metadata starting "lang"
      */
-    psMetaDataItemFree(psMetaDataRemove(ms, "lang.hello.0"));
-
-    psMetaDataSetIterator(ms);
-    while ((meta = psMetaDataGetNext(ms, "lang")) != NULL) {
-	psMetaDataItemPrint(stdout, meta, "");
+    psMetadataItemFree(psMetadataRemove(ms, "lang.hello.0"));
+
+    psMetadataIterator(ms);
+    while ((meta = psMetadataGetNext(ms, "lang")) != NULL) {
+	psMetadataItemPrint(stdout, meta, "");
     }
     /*
      * Remove a key
      */
-    psMetaDataItemFree(psMetaDataRemove(ms, "lang.hello"));
+    psMetadataItemFree(psMetadataRemove(ms, "lang.hello"));
     /*
      * Print all metadata
      */
     fprintf(stdout, "------\n");
-    psMetaDataSetIterator(ms);
-    while ((meta = psMetaDataGetNext(ms, NULL)) != NULL) {
-	psMetaDataItemPrint(stdout, meta, "");
+    psMetadataIterator(ms);
+    while ((meta = psMetadataGetNext(ms, NULL)) != NULL) {
+	psMetadataItemPrint(stdout, meta, "");
     }
     /*
@@ -409,12 +410,12 @@
     fprintf(stdout, "------\n");
     fprintf(stdout, "Looking up by name:\n");
-    meta = psMetaDataLookup(ms, "const.5");
+    meta = psMetadataLookup(ms, "const.5");
     if (meta != NULL) {
-	psMetaDataItemPrint(stdout, meta, "");
+	psMetadataItemPrint(stdout, meta, "");
     }
     /*
      * Clean up
      */
-    psMetaDataSetFree(ms);
+    psMetadataFree(ms);
     /*
      * Check for memory leaks
Index: /trunk/archive/pslib/src/Utils/Makefile
===================================================================
--- /trunk/archive/pslib/src/Utils/Makefile	(revision 445)
+++ /trunk/archive/pslib/src/Utils/Makefile	(revision 446)
@@ -1,4 +1,4 @@
 CC = cc -std=c99
-CFLAGS = -Wall -g -I$(PSLIB_DIR)/include
+CFLAGS = -Wall -g -I$(PSLIB_DIR)/include -I$(FFTW_DIR)/include
 
 PSLIB_DIR = ../..
@@ -6,7 +6,7 @@
 OBJS = array.o dlist.o error.o hash.o logmsg.o memory.o misc.o trace.o
 
-libUtils.a : $(OBJS)
-	ar r libUtils.a $?
-	ranlib libUtils.a
+$(PSLIB_DIR)/lib/libUtils.a : $(OBJS)
+	ar r $(PSLIB_DIR)/lib/libUtils.a $?
+	ranlib $(PSLIB_DIR)/lib/libUtils.a
 #
 # Error codes
@@ -25,18 +25,18 @@
 		$$p; \
 	done
-tst_array : libUtils.a tst_array.o
-	$(CC) -o tst_array tst_array.o libUtils.a
-tst_dlist : libUtils.a tst_dlist.o
-	$(CC) -o tst_dlist tst_dlist.o libUtils.a
-tst_error : libUtils.a tst_error.o
-	$(CC) -o tst_error tst_error.o libUtils.a
-tst_hash : libUtils.a tst_hash.o
-	$(CC) -o tst_hash tst_hash.o libUtils.a
-tst_logmsg : libUtils.a tst_logmsg.o
-	$(CC) -o tst_logmsg tst_logmsg.o libUtils.a
-tst_memory : libUtils.a tst_memory.o
-	$(CC) -o tst_memory tst_memory.o libUtils.a
-tst_trace : libUtils.a tst_trace.o
-	$(CC) -o tst_trace tst_trace.o libUtils.a
+tst_array : $(PSLIB_DIR)/lib/libUtils.a tst_array.o
+	$(CC) $(CFLAGS) -o tst_array tst_array.o $(PSLIB_DIR)/lib/libUtils.a
+tst_dlist : $(PSLIB_DIR)/lib/libUtils.a tst_dlist.o
+	$(CC) $(CFLAGS) -o tst_dlist tst_dlist.o $(PSLIB_DIR)/lib/libUtils.a
+tst_error : $(PSLIB_DIR)/lib/libUtils.a tst_error.o
+	$(CC) $(CFLAGS) -o tst_error tst_error.o $(PSLIB_DIR)/lib/libUtils.a
+tst_hash : $(PSLIB_DIR)/lib/libUtils.a tst_hash.o
+	$(CC) $(CFLAGS) -o tst_hash tst_hash.o $(PSLIB_DIR)/lib/libUtils.a
+tst_logmsg : $(PSLIB_DIR)/lib/libUtils.a tst_logmsg.o
+	$(CC) $(CFLAGS) -o tst_logmsg tst_logmsg.o $(PSLIB_DIR)/lib/libUtils.a
+tst_memory : $(PSLIB_DIR)/lib/libUtils.a tst_memory.o
+	$(CC) $(CFLAGS) -o tst_memory tst_memory.o $(PSLIB_DIR)/lib/libUtils.a
+tst_trace : $(PSLIB_DIR)/lib/libUtils.a tst_trace.o
+	$(CC) $(CFLAGS) -o tst_trace tst_trace.o $(PSLIB_DIR)/lib/libUtils.a
 #
 #
Index: /trunk/archive/pslib/src/Utils/array.c
===================================================================
--- /trunk/archive/pslib/src/Utils/array.c	(revision 445)
+++ /trunk/archive/pslib/src/Utils/array.c	(revision 446)
@@ -11,7 +11,7 @@
 P_PS_CREATE_ARRAY_TYPE(static, my_, psVoidPtr);
 
-psVoidPtrArray *psVoidPtrArrayAlloc(int n, int s)
+psVoidPtrArray *psVoidPtrArrayAlloc(int n)
 {
-    return my_psVoidPtrArrayAlloc(n, s);
+    return my_psVoidPtrArrayAlloc(n);
 }
 
Index: /trunk/archive/pslib/src/Utils/dlist.c
===================================================================
--- /trunk/archive/pslib/src/Utils/dlist.c	(revision 445)
+++ /trunk/archive/pslib/src/Utils/dlist.c	(revision 446)
@@ -313,5 +313,5 @@
     }
     
-    psVoidPtrArray *restrict arr = psVoidPtrArrayAlloc(dlist->n, dlist->n);
+    psVoidPtrArray *restrict arr = psVoidPtrArrayAlloc(dlist->n);
 
     psDlistElem *ptr = dlist->head;
Index: /trunk/archive/pslib/src/Utils/hash.c
===================================================================
--- /trunk/archive/pslib/src/Utils/hash.c	(revision 445)
+++ /trunk/archive/pslib/src/Utils/hash.c	(revision 446)
@@ -67,6 +67,7 @@
  * Con/Destruct psHash tables
  */
-psHash *psHashAlloc(int nbucket)	// initial number of buckets
-{
+psHash *psHashAlloc(void)
+{
+    int nbucket = 128;			// XXX initial number of buckets
     psHash *table = psAlloc(sizeof(psHash));
     table->buckets = psAlloc(nbucket*sizeof(HashBucket *));
Index: /trunk/archive/pslib/src/Utils/memory.c
===================================================================
--- /trunk/archive/pslib/src/Utils/memory.c	(revision 445)
+++ /trunk/archive/pslib/src/Utils/memory.c	(revision 446)
@@ -52,9 +52,9 @@
     return NULL;
 }
-static psMemExhaustedCallback memExhaustedCB = memExhaustedCB0;
-
-psMemExhaustedCallback psMemExhaustedSetCB(psMemExhaustedCallback func)
-{
-    psMemExhaustedCallback old = memExhaustedCB;
+static psMemExhaustedCB memExhaustedCB = memExhaustedCB0;
+
+psMemExhaustedCB psMemExhaustedSetCB(psMemExhaustedCB func)
+{
+    psMemExhaustedCB old = memExhaustedCB;
 
     memExhaustedCB = (func != NULL) ? func : memExhaustedCB0;
@@ -89,9 +89,9 @@
     }
 }
-static psMemProblemCallback memProblemCB = memProblemCB0;
-
-psMemProblemCallback psMemProblemSetCB(psMemProblemCallback func)
-{
-    psMemProblemCallback old = memProblemCB;
+static psMemProblemCB memProblemCB = memProblemCB0;
+
+psMemProblemCB psMemProblemSetCB(psMemProblemCB func)
+{
+    psMemProblemCB old = memProblemCB;
 
     memProblemCB = (func != NULL) ? func : memProblemCB0;
@@ -129,5 +129,5 @@
  * isn't resignalled)
  */
-static int memAllocateCB0(const psMemBlock *ptr)
+static long memAllocateCB0(const psMemBlock *ptr)
 {
     static int incr = 0;		// "p_psMemAllocateID += incr"
@@ -138,5 +138,5 @@
 }
 
-static int memFreeCB0(const psMemBlock *ptr)
+static long memFreeCB0(const psMemBlock *ptr)
 {
     static int incr = 0;		// "p_psMemFreeID += incr"
@@ -150,10 +150,10 @@
  * The default callbacks, and the routines to change them
  */
-static psMemCallback memAllocateCB = memAllocateCB0;
-static psMemCallback memFreeCB = memFreeCB0;
-
-psMemCallback psMemAllocateSetCB(psMemCallback func)
-{
-    psMemCallback old = memAllocateCB;
+static psMemAllocateCB memAllocateCB = memAllocateCB0;
+static psMemFreeCB memFreeCB = memFreeCB0;
+
+psMemAllocateCB psMemAllocateSetCB(psMemAllocateCB func)
+{
+    psMemAllocateCB old = memAllocateCB;
 
     memAllocateCB = (func != NULL) ? func : memAllocateCB0;
@@ -162,7 +162,7 @@
 }
 
-psMemCallback psMemFreeSetCB(psMemCallback func)
-{
-    psMemCallback old = memFreeCB;
+psMemFreeCB psMemFreeSetCB(psMemFreeCB func)
+{
+    psMemFreeCB old = memFreeCB;
 
     memFreeCB = (func != NULL) ? func : memFreeCB0;
@@ -208,5 +208,5 @@
     }
     
-    if (m->magic0 != P_PS_MEMMAGIC || m->magic != P_PS_MEMMAGIC) {
+    if (m->startblock != P_PS_MEMMAGIC || m->endblock != P_PS_MEMMAGIC) {
 	if (!quiet) {
 	    psError(__func__, PS_ERR_MEMORY_CORRUPTION, PS_NEW_ERROR,
@@ -261,5 +261,6 @@
     ptr->file = file;
     *(int *)&ptr->lineno = lineno;
-    *(void **)&ptr->magic0 = *(void **)&ptr->magic = P_PS_MEMMAGIC;
+    *(void **)&ptr->startblock = *(void **)&ptr->endblock = P_PS_MEMMAGIC;
+    ptr->endpost = &ptr->endblock;	// should point just beyond allocated memory XXX
 
     ptr->refCounter = 1;		// one user so far
Index: /trunk/archive/pslib/src/Utils/psArray.h
===================================================================
--- /trunk/archive/pslib/src/Utils/psArray.h	(revision 445)
+++ /trunk/archive/pslib/src/Utils/psArray.h	(revision 446)
@@ -2,5 +2,4 @@
 #define PS_ARRAY_H
 
-//#include <stdlib.h>
 /**
  * Declare TYPEArray
@@ -8,11 +7,11 @@
 #define PS_DECLARE_ARRAY_TYPE(TYPE) \
     typedef struct { \
-	int size;			/* number of allocated elements */ \
-	int n;				/* number of elements in use */ \
-	\
+	psType type;			/* Type of data.  THIS STRUCT ELEMENT MUST BE FIRST IN THE STRUCT */\
+	int nalloc;			/* Total number of elements available */\
+	int n;				/* Number of elements in use */\
 	TYPE *arr;			/* the actual data */ \
     } PS_CONCAT(TYPE, Array); \
     \
-PS_CONCAT(TYPE, Array) *PS_CONCAT3(TYPE,Array,Alloc)(int n, int s); \
+PS_CONCAT(TYPE, Array) *PS_CONCAT3(TYPE,Array,Alloc)(int n); \
 PS_CONCAT(TYPE, Array) *PS_CONCAT3(TYPE,Array,Realloc)(PS_CONCAT(TYPE, Array) *arr, int n); \
 void PS_CONCAT3(TYPE,Array,Free)(PS_CONCAT(TYPE, Array) *arr)
@@ -27,21 +26,14 @@
 #define P_PS_CREATE_ARRAY_TYPE(QUAL,PREFIX,TYPE) \
 \
-QUAL PS_CONCAT(TYPE, Array) *PS_CONCAT4(PREFIX,TYPE,Array,Alloc)(int n, /* initial dimension */\
-                                                   int s) /* initial number of elements */ \
+QUAL PS_CONCAT(TYPE, Array) *PS_CONCAT4(PREFIX,TYPE,Array,Alloc)(int n) /* initial dimension */ \
 { \
     PS_CONCAT(TYPE, Array) *arr = psAlloc(sizeof(PS_CONCAT(TYPE, Array))); \
     \
-    if (n > s) { \
-	psLogMsg(PS_STRING(TYPE) "ArrayAlloc", PS_LOG_ERROR, "Too few elements requested in array (%d < %d)\n", s, n); \
-	s = n; \
-    } \
+    arr->nalloc = arr->n = n; \
     \
-    arr->size = s; \
-    arr->n = n; \
-    \
-    if (s == 0) { \
+    if (n == 0) { \
 	arr->arr = NULL; \
     } else { \
-	arr->arr = psAlloc(s*sizeof(TYPE)); \
+	arr->arr = psAlloc(n*sizeof(TYPE)); \
     } \
     \
@@ -52,8 +44,8 @@
 { \
     if (arr == NULL) { \
-	return PS_CONCAT4(PREFIX,TYPE,Array,Alloc)(n, n); \
+	return PS_CONCAT4(PREFIX,TYPE,Array,Alloc)(n); \
     } \
     \
-    if (n <= arr->size) { \
+    if (n <= arr->nalloc) { \
 	if (arr->n < n) { \
 	    arr->n = n; \
@@ -61,5 +53,5 @@
     } else { \
         arr->arr = psRealloc(arr->arr, n*sizeof(TYPE)); \
-	arr->size = n; \
+	arr->nalloc = n; \
     } \
     \
@@ -91,7 +83,7 @@
     P_PS_CREATE_ARRAY_TYPE(static, my_, P_PS_CONCAT(TYPE, Ptr)) \
     \
-    PS_CONCAT(TYPE, PtrArray) *PS_CONCAT3(TYPE,PtrArray,Alloc)(int n, int s) \
+    PS_CONCAT(TYPE, PtrArray) *PS_CONCAT3(TYPE,PtrArray,Alloc)(int n) \
     { \
-	PS_CONCAT(TYPE, PtrArray) *arr = PS_CONCAT4(my_,TYPE,PtrArray,Alloc)(n, s); \
+	PS_CONCAT(TYPE, PtrArray) *arr = PS_CONCAT4(my_,TYPE,PtrArray,Alloc)(n); \
 	for (int i = 0; i < arr->n; i++) { \
 	    arr->arr[i] = psMemIncrRefCounter(PS_CONCAT(TYPE, Alloc)());\
@@ -113,5 +105,5 @@
     { \
 	if (arr == NULL) { return; } \
-	for (int i = 0; i < arr->size; i++) { \
+	for (int i = 0; i < arr->nalloc; i++) { \
 	    PS_CONCAT(TYPE, Free)(psMemDecrRefCounter(arr->arr[i])); \
 	} \
Index: /trunk/archive/pslib/src/Utils/tst_array.c
===================================================================
--- /trunk/archive/pslib/src/Utils/tst_array.c	(revision 445)
+++ /trunk/archive/pslib/src/Utils/tst_array.c	(revision 446)
@@ -1,3 +1,4 @@
 #include "psLib.h"
+#include "psArray.h"
 
 typedef struct {
@@ -23,6 +24,6 @@
 int main(void)
 {
-    psXYArray *t = psXYArrayAlloc(10, 15);
-    psXYPtrArray *pt = psXYPtrArrayAlloc(10, 10);
+    psXYArray *t = psXYArrayAlloc(10);
+    psXYPtrArray *pt = psXYPtrArrayAlloc(10);
 
     for (int i = 0; i < t->n; i++) {
Index: /trunk/archive/pslib/src/Utils/tst_hash.c
===================================================================
--- /trunk/archive/pslib/src/Utils/tst_hash.c	(revision 445)
+++ /trunk/archive/pslib/src/Utils/tst_hash.c	(revision 446)
@@ -32,5 +32,5 @@
     long memId0 = psMemGetId();
 
-    psHash *hash = psHashAlloc(16);
+    psHash *hash = psHashAlloc();
 
     psHashInsert(hash, "Lynda", IdAlloc("Lee"), (void (*)(void *))IdFree);
Index: /trunk/archive/pslib/src/Utils/tst_memory.c
===================================================================
--- /trunk/archive/pslib/src/Utils/tst_memory.c	(revision 445)
+++ /trunk/archive/pslib/src/Utils/tst_memory.c	(revision 446)
@@ -30,5 +30,5 @@
 }
 
-static psMemProblemCallback default_MemProblemCB = NULL;
+static psMemProblemCB default_MemProblemCB = NULL;
 
 static void my_MemProblemCB(const psMemBlock *ptr,
