diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2019-05-29 18:41:01 +0200 |
---|---|---|
committer | Michael Stahl <Michael.Stahl@cib.de> | 2019-07-02 11:07:33 +0200 |
commit | 5da3e01b9aa19f8676e052e98815b861311222b9 (patch) | |
tree | 458a826c59d3a84e2c3efe35f8323da04d4aec28 | |
parent | d89355ea031e2ecaa66a0c397bd043ab43051bbc (diff) |
Avoid UB converting from double to int via unsigned
See <https://gerrit.libreoffice.org/#/c/73181/> "external/libcdr: Avoid UB
converting from double to int via unsigned" for details.
Change-Id: I667dbca60674c183b0b7bee50deb0324becd6b21
Reviewed-on: https://gerrit.libreoffice.org/73182
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
Tested-by: Michael Stahl <Michael.Stahl@cib.de>
-rw-r--r-- | src/lib/CDRPath.cpp | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/lib/CDRPath.cpp b/src/lib/CDRPath.cpp index 86ee10c..cb45f67 100644 --- a/src/lib/CDRPath.cpp +++ b/src/lib/CDRPath.cpp @@ -796,7 +796,7 @@ void CDRPath::writeOut(librevenge::RVNGString &path, librevenge::RVNGString &vie width = qy - py; - viewBox.sprintf("%i %i %i %i", 0, 0, (unsigned)(2540*(qx - px)), (unsigned)(2540*(qy - py))); + viewBox.sprintf("%i %i %i %i", 0, 0, (int)(2540*(qx - px)), (int)(2540*(qy - py))); for (unsigned long i = 0; i < vec.count(); ++i) { @@ -804,38 +804,38 @@ void CDRPath::writeOut(librevenge::RVNGString &path, librevenge::RVNGString &vie if (vec[i]["librevenge:path-action"]->getStr() == "M") { // 2540 is 2.54*1000, 2.54 in = 1 inch - sElement.sprintf("M%i %i", (unsigned)((vec[i]["svg:x"]->getDouble()-px)*2540), - (unsigned)((vec[i]["svg:y"]->getDouble()-py)*2540)); + sElement.sprintf("M%i %i", (int)((vec[i]["svg:x"]->getDouble()-px)*2540), + (int)((vec[i]["svg:y"]->getDouble()-py)*2540)); path.append(sElement); } else if (vec[i]["librevenge:path-action"]->getStr() == "L") { - sElement.sprintf("L%i %i", (unsigned)((vec[i]["svg:x"]->getDouble()-px)*2540), - (unsigned)((vec[i]["svg:y"]->getDouble()-py)*2540)); + sElement.sprintf("L%i %i", (int)((vec[i]["svg:x"]->getDouble()-px)*2540), + (int)((vec[i]["svg:y"]->getDouble()-py)*2540)); path.append(sElement); } else if (vec[i]["librevenge:path-action"]->getStr() == "C") { - sElement.sprintf("C%i %i %i %i %i %i", (unsigned)((vec[i]["svg:x1"]->getDouble()-px)*2540), - (unsigned)((vec[i]["svg:y1"]->getDouble()-py)*2540), (unsigned)((vec[i]["svg:x2"]->getDouble()-px)*2540), - (unsigned)((vec[i]["svg:y2"]->getDouble()-py)*2540), (unsigned)((vec[i]["svg:x"]->getDouble()-px)*2540), - (unsigned)((vec[i]["svg:y"]->getDouble()-py)*2540)); + sElement.sprintf("C%i %i %i %i %i %i", (int)((vec[i]["svg:x1"]->getDouble()-px)*2540), + (int)((vec[i]["svg:y1"]->getDouble()-py)*2540), (int)((vec[i]["svg:x2"]->getDouble()-px)*2540), + (int)((vec[i]["svg:y2"]->getDouble()-py)*2540), (int)((vec[i]["svg:x"]->getDouble()-px)*2540), + (int)((vec[i]["svg:y"]->getDouble()-py)*2540)); path.append(sElement); } else if (vec[i]["librevenge:path-action"]->getStr() == "Q") { - sElement.sprintf("Q%i %i %i %i", (unsigned)((vec[i]["svg:x1"]->getDouble()-px)*2540), - (unsigned)((vec[i]["svg:y1"]->getDouble()-py)*2540), (unsigned)((vec[i]["svg:x"]->getDouble()-px)*2540), - (unsigned)((vec[i]["svg:y"]->getDouble()-py)*2540)); + sElement.sprintf("Q%i %i %i %i", (int)((vec[i]["svg:x1"]->getDouble()-px)*2540), + (int)((vec[i]["svg:y1"]->getDouble()-py)*2540), (int)((vec[i]["svg:x"]->getDouble()-px)*2540), + (int)((vec[i]["svg:y"]->getDouble()-py)*2540)); path.append(sElement); } else if (vec[i]["librevenge:path-action"]->getStr() == "A") { - sElement.sprintf("A%i %i %i %i %i %i %i", (unsigned)((vec[i]["svg:rx"]->getDouble())*2540), - (unsigned)((vec[i]["svg:ry"]->getDouble())*2540), (vec[i]["librevenge:rotate"] ? vec[i]["librevenge:rotate"]->getInt() : 0), + sElement.sprintf("A%i %i %i %i %i %i %i", (int)((vec[i]["svg:rx"]->getDouble())*2540), + (int)((vec[i]["svg:ry"]->getDouble())*2540), (vec[i]["librevenge:rotate"] ? vec[i]["librevenge:rotate"]->getInt() : 0), (vec[i]["librevenge:large-arc"] ? vec[i]["librevenge:large-arc"]->getInt() : 1), (vec[i]["librevenge:sweep"] ? vec[i]["librevenge:sweep"]->getInt() : 1), - (unsigned)((vec[i]["svg:x"]->getDouble()-px)*2540), (unsigned)((vec[i]["svg:y"]->getDouble()-py)*2540)); + (int)((vec[i]["svg:x"]->getDouble()-px)*2540), (int)((vec[i]["svg:y"]->getDouble()-py)*2540)); path.append(sElement); } else if (vec[i]["librevenge:path-action"]->getStr() == "Z") |