Changeset 5216
- Timestamp:
- Sep 30, 2005, 4:22:26 PM (21 years ago)
- Location:
- trunk/psLib
- Files:
-
- 16 edited
-
pslib.kdevelop (modified) (3 diffs)
-
src/Makefile.am (modified) (1 diff)
-
src/db/psDB.c (modified) (6 diffs)
-
src/imageops/psImageStructManip.c (modified) (3 diffs)
-
src/mathtypes/psImage.c (modified) (2 diffs)
-
src/sys/psMemory.c (modified) (3 diffs)
-
src/sys/psMemory.h (modified) (2 diffs)
-
src/types/psArray.c (modified) (7 diffs)
-
src/types/psArray.h (modified) (3 diffs)
-
src/types/psList.c (modified) (4 diffs)
-
src/types/psMetadataConfig.c (modified) (3 diffs)
-
test/FullUnitTest.in (modified) (4 diffs)
-
test/astro/tst_psTime_04.c (modified) (2 diffs)
-
test/db/tst_psDB.c (modified) (14 diffs)
-
test/sys/verified/tst_psMemory.stderr (modified) (10 diffs)
-
test/types/tst_psArray.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/pslib.kdevelop
r5194 r5216 14 14 <projectdirectory>.</projectdirectory> 15 15 <absoluteprojectpath>false</absoluteprojectpath> 16 <description />16 <description></description> 17 17 <secondaryLanguages/> 18 18 </general> … … 49 49 <envvar value="1" name="WANT_AUTOMAKE_1_6" /> 50 50 </envvars> 51 <abortonerror>false</abortonerror> 52 <numberofjobs>3</numberofjobs> 53 <dontact>false</dontact> 54 <makebin></makebin> 55 <prio>0</prio> 51 56 </make> 52 57 </kdevautoproject> … … 169 174 <kdevdebugger> 170 175 <general> 171 <programargs />172 <gdbpath />176 <programargs></programargs> 177 <gdbpath></gdbpath> 173 178 <dbgshell>libtool</dbgshell> 174 <configGdbScript />175 <runShellScript />176 <runGdbScript />179 <configGdbScript></configGdbScript> 180 <runShellScript></runShellScript> 181 <runGdbScript></runGdbScript> 177 182 <breakonloadinglibs>true</breakonloadinglibs> 178 183 <separatetty>false</separatetty> -
trunk/psLib/src/Makefile.am
r4981 r5216 5 5 libpslib_la_CPPFLAGS = $(SRCINC) 6 6 libpslib_la_LIBADD = $(SRCSUBLIBS) 7 libpslib_la_DEPENDENCIES = $(SRCSUBLIBS) 7 8 8 9 libpslib_la_SOURCES = psTest.c -
trunk/psLib/src/db/psDB.c
r5136 r5216 12 12 * @author Joshua Hoblitt 13 13 * 14 * @version $Revision: 1.4 3$ $Name: not supported by cvs2svn $15 * @date $Date: 2005- 09-26 21:13:16$14 * @version $Revision: 1.44 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2005-10-01 02:22:09 $ 16 16 * 17 17 * Copyright 2005 Joshua Hoblitt, University of Hawaii … … 43 43 } 44 44 mysqlType; 45 46 static psHash *pTypeToSQLlookupTable = NULL; 47 static psHash *sqlToPTypeLookupTable = NULL; 48 static psHash *mysqlToSqlLookupTable = NULL; 49 static psHash *pTypeToMysqlLookupTable = NULL; 45 50 46 51 // database utility functions … … 1421 1426 static psHash *psDBGetPTypeToSQLTable(void) 1422 1427 { 1423 static psHash *lookupTable = NULL; 1424 1425 if (!lookupTable) { 1426 lookupTable = psHashAlloc(14); 1428 1429 if (!pTypeToSQLlookupTable) { 1430 pTypeToSQLlookupTable = psHashAlloc(14); 1427 1431 1428 1432 // no support for CHAR, TEXT or GLOB 1429 psDBAddToLookupTable( lookupTable, PS_TYPE_S8, "TINYINT");1430 psDBAddToLookupTable( lookupTable, PS_TYPE_S16, "SMALLINT");1431 psDBAddToLookupTable( lookupTable, PS_TYPE_S32, "INT");1432 psDBAddToLookupTable( lookupTable, PS_TYPE_S64, "BIGINT");1433 psDBAddToLookupTable( lookupTable, PS_TYPE_U8, "UNSIGNED TINYINT");1434 psDBAddToLookupTable( lookupTable, PS_TYPE_U16, "UNSIGNED SMALLINT");1435 psDBAddToLookupTable( lookupTable, PS_TYPE_U32, "UNSIGNED INT");1436 psDBAddToLookupTable( lookupTable, PS_TYPE_U64, "UNSIGNED BIGINT");1437 psDBAddToLookupTable( lookupTable, PS_TYPE_F32, "FLOAT");1438 psDBAddToLookupTable( lookupTable, PS_TYPE_F64, "DOUBLE");1439 psDBAddToLookupTable( lookupTable, PS_TYPE_C32, "PS_TYPE_C32 is not supported");1440 psDBAddToLookupTable( lookupTable, PS_TYPE_C64, "PS_TYPE_C64 is not supported");1441 psDBAddToLookupTable( lookupTable, PS_TYPE_BOOL,"TINYINT");1442 psDBAddToLookupTable( lookupTable, PS_DATA_STRING, "VARCHAR");1433 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_S8, "TINYINT"); 1434 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_S16, "SMALLINT"); 1435 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_S32, "INT"); 1436 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_S64, "BIGINT"); 1437 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_U8, "UNSIGNED TINYINT"); 1438 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_U16, "UNSIGNED SMALLINT"); 1439 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_U32, "UNSIGNED INT"); 1440 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_U64, "UNSIGNED BIGINT"); 1441 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_F32, "FLOAT"); 1442 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_F64, "DOUBLE"); 1443 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_C32, "PS_TYPE_C32 is not supported"); 1444 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_C64, "PS_TYPE_C64 is not supported"); 1445 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_TYPE_BOOL,"TINYINT"); 1446 psDBAddToLookupTable(pTypeToSQLlookupTable, PS_DATA_STRING, "VARCHAR"); 1443 1447 } 1444 1448 1445 1449 // simulate true ref counting 1446 psMemIncrRefCounter( lookupTable);1447 1448 return lookupTable;1450 psMemIncrRefCounter(pTypeToSQLlookupTable); 1451 1452 return pTypeToSQLlookupTable; 1449 1453 } 1450 1454 1451 1455 static void psDBPTypeToSQLTableCleanup(void) 1452 1456 { 1453 psHash *lookupTable; 1454 1455 lookupTable = psDBGetPTypeToSQLTable(); 1456 1457 psMemDecrRefCounter(lookupTable); 1458 psFree(lookupTable); 1457 psFree(pTypeToSQLlookupTable); 1458 pTypeToSQLlookupTable = NULL; 1459 1459 } 1460 1460 1461 1461 static psHash *psDBGetSQLToPTypeTable(void) 1462 1462 { 1463 static psHash *lookupTable = NULL;1464 1463 psHash *psToSQLTable; 1465 1464 psList *list; … … 1468 1467 char *value; 1469 1468 1470 if (! lookupTable) {1469 if (!sqlToPTypeLookupTable) { 1471 1470 // invert the PSToSQL table 1472 1471 psToSQLTable = psDBGetPTypeToSQLTable(); 1473 lookupTable = psHashAlloc(psToSQLTable->n);1472 sqlToPTypeLookupTable = psHashAlloc(psToSQLTable->n); 1474 1473 1475 1474 list = psHashKeyList(psToSQLTable); … … 1479 1478 value = psHashLookup(psToSQLTable, key); 1480 1479 // switch key and value 1481 psHashAdd( lookupTable, value, key);1480 psHashAdd(sqlToPTypeLookupTable, value, key); 1482 1481 } 1483 1482 1484 1483 // Add BLOB & TEXT reverse mappings 1485 1484 value = psDBIntToString((psU64)PS_DATA_STRING); 1486 psHashAdd( lookupTable, "BLOB", value);1487 psHashAdd( lookupTable, "TEXT", value);1485 psHashAdd(sqlToPTypeLookupTable, "BLOB", value); 1486 psHashAdd(sqlToPTypeLookupTable, "TEXT", value); 1488 1487 psFree(value); 1489 1488 1490 1489 // DECIMAL does not exist in the pType to SQL table 1491 1490 value = psDBIntToString(0); 1492 psHashAdd( lookupTable, "DECIMAL", value);1491 psHashAdd(sqlToPTypeLookupTable, "DECIMAL", value); 1493 1492 psFree(value); 1494 1493 … … 1499 1498 1500 1499 // simulate true ref counting 1501 psMemIncrRefCounter( lookupTable);1502 1503 return lookupTable;1500 psMemIncrRefCounter(sqlToPTypeLookupTable); 1501 1502 return sqlToPTypeLookupTable; 1504 1503 } 1505 1504 1506 1505 static void psDBSQLToPTypeTableCleanup(void) 1507 1506 { 1508 psHash *lookupTable; 1509 1510 lookupTable = psDBGetSQLToPTypeTable(); 1511 1512 psMemDecrRefCounter(lookupTable); 1513 psFree(lookupTable); 1507 psFree(sqlToPTypeLookupTable); 1508 sqlToPTypeLookupTable = NULL; 1514 1509 } 1515 1510 1516 1511 static psHash *psDBGetMySQLToSQLTable(void) 1517 1512 { 1518 static psHash *lookupTable = NULL; 1519 1520 if (!lookupTable) { 1521 lookupTable = psHashAlloc(20); 1522 1523 psDBAddToLookupTable(lookupTable, FIELD_TYPE_TINY, "TINYINT"); 1524 psDBAddToLookupTable(lookupTable, FIELD_TYPE_SHORT, "SMALLINT"); 1525 psDBAddToLookupTable(lookupTable, FIELD_TYPE_LONG, "INT"); 1526 psDBAddToLookupTable(lookupTable, FIELD_TYPE_INT24, "MEDIUMINT"); 1527 psDBAddToLookupTable(lookupTable, FIELD_TYPE_LONGLONG, "BIGINT"); 1528 psDBAddToLookupTable(lookupTable, FIELD_TYPE_DECIMAL, "DECIMAL"); 1529 psDBAddToLookupTable(lookupTable, FIELD_TYPE_FLOAT, "FLOAT"); 1530 psDBAddToLookupTable(lookupTable, FIELD_TYPE_DOUBLE, "DOUBLE"); 1531 psDBAddToLookupTable(lookupTable, FIELD_TYPE_TIMESTAMP, "TIMESTAMP"); 1532 psDBAddToLookupTable(lookupTable, FIELD_TYPE_DATE, "DATE"); 1533 psDBAddToLookupTable(lookupTable, FIELD_TYPE_TIME, "TIME"); 1534 psDBAddToLookupTable(lookupTable, FIELD_TYPE_DATETIME, "DATETIME"); 1535 psDBAddToLookupTable(lookupTable, FIELD_TYPE_YEAR, "YEAR"); 1536 psDBAddToLookupTable(lookupTable, FIELD_TYPE_STRING, "CHAR"); 1537 psDBAddToLookupTable(lookupTable, FIELD_TYPE_VAR_STRING,"VARCHAR"); 1538 psDBAddToLookupTable(lookupTable, FIELD_TYPE_BLOB, "BLOB"); 1539 psDBAddToLookupTable(lookupTable, FIELD_TYPE_SET, "SET"); 1540 psDBAddToLookupTable(lookupTable, FIELD_TYPE_ENUM, "ENUM"); 1541 psDBAddToLookupTable(lookupTable, FIELD_TYPE_NULL, "NULL-type"); 1542 psDBAddToLookupTable(lookupTable, FIELD_TYPE_CHAR, "TINYINT"); 1513 if (!mysqlToSqlLookupTable) { 1514 mysqlToSqlLookupTable = psHashAlloc(20); 1515 1516 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_TINY, "TINYINT"); 1517 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_SHORT, "SMALLINT"); 1518 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_LONG, "INT"); 1519 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_INT24, "MEDIUMINT"); 1520 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_LONGLONG, "BIGINT"); 1521 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_DECIMAL, "DECIMAL"); 1522 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_FLOAT, "FLOAT"); 1523 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_DOUBLE, "DOUBLE"); 1524 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_TIMESTAMP, "TIMESTAMP"); 1525 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_DATE, "DATE"); 1526 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_TIME, "TIME"); 1527 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_DATETIME, "DATETIME"); 1528 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_YEAR, "YEAR"); 1529 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_STRING, "CHAR"); 1530 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_VAR_STRING,"VARCHAR"); 1531 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_BLOB, "BLOB"); 1532 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_SET, "SET"); 1533 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_ENUM, "ENUM"); 1534 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_NULL, "NULL-type"); 1535 psDBAddToLookupTable(mysqlToSqlLookupTable, FIELD_TYPE_CHAR, "TINYINT"); 1543 1536 } 1544 1537 1545 1538 // simulate true ref counting 1546 psMemIncrRefCounter( lookupTable);1547 1548 return lookupTable;1539 psMemIncrRefCounter(mysqlToSqlLookupTable); 1540 1541 return mysqlToSqlLookupTable; 1549 1542 } 1550 1543 1551 1544 static void psDBMySQLToSQLTableCleanup(void) 1552 1545 { 1553 psHash *lookupTable; 1554 1555 lookupTable = psDBGetMySQLToSQLTable(); 1556 1557 psMemDecrRefCounter(lookupTable); 1558 psFree(lookupTable); 1546 psFree(mysqlToSqlLookupTable); 1547 mysqlToSqlLookupTable = NULL; 1559 1548 } 1560 1549 1561 1550 static psHash *psDBGetPTypeToMySQLTable(void) 1562 1551 { 1563 static psHash *lookupTable = NULL; 1564 1565 if (!lookupTable) { 1566 lookupTable = psHashAlloc(14); 1567 1568 psDBAddVoidToLookupTable(lookupTable, PS_TYPE_S8, psDBMySQLTypeAlloc(MYSQL_TYPE_TINY, false)); 1569 psDBAddVoidToLookupTable(lookupTable, PS_TYPE_S16, psDBMySQLTypeAlloc(MYSQL_TYPE_SHORT, false)); 1570 psDBAddVoidToLookupTable(lookupTable, PS_TYPE_S32, psDBMySQLTypeAlloc(MYSQL_TYPE_LONG, false)); 1571 psDBAddVoidToLookupTable(lookupTable, PS_TYPE_S64, psDBMySQLTypeAlloc(MYSQL_TYPE_LONGLONG, false)); 1572 psDBAddVoidToLookupTable(lookupTable, PS_TYPE_U8, psDBMySQLTypeAlloc(MYSQL_TYPE_TINY, true)); 1573 psDBAddVoidToLookupTable(lookupTable, PS_TYPE_U16, psDBMySQLTypeAlloc(MYSQL_TYPE_SHORT, true)); 1574 psDBAddVoidToLookupTable(lookupTable, PS_TYPE_U32, psDBMySQLTypeAlloc(MYSQL_TYPE_LONG, true)); 1575 psDBAddVoidToLookupTable(lookupTable, PS_TYPE_U64, psDBMySQLTypeAlloc(MYSQL_TYPE_LONGLONG, true)); 1576 psDBAddVoidToLookupTable(lookupTable, PS_TYPE_F32, psDBMySQLTypeAlloc(MYSQL_TYPE_FLOAT, false)); 1577 psDBAddVoidToLookupTable(lookupTable, PS_TYPE_F64, psDBMySQLTypeAlloc(MYSQL_TYPE_DOUBLE, false)); 1552 if (!pTypeToMysqlLookupTable) { 1553 pTypeToMysqlLookupTable = psHashAlloc(14); 1554 1555 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_S8, psDBMySQLTypeAlloc(MYSQL_TYPE_TINY, false)); 1556 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_S16, psDBMySQLTypeAlloc(MYSQL_TYPE_SHORT, false)); 1557 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_S32, psDBMySQLTypeAlloc(MYSQL_TYPE_LONG, false)); 1558 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_S64, psDBMySQLTypeAlloc(MYSQL_TYPE_LONGLONG, false)); 1559 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_U8, psDBMySQLTypeAlloc(MYSQL_TYPE_TINY, true)); 1560 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_U16, psDBMySQLTypeAlloc(MYSQL_TYPE_SHORT, true)); 1561 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_U32, psDBMySQLTypeAlloc(MYSQL_TYPE_LONG, true)); 1562 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_U64, psDBMySQLTypeAlloc(MYSQL_TYPE_LONGLONG, true)); 1563 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_F32, psDBMySQLTypeAlloc(MYSQL_TYPE_FLOAT, false)); 1564 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_F64, psDBMySQLTypeAlloc(MYSQL_TYPE_DOUBLE, false)); 1578 1565 // bogus type 1579 psDBAddVoidToLookupTable( lookupTable, PS_TYPE_C32, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false));1566 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_C32, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 1580 1567 // bogus type 1581 psDBAddVoidToLookupTable( lookupTable, PS_TYPE_C64, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false));1582 psDBAddVoidToLookupTable( lookupTable, PS_TYPE_BOOL, psDBMySQLTypeAlloc(MYSQL_TYPE_TINY, true));1568 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_C64, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 1569 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_BOOL, psDBMySQLTypeAlloc(MYSQL_TYPE_TINY, true)); 1583 1570 // XXX: removed PS_TYPE_PTR, can this be removed too? 1584 // psDBAddVoidToLookupTable( lookupTable, PS_TYPE_PTR, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false));1585 1586 psDBAddVoidToLookupTable( lookupTable, PS_DATA_STRING, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false));1587 psDBAddVoidToLookupTable( lookupTable, PS_DATA_VECTOR, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false));1588 psDBAddVoidToLookupTable( lookupTable, PS_DATA_IMAGE, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false));1589 psDBAddVoidToLookupTable( lookupTable, PS_DATA_HASH, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false));1590 psDBAddVoidToLookupTable( lookupTable, PS_DATA_LOOKUPTABLE,1571 // psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_TYPE_PTR, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 1572 1573 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_STRING, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 1574 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_VECTOR, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 1575 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_IMAGE, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 1576 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_HASH, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 1577 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_LOOKUPTABLE, 1591 1578 psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 1592 // psDBAddVoidToLookupTable( lookupTable, PS_DATA_JPEG, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false));1593 // psDBAddVoidToLookupTable( lookupTable, PS_DATA_PNG, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false));1594 // psDBAddVoidToLookupTable( lookupTable, PS_DATA_ASTROM, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false));1595 psDBAddVoidToLookupTable( lookupTable, PS_DATA_UNKNOWN,psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false));1579 // psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_JPEG, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 1580 // psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_PNG, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 1581 // psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_ASTROM, psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 1582 psDBAddVoidToLookupTable(pTypeToMysqlLookupTable, PS_DATA_UNKNOWN,psDBMySQLTypeAlloc(MYSQL_TYPE_VAR_STRING, false)); 1596 1583 } 1597 1584 1598 1585 // simulate true ref counting 1599 psMemIncrRefCounter( lookupTable);1600 1601 return lookupTable;1586 psMemIncrRefCounter(pTypeToMysqlLookupTable); 1587 1588 return pTypeToMysqlLookupTable; 1602 1589 } 1603 1590 1604 1591 static void psDBPTypeToMySQLTableCleanup(void) 1605 1592 { 1606 psHash *lookupTable; 1607 1608 lookupTable = psDBGetPTypeToMySQLTable(); 1609 1610 psMemDecrRefCounter(lookupTable); 1611 psFree(lookupTable); 1593 psFree(pTypeToMysqlLookupTable); 1594 pTypeToMysqlLookupTable = NULL; 1612 1595 } 1613 1596 -
trunk/psLib/src/imageops/psImageStructManip.c
r5057 r5216 8 8 * @author Robert DeSonia, MHPCC 9 9 * 10 * @version $Revision: 1. 5$ $Name: not supported by cvs2svn $11 * @date $Date: 2005- 09-15 21:22:22$10 * @version $Revision: 1.6 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2005-10-01 02:22:11 $ 12 12 * 13 13 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 96 96 // if a child, need to orphan (disassociate from parent) first 97 97 if (out->parent != NULL) { 98 psArrayRemove(out->parent->children,out); // remove from parent's knowledge 98 psArrayRemove(out->parent->children,psMemIncrRefCounter(out)); 99 // remove from parent's knowledge without triggering a free 99 100 out->parent = NULL; // break link to parent 100 101 } … … 127 128 128 129 // add output image as a child of the input image. 129 psS32 n = 0; 130 psArray* children = image->children; 131 if (children == NULL) { 132 children = psArrayAlloc(16); // start with a reasonable size for growth 133 } else if (children->nalloc == children->n) { // full? 134 n = children->n; 135 children = psArrayRealloc(children,n*2); // double the array size 136 } else { 137 n = children->n; 138 } 139 children->data[n] = out; 140 children->n = n+1; 141 image->children = children; // push back any change (esp. if children==NULL before) 130 image->children = psArrayAdd(image->children,16,out); 131 psMemDecrRefCounter(out); // don't count the reference held by parent as a true reference 142 132 143 133 return (out); -
trunk/psLib/src/mathtypes/psImage.c
r5178 r5216 9 9 * @author Ross Harman, MHPCC 10 10 * 11 * @version $Revision: 1.8 8$ $Name: not supported by cvs2svn $12 * @date $Date: 2005- 09-29 19:05:02 $11 * @version $Revision: 1.89 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-10-01 02:22:12 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 39 39 40 40 if (image->parent != NULL) { 41 psMemBlock* ptr = ((psMemBlock*)image)-1; 42 int ref = ptr->refCounter; 43 ptr->refCounter = 2; // make sure psFree is not retriggered 41 44 psArrayRemove(image->parent->children,image); 45 ptr->refCounter = ref; // restore previous count (not assuming zero, but should be) 46 42 47 image->parent = NULL; 43 48 } -
trunk/psLib/src/sys/psMemory.c
r4971 r5216 8 8 * @author Robert Lupton, Princeton University 9 9 * 10 * @version $Revision: 1.6 4$ $Name: not supported by cvs2svn $11 * @date $Date: 2005- 09-08 00:17:26$10 * @version $Revision: 1.65 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2005-10-01 02:22:13 $ 12 12 * 13 13 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 583 583 } 584 584 585 psPtr p_psMemSetRefCounter( 586 psPtr vptr, 587 psReferenceCount count, 588 const char *file, 589 psS32 lineno) 590 { 591 psMemBlock* ptr; 592 593 if (vptr == NULL) { 594 return vptr; 595 } 596 597 if (count < 0) { 598 count = 0; 599 } 600 601 ptr = ((psMemBlock* ) vptr) - 1; 602 603 if (checkMemBlock(ptr, __func__)) { 604 memProblemCallback(ptr, file, lineno); 605 } 606 607 pthread_mutex_lock(&ptr->refCounterMutex); 608 ptr->refCounter = count; 609 pthread_mutex_unlock(&ptr->refCounterMutex); 610 611 if (count < 1) { 612 vptr = p_psMemDecrRefCounter(vptr,file,lineno); 613 } 614 615 return vptr; 616 } 617 585 618 // decrement and return refCounter 586 619 psPtr p_psMemDecrRefCounter(psPtr vptr, … … 707 740 return PTR->freeFunc; 708 741 } 709 710 742 711 743 bool psMemCheckType(psDataType type, -
trunk/psLib/src/sys/psMemory.h
r4920 r5216 12 12 * @ingroup MemoryManagement 13 13 * 14 * @version $Revision: 1.5 0$ $Name: not supported by cvs2svn $15 * @date $Date: 2005- 08-31 02:07:11$14 * @version $Revision: 1.51 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2005-10-01 02:22:13 $ 16 16 * 17 17 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 350 350 #endif // !DOXYGEN 351 351 352 /** Set reference counter and return the pointer 353 * 354 * @ingroup memRefCount 355 * 356 * @return psPtr the pointer with refCount set, or NULL if pointer is 357 * fully dereferenced. 358 */ 359 #ifdef DOXYGEN 360 psPtr psMemSetRefCounter( 361 psPtr ptr, ///< Pointer to decrement refCounter, and return 362 psReferenceCount count ///< New reference count 363 ); 364 #else // DOXYGEN 365 psPtr p_psMemSetRefCounter( 366 psPtr vptr, ///< Pointer to decrement refCounter, and return 367 psReferenceCount count, ///< New reference count 368 const char *file, ///< File of call 369 psS32 lineno ///< Line number of call 370 ); 371 372 #ifndef SWIG 373 #define psMemSetRefCounter(vptr, count) p_psMemSetRefCounter(vptr, count, __FILE__, __LINE__) 374 #endif // !SWIG 375 376 #endif // !DOXYGEN 377 352 378 /** Set callback for problems. 353 379 * -
trunk/psLib/src/types/psArray.c
r5114 r5216 9 9 * @author Ross Harman, MHPCC 10 10 * 11 * @version $Revision: 1.3 8$ $Name: not supported by cvs2svn $12 * @date $Date: 2005- 09-24 00:17:44$11 * @version $Revision: 1.39 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-10-01 02:22:15 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 41 41 } 42 42 43 psArrayElement Free(psArr);43 psArrayElementsFree(psArr); 44 44 45 45 psFree(psArr->data); … … 98 98 { 99 99 if (array == NULL) { 100 return array; 100 int d = (delta > 0) ? delta : 10; // as spec'ed in SDRS. 101 array = psArrayAlloc(d); 102 array->n = 0; 101 103 } 102 104 … … 132 134 if (psArrData[i] == data) { 133 135 memmove(&array->data[i],&array->data[i+1],(n-i-1)*sizeof(psPtr)); 136 psFree(data); // free the removed item (see Bug #449) 134 137 n--; 135 138 success = true; … … 141 144 } 142 145 143 void psArrayElement Free(psArray* psArr)146 void psArrayElementsFree(psArray* psArr) 144 147 { 145 148 … … 205 208 } 206 209 psFree(array->data[position]); 207 array->data[position] = data;210 array->data[position] = psMemIncrRefCounter(data); 208 211 209 212 return true; … … 232 235 return NULL; 233 236 } 234 return array->data[position]; 235 } 236 237 238 239 237 return psMemIncrRefCounter(array->data[position]); 238 } -
trunk/psLib/src/types/psArray.h
r5114 r5216 1 2 1 /** @file psArray.h 3 2 * … … 12 11 * @author Ross Harman, MHPCC 13 12 * 14 * @version $Revision: 1.3 2$ $Name: not supported by cvs2svn $15 * @date $Date: 2005- 09-24 00:17:44$13 * @version $Revision: 1.33 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2005-10-01 02:22:15 $ 16 15 * 17 16 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 116 115 * 117 116 */ 118 void psArrayElement Free(117 void psArrayElementsFree( 119 118 psArray* psArr ///< Void pointer array to destroy. 120 119 ); -
trunk/psLib/src/types/psList.c
r5174 r5216 6 6 * @author Robert Daniel DeSonia, MHPCC 7 7 * 8 * @version $Revision: 1.4 3$ $Name: not supported by cvs2svn $9 * @date $Date: 2005- 09-29 01:15:38$8 * @version $Revision: 1.44 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2005-10-01 02:22:15 $ 10 10 * 11 11 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 41 41 pthread_mutex_lock(&list->p_lock); 42 42 43 // remove the free function of iterators to avoid double removal from list43 // remove the associated iterators -- any references are invalid once psList is freed. 44 44 psArray* iterators = list->iterators; 45 for (int i = 0; i < iterators->n; i++) { 46 psMemSetDeallocator(iterators->data[i], NULL); 47 } 48 49 psFree(list->iterators); 45 // ONLY orphan the iterators if the list iterators are about to be destroyed 46 // a case where this is not the case is in psListSort. 47 if (psMemGetRefCounter(iterators) < 2) { 48 for (int i = 0; i < iterators->n; i++) { 49 // orphan iterators first to avoid any callbacks to dying list 50 ((psListIterator*)iterators->data[i])->list = NULL; 51 // remove all external references 52 psMemSetRefCounter(iterators->data[i], 1); 53 } 54 } 55 psFree(iterators); 50 56 51 57 for (psListElem* ptr = list->head; ptr != NULL;) { … … 71 77 72 78 // remove this iterator from the parent list 73 psArrayRemove(iter->list->iterators,iter); 74 79 if (iter->list != NULL) { 80 psArray* iters = iter->list->iterators; 81 for (int lcv = 0; lcv < iters->n; lcv++) { 82 if (iters->data[lcv] == iter) { 83 // following is done to match SDRS. 84 iters->data[lcv] = iters->data[iters->n-1]; 85 iters->n--; 86 break; 87 } 88 } 89 } 75 90 } 76 91 … … 164 179 iter->mutable = mutable; 165 180 166 // add to the list's array of iterators 167 psArray* listIterators = list->iterators; 168 int num = listIterators->n; 169 if ( num >= listIterators->nalloc) { 170 // need to resize the array to make more room for another iterator. 171 list->iterators = psArrayRealloc(listIterators,listIterators->nalloc*2); 172 listIterators = list->iterators; 173 } 174 listIterators->data[num] = iter; 175 listIterators->n = num+1; 181 // associate the iterator with the list 182 list->iterators = psArrayAdd(list->iterators,0,iter); 183 // don't want the list's array of iterators to hold a true reference 184 psMemDecrRefCounter(iter); 176 185 177 186 if (! psListIteratorSet(iter,location)) { 178 187 psFree(iter); 179 iter =NULL;188 return NULL; 180 189 } 181 190 -
trunk/psLib/src/types/psMetadataConfig.c
r5174 r5216 10 10 * @author Eric Van Alst, MHPCC 11 11 * 12 * @version $Revision: 1.4 7$ $Name: not supported by cvs2svn $13 * @date $Date: 2005- 09-29 01:15:38$12 * @version $Revision: 1.48 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2005-10-01 02:22:15 $ 14 14 * 15 15 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 995 995 nextLevelInfo->name = psStringCopy(keyName); 996 996 // Add next level to levelArray 997 levelArray = psArrayAdd(levelArray, 1,nextLevelInfo);997 levelArray = psArrayAdd(levelArray,0,nextLevelInfo); 998 998 psFree(nextLevelInfo); 999 999 // Increment level counter … … 1132 1132 return false; 1133 1133 } 1134 psFree(lowerLevelInfo);1135 1134 (*level)--; 1136 1135 } -
trunk/psLib/test/FullUnitTest.in
r3888 r5216 5 5 # the script 6 6 # 7 # $Revision: 1. 1$ $Name: not supported by cvs2svn $8 # $Date: 2005- 05-12 01:35:35$7 # $Revision: 1.2 $ $Name: not supported by cvs2svn $ 8 # $Date: 2005-10-01 02:22:19 $ 9 9 # 10 10 # Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 23 23 24 24 $recursive=1; 25 $jobs=1; 25 26 # Assign variables based on the presence of command line options to the script 26 27 # The ! option allows for --nooption to be set to zero 27 28 # (e.g. --noverbose --recursive causes $verbose=0 and $recursive=1) 28 29 GetOptions( 30 "jobs!" => \$jobs, 29 31 "verbose!" => \$verbose, 30 32 "recursive!" => \$recursive, … … 41 43 where: 42 44 options = 45 --jobs number of threads to use for make 43 46 --help Print this help text 44 47 --verbose Display extra information to user … … 241 244 242 245 # Execute the make and save results 243 $_ = join( "\n|| ", split( "\n", "\n" . `make tests` ) );246 $_ = join( "\n|| ", split( "\n", "\n" . `make -j $jobs tests` ) ); 244 247 245 248 # Check the output of make for return value != 0 or any of the -
trunk/psLib/test/astro/tst_psTime_04.c
r5083 r5216 15 15 * @author Eric Van Alst, MHPCC 16 16 * 17 * @version $Revision: 1. 3$ $Name: not supported by cvs2svn $18 * @date $Date: 2005- 09-21 02:11:16$17 * @version $Revision: 1.4 $ $Name: not supported by cvs2svn $ 18 * @date $Date: 2005-10-01 02:22:20 $ 19 19 * 20 20 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 35 35 36 36 testDescription tests[] = { 37 {testTimeInit1, 000,"p_psTimeInit",0,false},38 {testTimeInit2, 000,"p_psTimeInit",0,false},39 {testTimeInit3, 000,"p_psTimeInit",0,false},40 {testTimeInit4, 000,"p_psTimeInit",0,false},41 {testTimeInit5, 000,"p_psTimeInit",0,false},42 {testTimeInit6, 000,"p_psTimeInit",0,false},43 {testTimer1, 000,"psTimer",0,false},37 {testTimeInit1,-1,"p_psTimeInit",0,false}, 38 {testTimeInit2,-2,"p_psTimeInit",0,false}, 39 {testTimeInit3,-3,"p_psTimeInit",0,false}, 40 {testTimeInit4,-4,"p_psTimeInit",0,false}, 41 {testTimeInit5,-5,"p_psTimeInit",0,false}, 42 {testTimeInit6,-6,"p_psTimeInit",0,false}, 43 {testTimer1,-7,"psTimer",0,false}, 44 44 {NULL} 45 45 }; -
trunk/psLib/test/db/tst_psDB.c
r5136 r5216 9 9 * @author Aaron Culliney, MHPCC 10 10 * 11 * @version $Revision: 1. 4$ $Name: not supported by cvs2svn $12 * @date $Date: 2005- 09-26 21:13:29$11 * @version $Revision: 1.5 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-10-01 02:22:22 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 777 777 return 7; 778 778 } 779 psFree(ptr); 779 780 ptr = psArrayGet(ary, 1); 780 781 if (strcmp(ptr, CONST_ROW_2_STR)) { … … 785 786 return 8; 786 787 } 788 psFree(ptr); 787 789 ptr = psArrayGet(ary, 0); 788 790 if (strcmp(ptr, STR_1)) { … … 793 795 return 9; 794 796 } 797 psFree(ptr); 795 798 psFree(ary); 796 799 … … 820 823 return 11; 821 824 } 825 psFree(ptr); 822 826 ptr = psArrayGet(ary, 1); 823 827 if(atoi(ptr) != CONST_ROW_2_BOOL) { … … 828 832 return 12; 829 833 } 834 psFree(ptr); 830 835 ptr = psArrayGet(ary, 0); 831 836 if(atoi(ptr) != B_1) { … … 836 841 return 13; 837 842 } 843 psFree(ptr); 838 844 psFree(ary); 839 845 … … 1158 1164 } 1159 1165 psFree(ary); 1166 psFree(row); 1160 1167 } 1161 1168 … … 1386 1393 } 1387 1394 psFree(dumpRowSet); 1395 psFree(row); 1388 1396 1389 1397 // Insert rows with NULL database object … … 1507 1515 return 5; 1508 1516 } 1517 psFree(row); 1509 1518 row = (psMetadata*)psArrayGet(ary, 1); 1510 1519 if(!_check_const_row2(row)) { … … 1513 1522 return 6; 1514 1523 } 1524 psFree(row); 1515 1525 row = (psMetadata*)psArrayGet(ary, 2); 1516 1526 if(!_check_const_row1(row)) { … … 1519 1529 return 7; 1520 1530 } 1531 psFree(row); 1521 1532 psFree(ary); 1522 1533 … … 1904 1915 return 6; 1905 1916 } 1917 psFree(row); 1906 1918 psFree(ary); 1907 1919 … … 1978 1990 return 12; 1979 1991 } 1992 psFree(row); 1980 1993 psFree(ary); 1981 1994 -
trunk/psLib/test/sys/verified/tst_psMemory.stderr
r4899 r5216 5 5 \**********************************************************************************/ 6 6 7 < DATE><TIME>|<HOST>|I|TPCheckBufferPositive7 <HOST>|I|TPCheckBufferPositive 8 8 psAlloc shall allocate memory blocks writeable by caller. 9 9 … … 16 16 \**********************************************************************************/ 17 17 18 < DATE><TIME>|<HOST>|I|TPOutOfMemory18 <HOST>|I|TPOutOfMemory 19 19 Upon requesting more memory than is available, psalloc shall call the psMemExhaustedCallback. 20 < DATE><TIME>|<HOST>|I|TPOutOfMemoryExhaustedCallback20 <HOST>|I|TPOutOfMemoryExhaustedCallback 21 21 Custom MemExhaustedCallback was invoked. 22 < DATE><TIME>|<HOST>|A|p_psAlloc22 <HOST>|A|p_psAlloc 23 23 Failed to allocate <N> bytes at FILE:LINENO 24 24 … … 31 31 \**********************************************************************************/ 32 32 33 < DATE><TIME>|<HOST>|I|TPReallocOutOfMemory33 <HOST>|I|TPReallocOutOfMemory 34 34 Upon requesting more memory than is available, psRealloc shall call the psMemExhaustedCallback. 35 < DATE><TIME>|<HOST>|I|TPOutOfMemoryExhaustedCallback35 <HOST>|I|TPOutOfMemoryExhaustedCallback 36 36 Custom MemExhaustedCallback was invoked. 37 < DATE><TIME>|<HOST>|A|p_psRealloc37 <HOST>|A|p_psRealloc 38 38 Failed to reallocate <N> bytes at FILE:LINENO 39 39 … … 46 46 \**********************************************************************************/ 47 47 48 < DATE><TIME>|<HOST>|I|TPrealloc48 <HOST>|I|TPrealloc 49 49 psRealloc shall increase/decrease memory buffer while preserving contents 50 < DATE><TIME>|<HOST>|I|TPrealloc50 <HOST>|I|TPrealloc 51 51 Expanding memory buffer. 52 < DATE><TIME>|<HOST>|I|TPrealloc52 <HOST>|I|TPrealloc 53 53 Shrinking memory buffer. 54 54 … … 61 61 \**********************************************************************************/ 62 62 63 < DATE><TIME>|<HOST>|I|TPallocCallback63 <HOST>|I|TPallocCallback 64 64 call to psAlloc/psRealloc shall generate a callback if specified memory ID is allocated. 65 < DATE><TIME>|<HOST>|I|memAllocCallback65 <HOST>|I|memAllocCallback 66 66 block 2 was (re)allocated 67 < DATE><TIME>|<HOST>|I|memAllocCallback67 <HOST>|I|memAllocCallback 68 68 block 3 was (re)allocated 69 < DATE><TIME>|<HOST>|I|memFreeCallback69 <HOST>|I|memFreeCallback 70 70 block 2 was freed 71 < DATE><TIME>|<HOST>|I|memFreeCallback71 <HOST>|I|memFreeCallback 72 72 block 3 was freed 73 < DATE><TIME>|<HOST>|I|memAllocCallback73 <HOST>|I|memAllocCallback 74 74 block 4 was (re)allocated 75 < DATE><TIME>|<HOST>|I|memAllocCallback75 <HOST>|I|memAllocCallback 76 76 block 4 was (re)allocated 77 < DATE><TIME>|<HOST>|I|memFreeCallback77 <HOST>|I|memFreeCallback 78 78 block 4 was freed 79 79 … … 86 86 \**********************************************************************************/ 87 87 88 < DATE><TIME>|<HOST>|I|TPcheckLeaks88 <HOST>|I|TPcheckLeaks 89 89 psMemCheckLeaks shall return the number of blocks above an ID that are still allocated 90 < DATE><TIME>|<HOST>|I|TPcheckLeaks90 <HOST>|I|TPcheckLeaks 91 91 following psMemCheckLeaks call should produce one instance. 92 92 file:line ID 93 93 FILE:LINENO 1 94 < DATE><TIME>|<HOST>|I|TPcheckLeaks94 <HOST>|I|TPcheckLeaks 95 95 Testing psMemCheckLeaks again with a different leak location 96 < DATE><TIME>|<HOST>|I|TPcheckLeaks96 <HOST>|I|TPcheckLeaks 97 97 following psMemCheckLeaks call should produce one error. 98 98 file:line ID 99 99 FILE:LINENO 11 100 < DATE><TIME>|<HOST>|I|TPcheckLeaks100 <HOST>|I|TPcheckLeaks 101 101 Testing psMemCheckLeaks again with multiple leak locations. 102 < DATE><TIME>|<HOST>|I|TPcheckLeaks102 <HOST>|I|TPcheckLeaks 103 103 following psMemCheckLeaks call should produce two errors. 104 104 file:line ID … … 114 114 \**********************************************************************************/ 115 115 116 < DATE><TIME>|<HOST>|I|TPmemCorruption116 <HOST>|I|TPmemCorruption 117 117 psMemCheckCorruption shall detect memory corruptions 118 < DATE><TIME>|<HOST>|I|TPmemCorruption118 <HOST>|I|TPmemCorruption 119 119 psMemCheckCorruption should output an error message and memProblemCallback callback should be called. 120 < DATE><TIME>|<HOST>|E|checkMemBlock (FILE:LINENO)120 <HOST>|E|checkMemBlock (FILE:LINENO) 121 121 Memory block 1 is corrupted; buffer underflow detected. 122 < DATE><TIME>|<HOST>|I|memProblemCallback122 <HOST>|I|memProblemCallback 123 123 memory callback called for id 1 (FILE:LINENO). 124 124 … … 131 131 \**********************************************************************************/ 132 132 133 < DATE><TIME>|<HOST>|I|TPFreeReferencedMemory133 <HOST>|I|TPFreeReferencedMemory 134 134 memory reference count shall be incrementable/decrementable 135 < DATE><TIME>|<HOST>|I|TPFreeReferencedMemory135 <HOST>|I|TPFreeReferencedMemory 136 136 psFree shall be just decrement a multiple refererenced pointer. 137 137 … … 144 144 \**********************************************************************************/ 145 145 146 < DATE><TIME>|<HOST>|I|TPmultipleFree146 <HOST>|I|TPmultipleFree 147 147 Next should abort due to multiple freeing. 148 < DATE><TIME>|<HOST>|A|p_psFree148 <HOST>|A|p_psFree 149 149 Block 1, allocated at FILE:LINENO, freed multiple times at FILE:LINENO. 150 150 … … 157 157 \**********************************************************************************/ 158 158 159 < DATE><TIME>|<HOST>|I|memCheckTypes159 <HOST>|I|memCheckTypes 160 160 Next should error from invalid datatype. 161 < DATE><TIME>|<HOST>|E|psMemCheckType (FILE:LINENO)161 <HOST>|E|psMemCheckType (FILE:LINENO) 162 162 Incorrect pointer. Datatypes do not match. 163 < DATE><TIME>|<HOST>|E|memCheckTypes (FILE:LINENO)163 <HOST>|E|memCheckTypes (FILE:LINENO) 164 164 psMemCheckArray failed in memCheckType. 165 < DATE><TIME>|<HOST>|I|memCheckTypes165 <HOST>|I|memCheckTypes 166 166 Next should error from invalid datatype. 167 < DATE><TIME>|<HOST>|E|psMemCheckType (FILE:LINENO)167 <HOST>|E|psMemCheckType (FILE:LINENO) 168 168 Incorrect pointer. Datatypes do not match. 169 < DATE><TIME>|<HOST>|E|memCheckTypes (FILE:LINENO)169 <HOST>|E|memCheckTypes (FILE:LINENO) 170 170 psMemCheckBitSet failed in memCheckType. 171 <HOST>|E|psPolynomial4DAlloc (FILE:LINENO) 172 Error: nX is 0 or less. 173 <HOST>|E|psPolynomial4DAlloc (FILE:LINENO) 174 Error: nX is 0 or less. 175 <HOST>|E|psPolynomial2DAlloc (FILE:LINENO) 176 Error: nX is 0 or less. 177 <HOST>|E|psPolynomial2DAlloc (FILE:LINENO) 178 Error: nX is 0 or less. 171 179 172 180 ---> TESTPOINT PASSED (psMemory{psMemCheckType} | tst_psMemory.c) -
trunk/psLib/test/types/tst_psArray.c
r5114 r5216 17 17 * @author Ross Harman, MHPCC 18 18 * 19 * @version $Revision: 1. 3$ $Name: not supported by cvs2svn $20 * @date $Date: 2005- 09-24 00:17:44$19 * @version $Revision: 1.4 $ $Name: not supported by cvs2svn $ 20 * @date $Date: 2005-10-01 02:22:26 $ 21 21 * 22 22 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 205 205 } 206 206 } 207 psMemDecrRefCounter(mySt[0]);208 207 printFooter(stderr,"psArray","Remove valid item", true); 209 208 … … 465 464 if ( psArrayGet(test, -1) != p2) 466 465 fprintf(stderr, "ArrayGet Failed to return the correct S32 from tail using -1\n"); 466 psFree(p1); // free ref from psArrayGet 467 psFree(p2); // free ref from psArrayGet 467 468 468 469 if ( psArraySet(test, -6, p3) ) … … 470 471 471 472 psFree(test); 473 psFree(p1); 474 psFree(p2); 472 475 psFree(p3); 473 476
Note:
See TracChangeset
for help on using the changeset viewer.
