Index: trunk/archive/pslib/src/Utils/psArray.h
===================================================================
--- trunk/archive/pslib/src/Utils/psArray.h	(revision 388)
+++ 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])); \
 	} \
