imager.git
2 years agoremove an unneeded check when terminating the stream for JPEG writing.
Tony Cook [Wed, 2 Jan 2019 08:28:09 +0000 (19:28 +1100)]
remove an unneeded check when terminating the stream for JPEG writing.

2 years agoJPEG Changes updates for older releases
Tony Cook [Wed, 2 Jan 2019 08:27:43 +0000 (19:27 +1100)]
JPEG Changes updates for older releases

2 years agohe unpack code for ICO/CUR file handling could extend 32-bit unsigned values to 64...
Tony Cook [Wed, 2 Jan 2019 08:19:56 +0000 (19:19 +1100)]
he unpack code for ICO/CUR file handling could extend 32-bit unsigned values to 64-bit signed.

2 years agoavoid an unneeded EXTEND() call when the FT2 has_chars() implementation returns 0.
Tony Cook [Wed, 2 Jan 2019 08:08:57 +0000 (19:08 +1100)]
avoid an unneeded EXTEND() call when the FT2 has_chars() implementation returns 0.

2 years agoavoid dead code in i_ft2_glyph_name()
Tony Cook [Wed, 2 Jan 2019 08:04:33 +0000 (19:04 +1100)]
avoid dead code in i_ft2_glyph_name()

2 years agoavoid dead code in i_get_anonymous_color_histo()
Tony Cook [Wed, 2 Jan 2019 07:56:32 +0000 (18:56 +1100)]
avoid dead code in i_get_anonymous_color_histo()

2 years agoavoid dead code in i_tt_glyph_names()
Tony Cook [Wed, 2 Jan 2019 07:50:48 +0000 (18:50 +1100)]
avoid dead code in i_tt_glyph_names()

CID 185321

2 years agogradgen allocated sizeof(i_color *) per entry rather than sizeof(i_color)
Tony Cook [Wed, 2 Jan 2019 07:39:28 +0000 (18:39 +1100)]
gradgen allocated sizeof(i_color *) per entry rather than sizeof(i_color)

i_color is four bytes, so this is safe on any arch I've used.

2 years agochange note for the has_chars and MakeMapObject changes
Tony Cook [Wed, 2 Jan 2019 07:36:54 +0000 (18:36 +1100)]
change note for the has_chars and MakeMapObject changes

2 years agoadd CIDs to the changes Coverity fixes
Tony Cook [Wed, 2 Jan 2019 07:30:44 +0000 (18:30 +1100)]
add CIDs to the changes Coverity fixes

2 years agolog only after we've checked MakeMapObject() success
Tony Cook [Wed, 2 Jan 2019 00:10:20 +0000 (11:10 +1100)]
log only after we've checked MakeMapObject() success

CID 185296

2 years agoavoid an unneeded check in the FT1 has_chars() method implementation
Tony Cook [Wed, 2 Jan 2019 00:09:04 +0000 (11:09 +1100)]
avoid an unneeded check in the FT1 has_chars() method implementation

2 years agofix a fence post error validating a combing mode number
Tony Cook [Tue, 1 Jan 2019 01:11:43 +0000 (12:11 +1100)]
fix a fence post error validating a combing mode number

2 years agochange an array parameter decl to a pointer style decl
Tony Cook [Tue, 1 Jan 2019 01:07:39 +0000 (12:07 +1100)]
change an array parameter decl to a pointer style decl

to avoid confusing coverity

2 years agoCoverity complained colors could be left uninitialized.
Tony Cook [Tue, 1 Jan 2019 01:04:30 +0000 (12:04 +1100)]
Coverity complained colors could be left uninitialized.

2 years agocoverity complained minset could be -1
Tony Cook [Tue, 1 Jan 2019 00:07:10 +0000 (11:07 +1100)]
coverity complained minset could be -1

but no callers call i_map() in such a way that it can happen.

Add a belt-and-suspenders check.

