Commit d5bfd49cb2c9e62557a06dee3c4e33fc0c091170

Authored by Jay Berkenbilt
1 parent 34a9b835

Remove use of std::abs (fixes #172)

Different compilers want different choices of headers for std::abs.
It's easier to just to not use it.
Showing 1 changed file with 8 additions and 4 deletions
libqpdf/Pl_PNGFilter.cc
@@ -3,7 +3,11 @@ @@ -3,7 +3,11 @@
3 #include <stdexcept> 3 #include <stdexcept>
4 #include <string.h> 4 #include <string.h>
5 #include <limits.h> 5 #include <limits.h>
6 -#include <algorithm> 6 +
  7 +static int abs_diff(int a, int b)
  8 +{
  9 + return a > b ? a - b : b - a;
  10 +}
7 11
8 Pl_PNGFilter::Pl_PNGFilter(char const* identifier, Pipeline* next, 12 Pl_PNGFilter::Pl_PNGFilter(char const* identifier, Pipeline* next,
9 action_e action, unsigned int columns, 13 action_e action, unsigned int columns,
@@ -218,9 +222,9 @@ int @@ -218,9 +222,9 @@ int
218 Pl_PNGFilter::PaethPredictor(int a, int b, int c) 222 Pl_PNGFilter::PaethPredictor(int a, int b, int c)
219 { 223 {
220 int p = a + b - c; 224 int p = a + b - c;
221 - int pa = std::abs(p - a);  
222 - int pb = std::abs(p - b);  
223 - int pc = std::abs(p - c); 225 + int pa = abs_diff(p, a);
  226 + int pb = abs_diff(p, b);
  227 + int pc = abs_diff(p, c);
224 228
225 if (pa <= pb && pa <= pc) 229 if (pa <= pb && pa <= pc)
226 { 230 {