]> git.lyx.org Git - features.git/commitdiff
save a few allocations in from_ascii.
authorAndré Pönitz <poenitz@gmx.net>
Mon, 16 Jun 2008 18:27:11 +0000 (18:27 +0000)
committerAndré Pönitz <poenitz@gmx.net>
Mon, 16 Jun 2008 18:27:11 +0000 (18:27 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25281 a592a061-630c-0410-9148-cb99ea01b6c8

src/support/docstring.cpp

index 7f56557899fcc7043303ed780596a08d869e92f7..6de9424c1b5822d2d963b4a0e22e3b93d2b5f426 100644 (file)
@@ -31,9 +31,12 @@ namespace lyx {
 docstring const from_ascii(char const * ascii)
 {
        docstring s;
-       for (char const * c = ascii; *c; ++c) {
-               LASSERT(static_cast<unsigned char>(*c) < 0x80, /**/);
-               s.push_back(*c);
+       int n = strlen(ascii);
+       s.resize(n);
+       char_type *d = &s[0];
+       while (--n >= 0) {
+               d[n] = ascii[n];
+               LASSERT(static_cast<unsigned char>(ascii[n]) < 0x80, /**/);
        }
        return s;
 }
@@ -99,8 +102,7 @@ docstring const from_utf8(string const & utf8)
 
 string const to_utf8(docstring const & ucs4)
 {
-       vector<char> const utf8 =
-               ucs4_to_utf8(ucs4.data(), ucs4.size());
+       vector<char> const utf8 = ucs4_to_utf8(ucs4.data(), ucs4.size());
        return string(utf8.begin(), utf8.end());
 }