IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jan 4, 2007, 4:52:24 PM (19 years ago)
Author:
jhoblitt
Message:

factor out error checking in psMemCheckType()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/jch-memory/psLib/src/sys/psMemory.c

    r10909 r10910  
    99*  @author Joshua Hoblitt, University of Hawaii
    1010*
    11 *  @version $Revision: 1.88.2.17 $ $Name: not supported by cvs2svn $
    12 *  @date $Date: 2007-01-05 01:58:58 $
     11*  @version $Revision: 1.88.2.18 $ $Name: not supported by cvs2svn $
     12*  @date $Date: 2007-01-05 02:52:24 $
    1313*
    1414*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    436436    memBlock->persistent = memory_is_persistent;
    437437
    438     // this block will be the add as the last mem block in the list
     438    // this block will be add as the last mem block in the list
    439439    memBlock->previousBlock = NULL;
    440440
     
    488488
    489489    // Reallocate the memory
     490
     491    // Is this the last block we allocated?  If it is, we need to keep track of
     492    // this fact and update lastMemBlockAllocated *after* the realloc or
     493    // lastMemBlockAllocated will be left with a bogus value
     494    bool isBlockLast = (memBlock == lastMemBlockAllocated);
    490495
    491496    memBlock = (psMemBlock *)realloc(memBlock, sizeof(psMemBlock) + size + sizeof(psPtr));
     
    501506    }
    502507
     508    // realloc() successed so need to update lastMemBlockAllocated if we just
     509    // mucked with the last mem block
     510    if (isBlockLast) {
     511        lastMemBlockAllocated = memBlock;
     512    }
     513
    503514    memBlock->userMemorySize = size;
    504515    *(psPtr *)((int8_t *) (memBlock + 1) + size) = P_PS_MEMMAGIC;
     
    770781            return true;
    771782        }
    772         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    773                      "Incorrect pointer.  Datatypes do not match.\n");
    774783        break;
    775784    case PS_DATA_BITSET:
     
    777786            return true;
    778787        }
    779         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    780                      "Incorrect pointer.  Datatypes do not match.\n");
    781788        break;
    782789    case PS_DATA_CUBE:
     
    784791            return true;
    785792        }
    786         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    787                      "Incorrect pointer.  Datatypes do not match.\n");
    788793        break;
    789794    case PS_DATA_FITS:
     
    791796            return true;
    792797        }
    793         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    794                      "Incorrect pointer.  Datatypes do not match.\n");
    795798        break;
    796799    case PS_DATA_HASH:
     
    798801            return true;
    799802        }
    800         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    801                      "Incorrect pointer.  Datatypes do not match.\n");
    802803        break;
    803804    case PS_DATA_HISTOGRAM:
     
    805806            return true;
    806807        }
    807         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    808                      "Incorrect pointer.  Datatypes do not match.\n");
    809808        break;
    810809    case PS_DATA_IMAGE:
     
    812811            return true;
    813812        }
    814         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    815                      "Incorrect pointer.  Datatypes do not match.\n");
    816813        break;
    817814    case PS_DATA_KERNEL:
     
    819816            return true;
    820817        }
    821         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    822                      "Incorrect pointer.  Datatypes do not match.\n");
    823818        break;
    824819    case PS_DATA_LINE:
     
    826821            return true;
    827822        }
    828         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    829                      "Incorrect pointer.  Datatypes do not match.\n");
    830823        break;
    831824    case PS_DATA_LIST:
     
    833826            return true;
    834827        }
    835         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    836                      "Incorrect pointer.  Datatypes do not match.\n");
    837828        break;
    838829    case PS_DATA_LOOKUPTABLE:
     
    840831            return true;
    841832        }
    842         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    843                      "Incorrect pointer.  Datatypes do not match.\n");
    844833        break;
    845834    case PS_DATA_METADATA:
     
    847836            return true;
    848837        }
    849         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    850                      "Incorrect pointer.  Datatypes do not match.\n");
    851838        break;
    852839    case PS_DATA_METADATAITEM:
     
    854841            return true;
    855842        }
    856         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    857                      "Incorrect pointer.  Datatypes do not match.\n");
    858843        break;
    859844    case PS_DATA_MINIMIZATION:
     
    861846            return true;
    862847        }
    863         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    864                      "Incorrect pointer.  Datatypes do not match.\n");
    865848        break;
    866849    case PS_DATA_PIXELS:
     
    868851            return true;
    869852        }
    870         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    871                      "Incorrect pointer.  Datatypes do not match.\n");
    872853        break;
    873854    case PS_DATA_PLANE:
     
    875856            return true;
    876857        }
    877         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    878                      "Incorrect pointer.  Datatypes do not match.\n");
    879858        break;
    880859    case PS_DATA_PLANEDISTORT:
     
    882861            return true;
    883862        }
    884         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    885                      "Incorrect pointer.  Datatypes do not match.\n");
    886863        break;
    887864    case PS_DATA_PLANETRANSFORM:
     
    889866            return true;
    890867        }
    891         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    892                      "Incorrect pointer.  Datatypes do not match.\n");
    893868        break;
    894869    case PS_DATA_POLYNOMIAL1D:
     
    896871            return true;
    897872        }
    898         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    899                      "Incorrect pointer.  Datatypes do not match.\n");
    900873        break;
    901874    case PS_DATA_POLYNOMIAL2D:
     
    903876            return true;
    904877        }
    905         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    906                      "Incorrect pointer.  Datatypes do not match.\n");
    907878        break;
    908879    case PS_DATA_POLYNOMIAL3D:
     
    910881            return true;
    911882        }
    912         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    913                      "Incorrect pointer.  Datatypes do not match.\n");
    914883        break;
    915884    case PS_DATA_POLYNOMIAL4D:
     
    917886            return true;
    918887        }
    919         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    920                      "Incorrect pointer.  Datatypes do not match.\n");
    921888        break;
    922889    case PS_DATA_PROJECTION:
     
    924891            return true;
    925892        }
    926         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    927                      "Incorrect pointer.  Datatypes do not match.\n");
    928893        break;
    929894    case PS_DATA_REGION:
     
    931896            return true;
    932897        }
    933         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    934                      "Incorrect pointer.  Datatypes do not match.\n");
    935898        break;
    936899    case PS_DATA_SCALAR:
     
    938901            return true;
    939902        }
    940         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    941                      "Incorrect pointer.  Datatypes do not match.\n");
    942903        break;
    943904    case PS_DATA_SPHERE:
     
    945906            return true;
    946907        }
    947         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    948                      "Incorrect pointer.  Datatypes do not match.\n");
    949908        break;
    950909    case PS_DATA_SPHEREROT:
     
    952911            return true;
    953912        }
    954         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    955                      "Incorrect pointer.  Datatypes do not match.\n");
    956913        break;
    957914    case PS_DATA_SPLINE1D:
     
    959916            return true;
    960917        }
    961         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    962                      "Incorrect pointer.  Datatypes do not match.\n");
    963918        break;
    964919    case PS_DATA_STATS:
     
    966921            return true;
    967922        }
    968         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    969                      "Incorrect pointer.  Datatypes do not match.\n");
    970923        break;
    971924    case PS_DATA_STRING:
     
    973926            return true;
    974927        }
    975         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    976                      "Incorrect pointer.  Datatypes do not match.\n");
    977928        break;
    978929    case PS_DATA_TIME:
     
    980931            return true;
    981932        }
    982         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    983                      "Incorrect pointer.  Datatypes do not match.\n");
    984933        break;
    985934    case PS_DATA_VECTOR:
     
    987936            return true;
    988937        }
    989         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_VALUE, false,
    990                      "Incorrect pointer.  Datatypes do not match.\n");
    991938        break;
    992939    default:
    993         PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_TYPE, true,
    994                      "Invalid datatype specified.\n");
    995     }
     940        // error state -- fall through to returning false
     941        break;
     942    }
     943
     944    PS_MEM_ERROR(PS_ERR_BAD_PARAMETER_TYPE, true,
     945                 "Invalid datatype specified.\n");
    996946
    997947    return false;
Note: See TracChangeset for help on using the changeset viewer.