Ignore:
Timestamp:
Nov 18, 2013, 5:34:18 AM (6 years ago)
Author:
cameron
Message:

Changes to icxercesc files

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icXML/icXML-devel/src/icxercesc/util/XMLString.cpp

    r3157 r3564  
    160160        if (tmpIndex > maxChars)
    161161        {
     162        generateCallstack();
    162163                ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Str_TargetBufTooSmall, manager);
    163164        }
     
    250251        if (tmpIndex > maxChars)
    251252        {
     253        generateCallstack();
    252254                ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Str_TargetBufTooSmall, manager);
    253255        }
     
    620622                                                        , const XMLSize_t       maxChars
    621623                                                        , MemoryManager* const  manager)
    622 {
     624{   
    623625        return gTranscoder->transcode(toTranscode, toFill, maxChars, manager);
    624626}
     
    872874        if (tmpIndex > maxChars)
    873875        {
     876        generateCallstack();
    874877                ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Str_TargetBufTooSmall, manager);
    875878        }
     
    963966        if (tmpIndex > maxChars)
    964967        {
     968        generateCallstack();
    965969                ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Str_TargetBufTooSmall, manager);
    966970        }
     
    15811585
    15821586        targetStr[copySize] = 0;
     1587}
     1588
     1589BaseRefVectorOf<XMLCh>* XMLString::tokenizeString(const XMLCh* const tokenizeSrc
     1590                                                , XMLCh delimiter
     1591                                                , MemoryManager*    const manager)
     1592{
     1593    XMLCh* orgText = replicate(tokenizeSrc, manager);
     1594    ArrayJanitor<XMLCh> janText(orgText, manager);
     1595    XMLCh* tokenizeStr = orgText;
     1596
     1597    RefArrayVectorOf<XMLCh>* tokenStack = new (manager) RefArrayVectorOf<XMLCh>(16, true, manager);
     1598
     1599    XMLSize_t len = stringLen(tokenizeStr);
     1600    XMLSize_t skip;
     1601    XMLSize_t index = 0;
     1602
     1603    while (index != len) {
     1604        // find the first non-space character
     1605        for (skip = index; skip < len; skip++)
     1606        {
     1607            if (tokenizeStr[skip]!=delimiter)
     1608                break;
     1609        }
     1610        index = skip;
     1611
     1612        // find the delimiter (space character)
     1613        for (; skip < len; skip++)
     1614        {
     1615            if (tokenizeStr[skip]==delimiter)
     1616                break;
     1617        }
     1618
     1619        // we reached the end of the string
     1620        if (skip == index)
     1621            break;
     1622
     1623        // these tokens are adopted in the RefVector and will be deleted
     1624        // when the vector is deleted by the caller
     1625        XMLCh* token = (XMLCh*) manager->allocate
     1626        (
     1627            (skip+1-index) * sizeof(XMLCh)
     1628        );//new XMLCh[skip+1-index];
     1629
     1630        XMLString::subString(token, tokenizeStr, index, skip, len, manager);
     1631        tokenStack->addElement(token);
     1632        index = skip;
     1633    }
     1634    return tokenStack;
    15831635}
    15841636
Note: See TracChangeset for help on using the changeset viewer.