[Exif] Fix for creation rational values (divide by 0 problem)
authorPiotr Kosko <p.kosko@samsung.com>
Thu, 18 Jun 2015 11:48:42 +0000 (13:48 +0200)
committerPiotr Kosko <p.kosko@samsung.com>
Thu, 18 Jun 2015 11:48:50 +0000 (13:48 +0200)
[Feature] Fixed divide by zero problem in creation of raional number.

[Verification] Code compiles without errors.
  TCT passrate 100% (64/64/0/0/0))

Change-Id: Iea275e081e4fffda9a530502b30839c05e536a0c
Signed-off-by: Piotr Kosko <p.kosko@samsung.com>
src/exif/rational.cc

index 18fe810649c6e4ff69c364d50f85babb2f965b49..e08ebfb5b5a7e6e7da4aa6e0c59f914bfbd7cc08 100755 (executable)
@@ -103,7 +103,7 @@ Rational Rational::createFromDouble(const double value, const long precision) {
   LoggerD("%ld/%ld, error = %e\n", numerator0, denominator0, error0);
 
   /* now try other possibility */
-  ai = (precision - m[1][1]) / m[1][0];
+  ai = static_cast<long>(static_cast<double>(precision - m[1][1]) / static_cast<double>(m[1][0]));
   m[0][0] = m[0][0] * ai + m[0][1];
   m[1][0] = m[1][0] * ai + m[1][1];