Index: /trunk/psLib/src/astro/psTime.c
===================================================================
--- /trunk/psLib/src/astro/psTime.c	(revision 7607)
+++ /trunk/psLib/src/astro/psTime.c	(revision 7608)
@@ -10,6 +10,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.85 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2006-06-13 23:56:11 $
+ *  @version $Revision: 1.86 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2006-06-21 17:46:06 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -267,5 +267,6 @@
     }
 
-    p_psMemAllocatePersistent(true);    // All memory allocated below is "persistent"
+    const bool initialPersistence =
+        p_psMemAllocatePersistent(true); // All memory allocated below is "persistent"
 
     // Read config file
@@ -280,5 +281,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.n");
     if(metadataItem == NULL) {
-        p_psMemAllocatePersistent(false);
+        p_psMemAllocatePersistent(initialPersistence);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.n");
@@ -290,5 +291,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.from");
     if(metadataItem == NULL) {
-        p_psMemAllocatePersistent(false);
+        p_psMemAllocatePersistent(initialPersistence);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.from");
@@ -297,5 +298,5 @@
     tablesFrom = psVectorCopy(tablesFrom, metadataItem->data.V, PS_TYPE_F64);
     if(tablesFrom->n != numTables) {
-        p_psMemAllocatePersistent(false);
+        p_psMemAllocatePersistent(initialPersistence);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesFrom->n, numTables);
         psFree(tablesFrom);
@@ -306,5 +307,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.to");
     if(metadataItem == NULL) {
-        p_psMemAllocatePersistent(false);
+        p_psMemAllocatePersistent(initialPersistence);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.to");
@@ -313,7 +314,6 @@
     }
     tablesTo = psVectorCopy(tablesTo, metadataItem->data.V, PS_TYPE_F64);
-    p_psMemAllocatePersistent(false);   // Turn off persistency
     if(tablesTo->n != numTables) {
-        p_psMemAllocatePersistent(false);
+        p_psMemAllocatePersistent(initialPersistence);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_BAD_VECTOR, tablesTo->n, numTables);
         psFree(tablesFrom);
@@ -325,5 +325,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.index");
     if(metadataItem == NULL) {
-        p_psMemAllocatePersistent(false);
+        p_psMemAllocatePersistent(initialPersistence);
         psError(PS_ERR_BAD_PARAMETER_VALUE,true,PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.index");
@@ -334,5 +334,5 @@
     tablesIndex = psVectorCopy(tablesIndex, metadataItem->data.V, PS_TYPE_S32);
     if(tablesIndex->n != numTables) {
-        p_psMemAllocatePersistent(false);
+        p_psMemAllocatePersistent(initialPersistence);
         psError(PS_ERR_BAD_PARAMETER_VALUE,true,PS_ERRORTEXT_psTime_BAD_VECTOR,tablesIndex->n,numTables);
         psFree(tablesFrom);
@@ -345,5 +345,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.dir");
     if(metadataItem == NULL) {
-        p_psMemAllocatePersistent(false);
+        p_psMemAllocatePersistent(initialPersistence);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.dir");
@@ -358,5 +358,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.files");
     if(metadataItem == NULL) {
-        p_psMemAllocatePersistent(false);
+        p_psMemAllocatePersistent(initialPersistence);
         psError(PS_ERR_BAD_PARAMETER_VALUE, true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.files");
@@ -373,5 +373,5 @@
     metadataItem = psMetadataLookup(timeMetadata, "psLib.time.tables.format");
     if(metadataItem == NULL) {
-        p_psMemAllocatePersistent(false);
+        p_psMemAllocatePersistent(initialPersistence);
         psError(PS_ERR_BAD_PARAMETER_VALUE,true, PS_ERRORTEXT_psTime_LOOKUP_METADATA_FAILED,
                 "psLib.time.tables.format");
@@ -403,8 +403,6 @@
         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);
         }
 
@@ -414,7 +412,5 @@
             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);
         }
 
@@ -428,7 +424,5 @@
                 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);
             }
         }
@@ -441,5 +435,5 @@
     }
 
-    p_psMemAllocatePersistent(false);
+    p_psMemAllocatePersistent(initialPersistence);
 
     if(numTables != i) {
