IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 10940


Ignore:
Timestamp:
Jan 5, 2007, 11:26:52 AM (19 years ago)
Author:
jhoblitt
Message:

convert P_PS_MEMMAGIC from a psPTR to a psU32 to save memory on 64bit platforms

Location:
branches/jch-memory/psLib/src/sys
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/jch-memory/psLib/src/sys/psAssert.h

    r9597 r10940  
    1616    psMemBlock *mb = (psMemBlock*)(NAME) - 1; \
    1717    if (mb->startblock != P_PS_MEMMAGIC || mb->endblock != P_PS_MEMMAGIC || \
    18             *(psPtr *)((int8_t *) (mb + 1) + mb->userMemorySize) != P_PS_MEMMAGIC) { \
     18            *(psU32 *)((char *)(mb + 1) + mb->userMemorySize) != P_PS_MEMMAGIC) { \
    1919        psError(PS_ERR_MEMORY_CORRUPTION, false, \
    2020                "Error: Pointer %s is corrupted or not on the PS memory system.", \
  • branches/jch-memory/psLib/src/sys/psMemory.c

    r10914 r10940  
    1010*  @author Joshua Hoblitt, University of Hawaii
    1111*
    12 *  @version $Revision: 1.88.2.20 $ $Name: not supported by cvs2svn $
    13 *  @date $Date: 2007-01-05 04:36:19 $
     12*  @version $Revision: 1.88.2.21 $ $Name: not supported by cvs2svn $
     13*  @date $Date: 2007-01-05 21:26:52 $
    1414*
    1515*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    175175    }
    176176
    177     if (*(psPtr *)((int8_t *) (memBlock + 1) + memBlock->userMemorySize) != P_PS_MEMMAGIC) {
     177    if (*(psU32 *)((char *)(memBlock + 1) + memBlock->userMemorySize) != P_PS_MEMMAGIC) {
    178178        if (!blockPrinted) {
    179179            psMemBlockPrint(output, memBlock);
     
    407407
    408408    // posts
    409     *(psPtr*)&memBlock->startblock = P_PS_MEMMAGIC;
    410     *(psPtr*)&memBlock->endblock = P_PS_MEMMAGIC;
    411     *(psPtr *)((int8_t *) (memBlock + 1) + size) = P_PS_MEMMAGIC;
     409    *(psU32 *)&memBlock->startblock = P_PS_MEMMAGIC;
     410    *(psU32 *)&memBlock->endblock  = P_PS_MEMMAGIC;
     411    *(psU32 *)((char *) (memBlock + 1) + size) = P_PS_MEMMAGIC;
    412412
    413413    // size of memory allocated
     
    507507
    508508    memBlock->userMemorySize = size;
    509     *(psPtr *)((int8_t *) (memBlock + 1) + size) = P_PS_MEMMAGIC;
     509    *(psU32 *)((char *)(memBlock + 1) + size) = P_PS_MEMMAGIC;
    510510
    511511    MUTEX_LOCK(&memBlockListMutex);
     
    10581058                   "\tFree function: %p\n"
    10591059                   "\tSize: %zd Reference count: %lu Persistent: %s\n"
    1060                    "\tPosts: %p %p %p\n"
     1060                   "\tPosts: %x %x %x\n"
    10611061                   "\tAllocated in %s at (%s:%d)\n"
    10621062                   "\t\tby Thread ID %lu\n",
     
    10661066                   memBlock->userMemorySize, memBlock->refCounter, (memBlock->persistent ? "Yes" : "No"),
    10671067                   memBlock->startblock, memBlock->endblock,
    1068                    *(psPtr *)((int8_t *) (memBlock + 1) + memBlock->userMemorySize),
     1068                   *(psU32 *)((char *) (memBlock + 1) + memBlock->userMemorySize),
    10691069                   memBlock->func, memBlock->file, memBlock->lineno, memBlock->tid);
    10701070}
  • branches/jch-memory/psLib/src/sys/psMemory.h

    r10914 r10940  
    1414 *  @ingroup MemoryManagement
    1515 *
    16  *  @version $Revision: 1.61.2.7 $ $Name: not supported by cvs2svn $
    17  *  @date $Date: 2007-01-05 04:36:19 $
     16 *  @version $Revision: 1.61.2.8 $ $Name: not supported by cvs2svn $
     17 *  @date $Date: 2007-01-05 21:26:52 $
    1818 *
    1919 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    3232 */
    3333
    34 #define P_PS_MEMMAGIC (psPtr)0xdeadbeef   // Magic number in psMemBlock header
     34#define P_PS_MEMMAGIC (psU32)0xdeadbeef   // Magic number in psMemBlock header
    3535
    3636/**
     
    6868typedef struct psMemBlock
    6969{
    70     const void* startblock;            ///< initialised to p_psMEMMAGIC
     70    const psU32 startblock;            ///< initialised to p_psMEMMAGIC
    7171    struct psMemBlock* previousBlock;  ///< previous block in allocation list
    7272    struct psMemBlock* nextBlock;      ///< next block allocation list
     
    8080    psReferenceCount refCounter;       ///< how many times pointer is referenced
    8181    bool persistent;                   ///< marks if this non-user persistent data like error stack, etc.
    82     const void* endblock;              ///< initialised to p_psMEMMAGIC
     82    const psU32 endblock;              ///< initialised to p_psMEMMAGIC
    8383}
    8484psMemBlock;
Note: See TracChangeset for help on using the changeset viewer.