| true | 1495 | | trc_unpack_data_value( DD ) | | | 1496 | | TRC_DATADESC DD; | | | 1497 | | { | | | 1498 | | char upk_str[TRC_MAX_UNPACK_ARR_SIZE];
| | | 1499 | | | | | 1500 | | int num; | | | 1501 | | int i; | | | 1502 | | | | | 1503 | | if ( DD->array == TEV_DATA_ARRAY )
| | | 1504 | | { | | | 1505 | | TRC_PVMCKERR( pvm_upkint( &num, 1, 1 ),
| | | 1506 | | "Array Unpack", return( TRC_FALSE ) ); | | | 1507 | | } | | | 1508 | | | | | 1509 | | else | | | 1510 | | num = 1; | | | 1511 | | | | | 1512 | | DD->data = trc_make_value( DD->dt, num ); | | | 1513 | | | | | 1514 | | DD->num = num; | | | 1515 | | | | | 1516 | | switch ( DD->dt ) | | | 1517 | | { | | | 1518 | | case TEV_DATA_NULL: break;
| | | 1519 | | | | | 1520 | | case TEV_DATA_BYTE:
| | | 1521 | | { | | | 1522 | | TRC_PVMCKERR( pvm_upkbyte( DD->data, num, 1 ),
| | | 1523 | | "Event BYTE Unpack", return( TRC_FALSE ) ); | | | 1524 | | | | | 1525 | | break; | | | 1526 | | } | | | | | ... | | | 1598 | | } | | | 1599 | | | | | 1600 | | case TEV_DATA_USHORT:
| | | 1601 | | { | | | 1602 | | TRC_PVMCKERR( pvm_upkshort( DD->data, num, 1 ),
| | | 1603 | | "Event USHORT Unpack", return( TRC_FALSE ) ); | | | 1604 | | | | | 1605 | | break; | | | 1606 | | } | | | 1607 | | | | | 1608 | | case TEV_DATA_STRING:
| | | 1609 | | { | | | 1610 | | if ( num < 1 ) | | | 1611 | | break; | | | 1612 | | | | | 1613 | | DD->data = (TRC_VALUE) malloc( (unsigned) num | | | 1614 | | * sizeof(char *) ); | | | 1615 | | trc_memcheck( DD->data, "String Array" ); | | | 1616 | | | | | 1617 | | for ( i=0 ; i < num ; i++ ) | | | 1618 | | { | | | 1619 | | TRC_PVMCKERR( pvm_upkstr( upk_str ),
|
| | 1680 | | | | pvm_upkstr(cp) | | | 1681 | | | | char *cp; | | | 1682 | | | | { | | | 1683 | | | | int l; | | | 1684 | | | | int cc; | | | 1685 | | | | long ad; | | | 1686 | | | | TEV_DECLS
| | | 1687 | | | | | | | 1688 | | | | if (TEV_EXCLUSIVE) {
| | | 1689 | | | | if (TEV_DO_TRACE(TEV_UPKSTR,TEV_EVENT_ENTRY)) {
| | | 1690 | | | | ad = (long)cp; | | | 1691 | | | | TEV_PACK_LONG( TEV_DID_PDA, TEV_DATA_SCALAR, &ad, 1, 1 );
| | | 1692 | | | | TEV_FIN;
| | | 1693 | | | | } | | | 1694 | | | | } | | | 1695 | | | | | | | 1696 | | | | if (!pvmrbuf) | | | 1697 | | | | cc = PvmNoBuf;
| | | 1698 | | | | else { | | | 1699 | | | | if (!(cc = (pvmrbuf->m_codef->dec_int) | | | 1700 | | | | (pvmrbuf, (void*)&l, 1, 1, sizeof(int)))) | | | 1701 | | | | cc = (pvmrbuf->m_codef->dec_byte) | | | 1702 | | | | (pvmrbuf, (void*)cp, l, 1, 1); | | | 1703 | | | | } | | | 1704 | | | | | | | 1705 | | | | if (TEV_AMEXCL) {
| | | 1706 | | | | if (TEV_DO_TRACE(TEV_UPKSTR,TEV_EVENT_EXIT)) {
| | | 1707 | | | | TEV_PACK_INT( TEV_DID_CC, TEV_DATA_SCALAR, &cc, 1, 1 );
| | | 1708 | | | | TEV_FIN;
| | | 1709 | | | | } | | | 1710 | | | | TEV_ENDEXCL;
| | | 1711 | | | | } | | | 1712 | | | | return (cc < 0 ? lpvmerr("pvm_upkstr", cc) : PvmOk);
| | upk_str is uninitialized | 1713 | | | | } |
|