Index: /trunk/psModules/src/camera/pmFPA.c
===================================================================
--- /trunk/psModules/src/camera/pmFPA.c	(revision 15972)
+++ /trunk/psModules/src/camera/pmFPA.c	(revision 15973)
@@ -271,8 +271,14 @@
 }
 
+bool psMemCheckReadout(psPtr ptr)
+{
+    PS_ASSERT_PTR(ptr, false);
+    return ( psMemGetDeallocator(ptr) == (psFreeFunc) readoutFree);
+}
+
+
 pmCell *pmCellAlloc(
     pmChip *chip,
-    const char *name
-)
+    const char *name)
 {
     pmCell *tmpCell = (pmCell *) psAlloc(sizeof(pmCell));
@@ -301,4 +307,11 @@
 }
 
+bool psMemCheckCell(psPtr ptr)
+{
+    PS_ASSERT_PTR(ptr, false);
+    return ( psMemGetDeallocator(ptr) == (psFreeFunc) cellFree);
+}
+
+
 pmChip *pmChipAlloc(
     pmFPA *fpa,
@@ -334,4 +347,10 @@
 }
 
+bool psMemCheckChip(psPtr ptr)
+{
+    PS_ASSERT_PTR(ptr, false);
+    return ( psMemGetDeallocator(ptr) == (psFreeFunc) chipFree);
+}
+
 pmFPA *pmFPAAlloc(const psMetadata *camera)
 {
@@ -347,5 +366,5 @@
 
     tmpFPA->analysis = psMetadataAlloc();
-    tmpFPA->camera = psMemIncrRefCounter((psPtr)camera);
+    tmpFPA->camera = psMemIncrRefCounter((psPtr) camera);
     tmpFPA->chips = psArrayAlloc(0);
     tmpFPA->hdu = NULL;
@@ -357,4 +376,11 @@
     return tmpFPA;
 }
+
+bool psMemCheckFPA(psPtr ptr)
+{
+    PS_ASSERT_PTR(ptr, false);
+    return ( psMemGetDeallocator(ptr) == (psFreeFunc) FPAFree);
+}
+
 
 // Check a cell to ensure that all component readouts have the parent pointer set correctly
@@ -402,5 +428,5 @@
 psBool pmFPACheckParents(pmFPA *fpa)
 {
-    PS_ASSERT_PTR_NON_NULL(fpa, true);
+    PS_ASSERT_PTR_NON_NULL(fpa, false);
 
     bool flag = true;
Index: /trunk/psModules/src/camera/pmFPA.h
===================================================================
--- /trunk/psModules/src/camera/pmFPA.h	(revision 15972)
+++ /trunk/psModules/src/camera/pmFPA.h	(revision 15973)
@@ -6,6 +6,6 @@
  * @author Eugene Magnier, IfA
  *
- * @version $Revision: 1.18 $ $Name: not supported by cvs2svn $
- * @date $Date: 2007-09-21 01:31:51 $
+ * @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
+ * @date $Date: 2008-01-02 20:32:25 $
  * Copyright 2005-2006 Institute for Astronomy, University of Hawaii
  */
@@ -144,30 +144,24 @@
 
 /// Free all readouts within a cell
-void pmCellFreeReadouts(pmCell *cell    ///< Cell for which to free readouts
-                       );
+void pmCellFreeReadouts(pmCell *cell);    ///< Cell for which to free readouts
 
 /// Free all cells within a chip
-void pmChipFreeCells(pmChip *chip       ///< Chip for which to free cells
-                    );
+void pmChipFreeCells(pmChip *chip);       ///< Chip for which to free cells
 
 /// Free all data within a readout
-void pmReadoutFreeData(pmReadout *readout ///< Readout for which to free data
-                      );
+void pmReadoutFreeData(pmReadout *readout); ///< Readout for which to free data
 
 /// Free all data within a cell (all readouts as well as metadata)
-void pmCellFreeData(pmCell *cell        ///< Cell for which to free data
-                   );
+void pmCellFreeData(pmCell *cell);        ///< Cell for which to free data
 
 /// Free all data within a chip (all cells as well as metadata)
-void pmChipFreeData(pmChip *chip        ///< Chip for which to free data
-                   );
+void pmChipFreeData(pmChip *chip);        ///< Chip for which to free data
 
 /// Free all data within an FPA (all chips as well as metadata)
-void pmFPAFreeData(pmFPA *fpa           ///< FPA for which to free data
-                  );
+void pmFPAFreeData(pmFPA *fpa);           ///< FPA for which to free data
 
 /// Allocate a readout associated with a cell
-pmReadout *pmReadoutAlloc(pmCell *cell  ///< Parent cell, or NULL
-                         );
+pmReadout *pmReadoutAlloc(pmCell *cell);  ///< Parent cell, or NULL
+bool psMemCheckReadout(psPtr ptr);
 
 /// Allocate a cell associated with a chip
@@ -175,6 +169,7 @@
 /// The name is used to set CELL.NAME within the concepts.
 pmCell *pmCellAlloc(pmChip *chip,       ///< Parent chip, or NULL
-                    const char *name    ///< Name of cell, for CELL.NAME
-                   );
+                    const char *name);  ///< Name of cell, for CELL.NAME
+bool psMemCheckCell(psPtr ptr);
+
 
 /// Allocate a chip associated with an FPA
