VirtualBox

Changeset 36561 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Apr 5, 2011 1:42:59 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
70996
Message:

RTCString::join: Optimization.

Location:
trunk/src/VBox/Runtime
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/string/ministring.cpp

    r36544 r36561  
    368368    if (a_rList.size() > 1)
    369369    {
     370        /* calc the required size */
     371        size_t cbNeeded = a_rstrSep.length() * (a_rList.size() - 1) + 1;
     372        for (size_t i = 0; i < a_rList.size(); ++i)
     373            cbNeeded += a_rList.at(i).length();
     374        strRet.reserve(cbNeeded);
     375
     376        /* do the appending. */
    370377        for (size_t i = 0; i < a_rList.size() - 1; ++i)
    371             strRet += a_rList.at(i) + a_rstrSep;
    372     }
    373     if (a_rList.size() > 0)
    374         strRet += a_rList.last();
     378        {
     379            strRet.append(a_rList.at(i));
     380            strRet.append(a_rstrSep);
     381        }
     382        strRet.append(a_rList.last());
     383    }
     384    /* special case: one list item. */
     385    else if (a_rList.size() > 0)
     386        strRet.append(a_rList.last());
    375387
    376388    return strRet;
  • trunk/src/VBox/Runtime/testcase/tstIprtMiniString.cpp

    r36544 r36561  
    282282    strTest = RTCString::join(jnList, "##");
    283283    RTTESTI_CHECK(strTest == "");
     284
    284285    jnList.append("abcdef");
    285286    strTest = RTCString::join(jnList, "##");
    286287    RTTESTI_CHECK(strTest == "abcdef");
    287     for (size_t i = 0; i < 4; ++i)
     288
     289    jnList.append("abcdef");
     290    strTest = RTCString::join(jnList, ";");
     291    RTTESTI_CHECK(strTest == "abcdef;abcdef");
     292
     293    for (size_t i = 0; i < 3; ++i)
    288294        jnList.append("abcdef");
    289295    strTest = RTCString::join(jnList);
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette