Index: /trunk/psLib/src/sys/psMemory.c
===================================================================
--- /trunk/psLib/src/sys/psMemory.c	(revision 638)
+++ /trunk/psLib/src/sys/psMemory.c	(revision 639)
@@ -8,6 +8,6 @@
  *  @author Robert Lupton, Princeton University
  *
- *  @version $Revision: 1.16 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-05-11 01:57:54 $
+ *  @version $Revision: 1.17 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-05-11 20:11:17 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -62,6 +62,4 @@
                                       const char *file, int lineno)
 {
-    checkMemBlock(ptr, __func__);
-
     if (ptr->refCounter <= 0) {
         psError(__func__,
@@ -100,5 +98,5 @@
 long p_psMemFreeID = 0;   // notify user this block is freed
 
-long psMemSetAllocateID(long id) // set p_psMemAllocateID to id
+long psMemAllocateCallbackSetID(long id) // set p_psMemAllocateID to id
 {
     long old = p_psMemAllocateID;
@@ -108,5 +106,5 @@
 }
 
-long psMemSetFreeID(long id)  // set p_psMemFreeID to id
+long psMemFreeCallbackSetID(long id)  // set p_psMemFreeID to id
 {
     long old = p_psMemFreeID;
@@ -155,5 +153,5 @@
 }
 
-psMemFreeCallback psMemFreeSetCallback(psMemFreeCallback func)
+psMemFreeCallback psMemFreeCallbackSet(psMemFreeCallback func)
 {
     psMemFreeCallback old = memFreeCallback;
@@ -201,5 +199,5 @@
 
     if (m->startblock != P_PS_MEMMAGIC || m->endblock != P_PS_MEMMAGIC) {
-        psError(funcName, "psMemCheckCorruption: memory block %ld is corrupted (%x %x)",
+        psError(funcName, "psMemCheckCorruption: memory block %ld is corrupted (%p %p)",
                 m->id,m->startblock,m->endblock);
         return(1);
@@ -310,4 +308,9 @@
         pthread_mutex_unlock(&memBlockListMutex);
 
+        //  Did the user ask to be informed about this allocation?
+        if (ptr->id == p_psMemAllocateID) {
+            p_psMemAllocateID += memAllocateCallback(ptr);
+        }
+
         return ptr + 1;   // usr memory
     }
@@ -366,8 +369,9 @@
     int nleak = 0;
     int j = 0;
+    psMemBlock* topBlock = lastMemBlockAllocated;
 
     pthread_mutex_lock(&memBlockListMutex);
 
-    for (psMemBlock* iter = lastMemBlockAllocated; iter != NULL; iter=iter->nextBlock)
+    for (psMemBlock* iter = topBlock; iter != NULL; iter=iter->nextBlock)
     {
         if ( (iter->refCounter > 0) && (iter->id >= id0) ) {
@@ -391,11 +395,8 @@
     }
 
-    p_psFree(*arr,__FILE__, __LINE__);  // Don't generate a memory leak!
-
     *arr = p_psAlloc(nleak*sizeof(psMemBlock), __FILE__, __LINE__);
-
     pthread_mutex_lock(&memBlockListMutex);
 
-    for (psMemBlock* iter = lastMemBlockAllocated; iter != NULL; iter=iter->nextBlock)
+    for (psMemBlock* iter = topBlock; iter != NULL; iter=iter->nextBlock)
     {
         if ( (iter->refCounter > 0) && (iter->id >= id0) ) {
Index: /trunk/psLib/src/sys/psMemory.h
===================================================================
--- /trunk/psLib/src/sys/psMemory.h	(revision 638)
+++ /trunk/psLib/src/sys/psMemory.h	(revision 639)
@@ -12,6 +12,6 @@
  *  @author Robert Lupton, Princeton University
  *
- *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-04-28 02:51:39 $
+ *  @version $Revision: 1.10 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-05-11 20:11:17 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -135,10 +135,10 @@
 
 /// set p_psMemAllocateID to id
-long psMemAllocateIDSet(
+long psMemAllocateCallbackSetID(
     long id                         ///< ID to set
 );
 
 /// set p_psMemFreeID to id
-long psMemFreeIDSet(
+long psMemFreeCallbackSetID(
     long id                         ///< ID to set
 );
Index: /trunk/psLib/src/sysUtils/psMemory.c
===================================================================
--- /trunk/psLib/src/sysUtils/psMemory.c	(revision 638)
+++ /trunk/psLib/src/sysUtils/psMemory.c	(revision 639)
@@ -8,6 +8,6 @@
  *  @author Robert Lupton, Princeton University
  *
- *  @version $Revision: 1.16 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-05-11 01:57:54 $
+ *  @version $Revision: 1.17 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-05-11 20:11:17 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -62,6 +62,4 @@
                                       const char *file, int lineno)
 {
-    checkMemBlock(ptr, __func__);
-
     if (ptr->refCounter <= 0) {
         psError(__func__,
@@ -100,5 +98,5 @@
 long p_psMemFreeID = 0;   // notify user this block is freed
 
-long psMemSetAllocateID(long id) // set p_psMemAllocateID to id
+long psMemAllocateCallbackSetID(long id) // set p_psMemAllocateID to id
 {
     long old = p_psMemAllocateID;
@@ -108,5 +106,5 @@
 }
 
-long psMemSetFreeID(long id)  // set p_psMemFreeID to id
+long psMemFreeCallbackSetID(long id)  // set p_psMemFreeID to id
 {
     long old = p_psMemFreeID;
@@ -155,5 +153,5 @@
 }
 
-psMemFreeCallback psMemFreeSetCallback(psMemFreeCallback func)
+psMemFreeCallback psMemFreeCallbackSet(psMemFreeCallback func)
 {
     psMemFreeCallback old = memFreeCallback;
@@ -201,5 +199,5 @@
 
     if (m->startblock != P_PS_MEMMAGIC || m->endblock != P_PS_MEMMAGIC) {
-        psError(funcName, "psMemCheckCorruption: memory block %ld is corrupted (%x %x)",
+        psError(funcName, "psMemCheckCorruption: memory block %ld is corrupted (%p %p)",
                 m->id,m->startblock,m->endblock);
         return(1);
@@ -310,4 +308,9 @@
         pthread_mutex_unlock(&memBlockListMutex);
 
+        //  Did the user ask to be informed about this allocation?
+        if (ptr->id == p_psMemAllocateID) {
+            p_psMemAllocateID += memAllocateCallback(ptr);
+        }
+
         return ptr + 1;   // usr memory
     }
@@ -366,8 +369,9 @@
     int nleak = 0;
     int j = 0;
+    psMemBlock* topBlock = lastMemBlockAllocated;
 
     pthread_mutex_lock(&memBlockListMutex);
 
-    for (psMemBlock* iter = lastMemBlockAllocated; iter != NULL; iter=iter->nextBlock)
+    for (psMemBlock* iter = topBlock; iter != NULL; iter=iter->nextBlock)
     {
         if ( (iter->refCounter > 0) && (iter->id >= id0) ) {
@@ -391,11 +395,8 @@
     }
 
-    p_psFree(*arr,__FILE__, __LINE__);  // Don't generate a memory leak!
-
     *arr = p_psAlloc(nleak*sizeof(psMemBlock), __FILE__, __LINE__);
-
     pthread_mutex_lock(&memBlockListMutex);
 
-    for (psMemBlock* iter = lastMemBlockAllocated; iter != NULL; iter=iter->nextBlock)
+    for (psMemBlock* iter = topBlock; iter != NULL; iter=iter->nextBlock)
     {
         if ( (iter->refCounter > 0) && (iter->id >= id0) ) {
Index: /trunk/psLib/src/sysUtils/psMemory.h
===================================================================
--- /trunk/psLib/src/sysUtils/psMemory.h	(revision 638)
+++ /trunk/psLib/src/sysUtils/psMemory.h	(revision 639)
@@ -12,6 +12,6 @@
  *  @author Robert Lupton, Princeton University
  *
- *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-04-28 02:51:39 $
+ *  @version $Revision: 1.10 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-05-11 20:11:17 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -135,10 +135,10 @@
 
 /// set p_psMemAllocateID to id
-long psMemAllocateIDSet(
+long psMemAllocateCallbackSetID(
     long id                         ///< ID to set
 );
 
 /// set p_psMemFreeID to id
-long psMemFreeIDSet(
+long psMemFreeCallbackSetID(
     long id                         ///< ID to set
 );
