fix 16 and double/sample bounds checking test bounds checks on each image type
- rename headers to avoid conflicts: - image.h to imager.h - imagei.h to imageri.h - datatypes.h to imdatatypes.h - config.h to imconfig.h (created by Makefile.PL) - moved all public types defined in imager.h to imdatatypes.h - supply the PM parameter to WriteMakefile(), to install headers under Imager/include, and the Imager typemap in Imager/typemap. We scan the MANIFEST for files to add to PM. - add "i_" prefix on some functions useful as public at the C level. - moved the typedefs that support the typemap from Imager.xs to imperl.h - set the global callbacks hook in the Imager.xs BOOT section - API cleanup: - define i_tags_set(), i_tags_setn() - we might not allow multiple values for a tag in the future - i_copy() now returns a new image instead of doing horrible inplace things to an existing image - provide actual functions for all of the macros we define in imager.h so we can put them in the global callbacks structure - define global functions structure (imexttypes.h) and initialize it (imext.c) - add API include header with macros to setup the define and initialize the local callbacks pointer, and macros to call the API functions. - build Imager::APIRef from C sources, including updating the sources to include documentation for each API function. - convert dyntest and mandelbrot dynfilts into XS modules (too easy) - simple Imager::CountColor example - support Inline::C : - typemap changes to accept Imager or Imager::ImgRaw objects as image parameters - define Imager output type for trivial cases of returning an i_img as a full Imager object - Inline WITH hook to filter Imager XS types into types Inline::C can accept, supply appropriate headers and initialization. - test script t/t82inline.t - try to use XSLoader instead of DynaLoader (but fallback if necessary) - paste() can now paste a subset of the source image. - paste() now has better tests - paste() should now be faster for larger pastes
parameter. - double per sample images were ignoring the channel mask.
overflow an integer would cause too small a buffer to be allocated. This could potentially be a security hole. partly resolves https://rt.cpan.org/Ticket/Display.html?id=8213
and set make_colors to 'none', quant_translate() would segfault. This was because it was making the reasonable assumption that you'd have colors to map to. quant_translate() now checks there is at least one color and return NULL if there isn't. - i_img_to_pal() now does error checking of the value returned by quant_translate(). - Imager::to_paletted() now checks for success/failure of i_img_to_pal() correctly and does appropriate error handling. - i_writegif_low() did no error checking on the result of quant_translate(), it now does - we now test that trying to write a GIF image with no palette allowable by the quant options is a failure. - Imager::write() was doing nothing with the result of the call to i_writegif_gen(), in particular it wasn't returning () on failure. - added tests for paletted image handling and the methods specific to those images - the XS for i_setcolors() was missing the OUTPUT clause for RETVAL, and hence wasn't returning failure on failure. - supplying a sufficiently small scaling value could make the scale() method return an image with zero height or width. - the void context warning for scale() now includes the callers filename/line (instead of the default of Imager.pm line 15xx) - Imager->new will now return undef if the dimensions or number of channels specified for an image are out of range. An error message can be retrieved with Imager->errstr.
…errors and added author sections to all .c files.
in the tga code which shows on big endian machines.