From 6a56be232d7389383966d6506524fa01802f5e25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20P=C3=B6nitz?= Date: Mon, 16 Jun 2008 18:27:11 +0000 Subject: [PATCH] save a few allocations in from_ascii. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25281 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/support/docstring.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/support/docstring.cpp b/src/support/docstring.cpp index 7f56557899..6de9424c1b 100644 --- a/src/support/docstring.cpp +++ b/src/support/docstring.cpp @@ -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(*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(ascii[n]) < 0x80, /**/); } return s; } @@ -99,8 +102,7 @@ docstring const from_utf8(string const & utf8) string const to_utf8(docstring const & ucs4) { - vector const utf8 = - ucs4_to_utf8(ucs4.data(), ucs4.size()); + vector const utf8 = ucs4_to_utf8(ucs4.data(), ucs4.size()); return string(utf8.begin(), utf8.end()); }