2 years agoImager::Color set_internal is now simpler
Tony Cook [Mon, 31 Dec 2018 11:34:06 +0000 (22:34 +1100)]
Imager::Color set_internal is now simpler

Coverity complained that ICL_set_internal() could leak here, but
that's only possible with a NULL pointer PTROBJ, which would break
in many other ways.

2 years agobetter validate numeric hatch values for fills
Tony Cook [Mon, 31 Dec 2018 11:22:01 +0000 (22:22 +1100)]
better validate numeric hatch values for fills

2 years agoadd braces to some multi-line if() and for()
Tony Cook [Mon, 31 Dec 2018 11:11:54 +0000 (22:11 +1100)]
add braces to some multi-line if() and for()

Coverity complained about this code

2 years agoaddi style makemap could potentially read one past the end of an array
Tony Cook [Mon, 31 Dec 2018 11:02:27 +0000 (22:02 +1100)]
addi style makemap could potentially read one past the end of an array

2 years agoagain, convert array style pointer parameter to pointer
Tony Cook [Mon, 31 Dec 2018 10:54:35 +0000 (21:54 +1100)]
again, convert array style pointer parameter to pointer

2 years agoinitialize a pointer to prevent coverity complaints
Tony Cook [Mon, 31 Dec 2018 10:49:51 +0000 (21:49 +1100)]
initialize a pointer to prevent coverity complaints

2 years agocoverity took the 6 elements in the argument as gospel
Tony Cook [Mon, 31 Dec 2018 10:44:42 +0000 (21:44 +1100)]
coverity took the 6 elements in the argument as gospel

2 years agofix potential memory leaks for failing mixing scaling on very large images
Tony Cook [Mon, 31 Dec 2018 10:34:38 +0000 (21:34 +1100)]
fix potential memory leaks for failing mixing scaling on very large images

2 years agofix double-free in TGA code
Tony Cook [Mon, 31 Dec 2018 10:25:19 +0000 (21:25 +1100)]
fix double-free in TGA code

2 years ago1.008 release v1.008
Tony Cook [Mon, 31 Dec 2018 09:52:15 +0000 (20:52 +1100)]
1.008 release

2 years agomove EXIF handling from the JPEG handler to core Imager
Tony Cook [Thu, 13 Dec 2018 00:15:10 +0000 (11:15 +1100)]
move EXIF handling from the JPEG handler to core Imager

and add it to the API.

The JPEG specific check was removed from the EXIF handling code
and inlined into the APP1 check in the JPEG decoder.

2 years agofix a dumb error in Imager::Probe
Tony Cook [Thu, 6 Dec 2018 09:50:52 +0000 (20:50 +1100)]
fix a dumb error in Imager::Probe

and add tests for loading Imager::Probe to reduce the chance of the
same problem happening again

2 years agoadd some more extensions, add add_type_extensions() class method
Tony Cook [Thu, 6 Dec 2018 09:43:18 +0000 (20:43 +1100)]
add some more extensions, add add_type_extensions() class method

2 years agosupport libbase as an arrayref for fake probing
Tony Cook [Thu, 6 Dec 2018 09:08:49 +0000 (20:08 +1100)]
support libbase as an arrayref for fake probing

2 years agoignore dist archives
Tony Cook [Sun, 2 Dec 2018 22:24:29 +0000 (09:24 +1100)]
ignore dist archives

2 years ago1.007 release v1.007
Tony Cook [Sat, 24 Nov 2018 01:45:15 +0000 (12:45 +1100)]
1.007 release

2 years agoupdate / correct PNG Changes file
Tony Cook [Sat, 24 Nov 2018 01:40:49 +0000 (12:40 +1100)]
update / correct PNG Changes file

2 years agodocument polygon() change
Tony Cook [Sat, 24 Nov 2018 01:33:50 +0000 (12:33 +1100)]
document polygon() change