@@ -182,11 +177,11 @@
 /// The name is used to set CHIP.NAME within the concepts
 pmChip *pmChipAlloc(pmFPA *fpa,         ///< Parent FPA, or NULL
-                    const char *name    ///< Name of chip, for CHIP.NAME
-                   );
+                    const char *name);  ///< Name of chip, for CHIP.NAME
+bool psMemCheckChip(psPtr ptr);
+
 
 /// Allocate an FPA
-pmFPA *pmFPAAlloc(const psMetadata *camera ///< Camera configuration (to store in FPA)
-                 );
-
+pmFPA *pmFPAAlloc(const psMetadata *camera); ///< Camera configuration (to store in FPA)
+bool psMemCheckFPA(psPtr ptr);
 
 /// Check parent links within an FPA
@@ -194,6 +189,6 @@
 /// Iterates through the FPA to verify that the "parent" links in the chip, cell and readout are set
 /// correctly.  If there are any incorrect links, they are fixed, and the function returns false.
-bool pmFPACheckParents(pmFPA *fpa       ///< FPA to check
-                      );
+bool pmFPACheckParents(pmFPA *fpa);     ///< FPA to check
+
 /// @}
 #endif // #ifndef PM_FPA_H
Index: /trunk/psModules/src/camera/pmHDU.c
===================================================================
--- /trunk/psModules/src/camera/pmHDU.c	(revision 15972)
+++ /trunk/psModules/src/camera/pmHDU.c	(revision 15973)
@@ -73,4 +73,11 @@
     return hdu;
 }
+
+bool psMemCheckHDU(psPtr ptr)
+{
+    PS_ASSERT_PTR(ptr, false);
+    return ( psMemGetDeallocator(ptr) == (psFreeFunc) hduFree);
+}
+
 
 bool pmHDUReadHeader(pmHDU *hdu, psFits *fits)
Index: /trunk/psModules/src/camera/pmHDU.h
===================================================================
--- /trunk/psModules/src/camera/pmHDU.h	(revision 15972)
+++ /trunk/psModules/src/camera/pmHDU.h	(revision 15973)
@@ -4,6 +4,6 @@
  * @author Paul Price, IfA
  *
- * @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- * @date $Date: 2007-01-24 02:54:14 $
+ * @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ * @date $Date: 2008-01-02 20:33:41 $
  * Copyright 2005-2006 Institute for Astronomy, University of Hawaii
  */
@@ -33,6 +33,6 @@
 
 /// Allocator for pmHDU
-pmHDU *pmHDUAlloc(const char *extname   ///< Extension name, or NULL for PHU
-                 );
+pmHDU *pmHDUAlloc(const char *extname);   ///< Extension name, or NULL for PHU
+bool psMemCheckHDU(psPtr ptr);
 
 /// Read the HDU header only
