diff options
author | Michael Stahl <mstahl@redhat.com> | 2013-12-17 17:29:49 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2013-12-18 13:08:00 +0100 |
commit | b233b5f754026600a0f9712538291eaaa48d5884 (patch) | |
tree | 88d5200929cfc17e605bcc61a21e5004993833c3 | |
parent | 20463fb3e58cb0264b311b280e623a9e1937aa43 (diff) |
sax: avoid usage of double for parsing nanoseconds here too
Change-Id: Iddf93a116cb333db6465a915dae692c33a60241a
(cherry picked from commit 64575a5b91b0fae6283b9ad8b1356e76caa34b45)
-rw-r--r-- | sax/source/tools/converter.cxx | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sax/source/tools/converter.cxx b/sax/source/tools/converter.cxx index 02131ed8e89f..4e61f27dd238 100644 --- a/sax/source/tools/converter.cxx +++ b/sax/source/tools/converter.cxx @@ -1645,9 +1645,13 @@ static bool lcl_parseDateTime( } if (bSuccess) { - const sal_Int32 nDigits = std::min<sal_Int32>(nPos - nStart, 9); - OSL_ENSURE(nDigits > 0, "bad code monkey"); - nNanoSeconds=static_cast<double>(nTemp)*(1000000000.0/pow(10.0,nDigits)); + sal_Int32 nDigits = std::min<sal_Int32>(nPos - nStart, 9); + assert(nDigits > 0); + for (; nDigits < 9; ++nDigits) + { + nTemp *= 10; + } + nNanoSeconds = nTemp; } } |