2 years agoimprove error reporting for the polygon method
Tony Cook [Sat, 24 Nov 2018 01:32:41 +0000 (12:32 +1100)]
improve error reporting for the polygon method

2 years agoadd probe support for FLIF files
Tony Cook [Fri, 23 Nov 2018 00:14:43 +0000 (11:14 +1100)]
add probe support for FLIF files

(this doesn't add support for the file format, just detection of
the file's "magic number")

2 years agonote metadata changes
Tony Cook [Mon, 5 Nov 2018 10:50:11 +0000 (21:50 +1100)]
note metadata changes

2 years agoadd changes since 1.006
Tony Cook [Sat, 3 Nov 2018 05:31:27 +0000 (16:31 +1100)]
add changes since 1.006

2 years agofix some old Changes typos
Tony Cook [Sat, 3 Nov 2018 05:31:12 +0000 (16:31 +1100)]
fix some old Changes typos

2 years agoadding missing 1.006 Changes header
Tony Cook [Sat, 3 Nov 2018 05:30:50 +0000 (16:30 +1100)]
adding missing 1.006 Changes header

2 years agofix error handling in i_polygon() for non-polygon polygons
Tony Cook [Sat, 3 Nov 2018 05:30:27 +0000 (16:30 +1100)]
fix error handling in i_polygon() for non-polygon polygons

2 years agoimprove all Makefile.PLs
Tony Cook [Sat, 3 Nov 2018 03:59:27 +0000 (14:59 +1100)]
improve all Makefile.PLs

2 years agoUpdate metadata to meta-spec 2, include web view of repository, correct EUMM version...
Dan Book [Wed, 26 Sep 2018 21:27:00 +0000 (17:27 -0400)]
Update metadata to meta-spec 2, include web view of repository, correct EUMM version checks

3 years agomake it clear that noalpha doesn't compose
Tony Cook [Fri, 7 Sep 2018 04:08:03 +0000 (14:08 +1000)]
make it clear that noalpha doesn't compose

3 years agofix a typo (after almost "braking" it a different way)
Tony Cook [Tue, 5 Jun 2018 00:00:23 +0000 (10:00 +1000)]
fix a typo (after almost "braking" it a different way)

yay homonyms

3 years agoadd png_compression_level parameter for writing PNG files
Tony Cook [Mon, 4 Jun 2018 09:38:57 +0000 (19:38 +1000)]
add png_compression_level parameter for writing PNG files

3 years ago(rt #124001) avoid flooring a second time in matrix transform interpolation
Tony Cook [Fri, 5 Jan 2018 11:09:46 +0000 (22:09 +1100)]
(rt #124001) avoid flooring a second time in matrix transform interpolation

The linear interpolation done by matrix_transform_bg() (also called
when rotating images) called floor() on the ordinate both in the
caller and in the interpolation code, which seemed to confuse the compiler
supplied with the gcc supplied with 32-bit strawberry perl 5.26.0.

I suspect a value just barely below an integer was being stored in the
FPU and then rounded up to that integer when converted to a double,
which then caused an off-by-one error in interpolation.

4 years ago1.006 release v1.006
Tony Cook [Sat, 26 Aug 2017 04:18:49 +0000 (14:18 +1000)]
1.006 release

4 years agoupdate Changes
Tony Cook [Sat, 26 Aug 2017 04:16:18 +0000 (14:16 +1000)]
update Changes

4 years ago[perl #131938] allocate stack space for results in i_errors()
Tony Cook [Sat, 26 Aug 2017 03:54:38 +0000 (13:54 +1000)]
[perl #131938] allocate stack space for results in i_errors()

5 years agore-work color tests to use Imager::Test functions where possible
Tony Cook [Thu, 22 Sep 2016 01:24:34 +0000 (11:24 +1000)]
re-work color tests to use Imager::Test functions where possible

5 years agoupdate Changes
Tony Cook [Mon, 19 Sep 2016 04:12:14 +0000 (14:12 +1000)]
update Changes

5 years agoRT #117878: handle invalid image objects for write_multi()
Tony Cook [Mon, 19 Sep 2016 04:08:35 +0000 (14:08 +1000)]
RT #117878: handle invalid image objects for write_multi()

write_multi() now returns an error result instead of crashing
if called with a string scalar, an unblessed reference or a
reference to non-Imager object.

5 years agoCVE-2016-1238 mitigation
Tony Cook [Thu, 15 Sep 2016 00:28:09 +0000 (10:28 +1000)]
CVE-2016-1238 mitigation

ensure the default . is removed from @INC when attempting to load
optional modules:

  - file format modules loaded by read(), write() etc and the
    %formats tie code
  - Affix::Infix2Postfix loaded by transform()
  - Parse::RecDescent loaded by Imager::Expr

5 years agomake the jpegquality docs clearer
Tony Cook [Tue, 10 May 2016 00:44:44 +0000 (10:44 +1000)]
make the jpegquality docs clearer

5 years ago1.005 release v1.005
Tony Cook [Fri, 15 Apr 2016 23:59:39 +0000 (09:59 +1000)]
1.005 release

5 years agoupdate Changes
Tony Cook [Fri, 15 Apr 2016 23:51:55 +0000 (09:51 +1000)]
update Changes

5 years agoRevert the ivdformat probing
Tony Cook [Fri, 15 Apr 2016 23:35:13 +0000 (09:35 +1000)]
Revert the ivdformat probing

Devel::CheckLib isn't really capable of probing standard library
functions - it wants a library name to probe for and the standard
library functions aren't always loaded from something called
"libc.ext".

Due to the structure of Devel::CheckLib if you don't provide a library
name to probe for the running code checks are skipped entirely,
passing by default.

So remove this for now.

I have a work-in-progress branch with a modified Devel::CheckLib, but
since I push Devel::CheckLib changes out to the JPEG, TIFF, etc dists
it would mean meaningless new releases for those too.  Meaningless
because the changes to D::CL would have no effect on them beyond a
version bump.

5 years agoImager 1.004_004 v1.004_004
Tony Cook [Fri, 15 Apr 2016 05:56:21 +0000 (15:56 +1000)]
Imager 1.004_004

5 years agoupdate Changes
Tony Cook [Fri, 15 Apr 2016 05:52:20 +0000 (15:52 +1000)]
update Changes

5 years agotry probing for a valid ivdformat if the %Config value is bad
Tony Cook [Fri, 15 Apr 2016 05:48:13 +0000 (15:48 +1000)]
try probing for a valid ivdformat if the %Config value is bad

5 years agoprobe to check if $Config{ivdformat} is correct for the built-in sprintf
Tony Cook [Fri, 15 Apr 2016 05:35:29 +0000 (15:35 +1000)]
probe to check if $Config{ivdformat} is correct for the built-in sprintf

5 years agominor fix to pod
Tony Cook [Fri, 15 Apr 2016 04:48:50 +0000 (14:48 +1000)]
minor fix to pod

5 years agodump a bit more of the file broken on the strange win32 tester
Tony Cook [Tue, 5 Apr 2016 10:57:18 +0000 (20:57 +1000)]
dump a bit more of the file broken on the strange win32 tester

5 years ago1.004_003 release v1.004_003
Tony Cook [Wed, 23 Mar 2016 09:33:02 +0000 (20:33 +1100)]
1.004_003 release

5 years agoupdate Changes
Tony Cook [Wed, 23 Mar 2016 09:30:55 +0000 (20:30 +1100)]
update Changes

5 years agoadd some extra error reporting to I/O layer tests
Tony Cook [Wed, 23 Mar 2016 09:29:42 +0000 (20:29 +1100)]
add some extra error reporting to I/O layer tests

This might catch a failure seen on Win32.

http://cpantesters.org/cpan/report/99781689-6bf5-1014-897a-75cb4eee1325

5 years ago1.004_002 release v1.004_002
Tony Cook [Sun, 20 Mar 2016 01:25:52 +0000 (12:25 +1100)]
1.004_002 release

5 years agoupdate Changes
Tony Cook [Sun, 20 Mar 2016 01:22:27 +0000 (12:22 +1100)]
update Changes

5 years agoadd write failure diagnostics for 250-draw/010-draw.t
Tony Cook [Thu, 17 Mar 2016 09:07:22 +0000 (20:07 +1100)]
add write failure diagnostics for 250-draw/010-draw.t

This is failing on BiNGOs Solaris smoker, eg:

http://cpantesters.org/cpan/report/417ab3e8-b51f-11e5-895c-94abaef69d38

5 years agosupport older perls
Tony Cook [Thu, 17 Mar 2016 08:52:58 +0000 (19:52 +1100)]
support older perls

older perls bless handles into IO::Handle, which doesn't have a seek()
method

5 years ago1.004_001 release v1.004_001
Tony Cook [Wed, 16 Mar 2016 08:33:17 +0000 (19:33 +1100)]
1.004_001 release

5 years agosimple threading image creation/destruction test
Tony Cook [Wed, 16 Mar 2016 08:28:17 +0000 (19:28 +1100)]
simple threading image creation/destruction test

5 years agoupdate Changes
Tony Cook [Wed, 16 Mar 2016 08:27:56 +0000 (19:27 +1100)]
update Changes

5 years agoextract include paths from gcc if we can
Tony Cook [Tue, 15 Mar 2016 08:06:26 +0000 (19:06 +1100)]
extract include paths from gcc if we can

5 years agofix a memory leak when failing to write a 2 color icon image
Tony Cook [Wed, 9 Mar 2016 10:06:51 +0000 (21:06 +1100)]
fix a memory leak when failing to write a 2 color icon image

5 years agofix a context object reference leak from upgrading a paletted image
Tony Cook [Wed, 9 Mar 2016 10:05:50 +0000 (21:05 +1100)]
fix a context object reference leak from upgrading a paletted image

The internal process of upgrading a paletted image to a direct image,
done when a color not in the palette is written to the image, no
long leaks a reference count to the context object.

5 years agoclean up gif writing error handling (and fix a leak)
Tony Cook [Wed, 9 Mar 2016 10:03:52 +0000 (21:03 +1100)]
clean up gif writing error handling (and fix a leak)

doesn't fix a memory leak in giflib 4.x, which I can't do anything
about.

5 years agono longer deliberately leak the first context object
Tony Cook [Wed, 9 Mar 2016 10:02:15 +0000 (21:02 +1100)]
no longer deliberately leak the first context object

Previously Imager would deliberately leak the context object from
the start thread to ensure there was always at least one context
object available.

Modified the log code to handle there being no context object.

5 years agofix i_nearest_color() for threaded builds
Tony Cook [Wed, 9 Mar 2016 09:59:03 +0000 (20:59 +1100)]
fix i_nearest_color() for threaded builds

5 years agoupdate Changes some more
Tony Cook [Mon, 29 Feb 2016 11:19:06 +0000 (22:19 +1100)]
update Changes some more

5 years agoavoid uninitialized value warnings in the FT2 driver
Tony Cook [Tue, 23 Feb 2016 11:01:57 +0000 (22:01 +1100)]
avoid uninitialized value warnings in the FT2 driver

The values were only logged, but let's silence valgrind

5 years agomore nearest_color leaks
Tony Cook [Tue, 23 Feb 2016 11:00:46 +0000 (22:00 +1100)]
more nearest_color leaks

5 years agoset pixels with no coverage to all zero
Tony Cook [Tue, 23 Feb 2016 11:00:08 +0000 (22:00 +1100)]
set pixels with no coverage to all zero

valgrind complained about use of uninitialized values

5 years agofix documentation of i_gpix_d (internal)
Tony Cook [Tue, 23 Feb 2016 10:59:01 +0000 (21:59 +1100)]
fix documentation of i_gpix_d (internal)

5 years agoFT1 font driver: leaked buffer if it failed to open a font
Tony Cook [Tue, 23 Feb 2016 10:58:32 +0000 (21:58 +1100)]
FT1 font driver: leaked buffer if it failed to open a font

5 years agonearest_color filter: was leaking malloc()ed buffers
Tony Cook [Tue, 23 Feb 2016 10:57:54 +0000 (21:57 +1100)]
nearest_color filter: was leaking malloc()ed buffers

5 years agocombine() - was leaking malloc()ed row buffers
Tony Cook [Tue, 23 Feb 2016 10:57:21 +0000 (21:57 +1100)]
combine() - was leaking malloc()ed row buffers

5 years agogetcolorusage() leaked in i_get_anonymous_color_histo() on too many colors
Tony Cook [Sun, 21 Feb 2016 02:31:16 +0000 (13:31 +1100)]
getcolorusage() leaked in i_get_anonymous_color_histo() on too many colors

i_get_anonymous_color_histo() leaked the sample buffer.

5 years agogetcolorcount() leaked in i_count_colors() on too many colors
Tony Cook [Sun, 21 Feb 2016 02:29:18 +0000 (13:29 +1100)]
getcolorcount() leaked in i_count_colors() on too many colors

The sample array was leaked when the number of colors in the image
exceeded the supplied limit.

5 years agoremove a leak in make_palette()
Tony Cook [Sun, 21 Feb 2016 02:28:03 +0000 (13:28 +1100)]
remove a leak in make_palette()

The XS leaked the temp image array (not the images themselves) used
to pass the images to i_quant_makemap()

5 years agore-work malloc_temp(), calloc_temp() to avoid SV overhead
Tony Cook [Sun, 21 Feb 2016 01:17:05 +0000 (12:17 +1100)]
re-work malloc_temp(), calloc_temp() to avoid SV overhead

Previosly they created a temp SV and returned it's buffer.  Now they
just call Newx() or Newxz() and SAVEFREEPV() the result.

5 years agoupdate Changes
Tony Cook [Sun, 21 Feb 2016 01:08:41 +0000 (12:08 +1100)]
update Changes

5 years agoadd a missing attribution for #106836
Tony Cook [Sun, 21 Feb 2016 00:46:05 +0000 (11:46 +1100)]
add a missing attribution for #106836

5 years ago[rt #111871] re-work autolevels
Tony Cook [Sun, 21 Feb 2016 00:45:43 +0000 (11:45 +1100)]
[rt #111871] re-work autolevels

- avoid an off-by-one error when calculating the minimum and maximum
  levels from the histogram

- optimize 8-bit images by using a lookup table instead of doing
  a floating point multiply for each sample

5 years agoallow imcover to use a non-default perl
Tony Cook [Tue, 16 Feb 2016 09:30:35 +0000 (20:30 +1100)]
allow imcover to use a non-default perl

5 years agoimcover.perl: add an option to just regen coverage
Tony Cook [Sat, 13 Feb 2016 02:19:39 +0000 (13:19 +1100)]
imcover.perl: add an option to just regen coverage

5 years agofix Imager::Color->new(channels => []) with a short array
Tony Cook [Sat, 13 Feb 2016 02:07:42 +0000 (13:07 +1100)]
fix Imager::Color->new(channels => []) with a short array

Previously this would fail.

5 years agoavoid leaking memory in addcolors()
Tony Cook [Tue, 16 Feb 2016 09:30:14 +0000 (20:30 +1100)]
avoid leaking memory in addcolors()

5 years agofix scaling of samples for autolevels_mono
Tony Cook [Mon, 8 Feb 2016 08:29:04 +0000 (19:29 +1100)]
fix scaling of samples for autolevels_mono