tree ee4e93dc34de79f465cd8c3ebebca74b3e230aeb
parent 41547820e81c4c1405341cb29d50c90cae3c48ef
author John Bowler <jbowler@acm.org> 1415235181 -0600
committer Glenn Randers-Pehrson <glennrp at users.sourceforge.net> 1415235181 -0600

[libpng17] Fixed GCC unsigned int->float warnings. Various versions of GCC

    seem to generate warnings when an unsigned value is implicitly
    converted to double. This is probably a GCC bug but this change
    avoids the issue by explicitly converting to (int) where safe.
  Free all allocated memory in pngimage. The file buffer cache was left
    allocated at the end of the program, harmless but it causes memory
    leak reports from clang.
  Fixed array size calculations to avoid warnings. At various points
    in the code the number of elements in an array is calculated using
    sizeof.  This generates a compile time constant of type (size_t) which
    is then typically assigned to an (unsigned int) or (int). Some versions
    of GCC on 64-bit systems warn about the apparent narrowing, even though
    the same compiler does apparently generate the correct, in-range,
    numeric constant.  This adds appropriate, safe, casts to make the
    warnings go away.
