Index: trunk/psLib/src/astro/psTime.c
===================================================================
--- trunk/psLib/src/astro/psTime.c	(revision 7300)
+++ trunk/psLib/src/astro/psTime.c	(revision 7427)
@@ -10,6 +10,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.83 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-06-02 21:33:33 $
+ *  @version $Revision: 1.84 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-08 19:54:10 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -267,4 +267,6 @@
     }
 
+    p_psMemAllocatePersistent(true);    // All memory allocated below is "persistent"
+
     // Read config file
     timeMetadata = psMetadataConfigParse(timeMetadata, &nFail, fileName, true);
@@ -278,4 +280,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.n");
     if(metadataItem == NULL) {
+        p_psMemAllocatePersistent(false);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.n");
@@ -287,4 +290,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.from");
     if(metadataItem == NULL) {
+        p_psMemAllocatePersistent(false);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.from");
@@ -293,4 +297,5 @@
     tablesFrom = psVectorCopy(tablesFrom, metadataItem->data.V, PS_TYPE_F64);
     if(tablesFrom->n != numTables) {
+        p_psMemAllocatePersistent(false);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesFrom->n, numTables);
         psFree(tablesFrom);
@@ -301,4 +306,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.to");
     if(metadataItem == NULL) {
+        p_psMemAllocatePersistent(false);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.to");
@@ -307,5 +313,7 @@
     }
     tablesTo = psVectorCopy(tablesTo, metadataItem->data.V, PS_TYPE_F64);
+    p_psMemAllocatePersistent(false);   // Turn off persistency
     if(tablesTo->n != numTables) {
+        p_psMemAllocatePersistent(false);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesTo->n, numTables);
         psFree(tablesFrom);
@@ -317,4 +325,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.index");
     if(metadataItem == NULL) {
+        p_psMemAllocatePersistent(false);
         psError(PS_ERR_BAD_PARAMETER_VALUE,true,PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.index");
@@ -325,4 +334,5 @@
     tablesIndex = psVectorCopy(tablesIndex, metadataItem->data.V, PS_TYPE_S32);
     if(tablesIndex->n != numTables) {
+        p_psMemAllocatePersistent(false);
         psError(PS_ERR_BAD_PARAMETER_VALUE,true,PS_ERRORTEXT_psTime_BAD_VECTOR,tablesIndex->n,numTables);
         psFree(tablesFrom);
@@ -335,4 +345,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.dir");
     if(metadataItem == NULL) {
+        p_psMemAllocatePersistent(false);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.dir");
@@ -347,4 +358,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.files");
     if(metadataItem == NULL) {
+        p_psMemAllocatePersistent(false);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.files");
@@ -361,4 +373,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.format");
     if(metadataItem == NULL) {
+        p_psMemAllocatePersistent(false);
         psError(PS_ERR_BAD_PARAMETER_VALUE,true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.format");
@@ -390,6 +403,8 @@
         tableFormat = getToken(&formatPtr,",",&status);
         if(tableFormat == NULL) {
+            p_psMemAllocatePersistent(false);
             psError(PS_ERR_BAD_PARAMETER_VALUE,true,PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                     "psLib.time.tables.format");
+            p_psMemAllocatePersistent(true);
         }
 
@@ -399,5 +414,7 @@
             numLines = psLookupTableRead(table);
         } else {
+            p_psMemAllocatePersistent(false);
             psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, i+1, numTables);
+            p_psMemAllocatePersistent(true);
         }
 
@@ -411,5 +428,7 @@
                 foundTable = true;
             } else if(foundTable==false && j==numTables-1) {
+                p_psMemAllocatePersistent(false);
                 psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_TABLE_COUNT, j, numTables);
+                p_psMemAllocatePersistent(true);
             }
         }
@@ -421,4 +440,6 @@
         i++;
     }
+
+    p_psMemAllocatePersistent(false);
 
     if(numTables != i) {
