Commit Graph

405 Commits

Author SHA1 Message Date
Matthias Clasen
6939510851 More fixes for #77807:
* io-tga.c (get_contiguous_pixbuf): Helper function to create
	a pixbuf with a contiguous pixel array while being careful about
	overflow.

	* io-tga.c (fill_in_context, get_image_pseudocolor,
	get_image_truecolor, get_image_grayscale): Use
	get_contiguous_pixbuf instead of manually allocating image
	storage.

	* io-xpm.c (pixbuf_create_from_xpm):
	* io-pnm.c (gdk_pixbuf__pnm_image_load):
	* io-jpeg.c (gdk_pixbuf__jpeg_image_load): Use gdk_pixbuf_new
	instead of manually allocating image storage.
2002-04-11 21:18:40 +00:00
Matthias Clasen
3bd5fc010a Use priv->image_module->module_name instead of image_type which may be
* gdk-pixbuf-loader.c (gdk_pixbuf_loader_load_module): Use
	priv->image_module->module_name instead of image_type which may
	be NULL.
2002-04-09 00:38:38 +00:00
Matthias Clasen
71e0ad8d9e Restructured to use gdk_pixbuf_new instead of manually allocating image
* io-png.c (gdk_pixbuf__png_image_load): Restructured to use
	gdk_pixbuf_new instead of manually allocating image storage. This
	gives us a good rowstride and overflow checks.  (#77807)
2002-04-06 18:51:40 +00:00
Matthias Clasen
41446c99be Avoid allocating an extra copy of the image by using a
* io-tiff.c (tiff_image_parse): Avoid allocating an extra copy of
	the image by using a TIFFRGBAImage{Begin,Get,End} with suitable
	put functions instead of TIFFRGBAImage. And check image dimensions
	for overflow.
2002-04-05 21:02:07 +00:00
Matthias Clasen
b7333010d0 Fix a doc typo.
* gdk-pixbuf-loader.c (gdk_pixbuf_loader_get_type): Fix a doc typo.
2002-04-03 18:17:14 +00:00
Matthias Clasen
5c16742258 libpng error handlers must not return to their callers, thus longjmp out.
* io-png.c (png_simple_error_callback): libpng error handlers must
	not return to their callers, thus longjmp out. This prevents
	annoying stderr output from the default error handler.
2002-03-29 21:40:01 +00:00
Matthias Clasen
ec35e8112a Don't leak info_ptr.
* io-png.c (gdk_pixbuf__png_image_stop_load): Don't leak info_ptr.

	* io-png.c (gdk_pixbuf__png_image_load): Get rid of unused
	end_info. Also call png_read_end to check proper ending of the png
	file and catch text chunks after the image data.
2002-03-27 22:12:05 +00:00
Matthias Clasen
266c62df8f Make libpng use g_malloc instead of system malloc.
* io-png.c (gdk_pixbuf__png_image_load,
	gdk_pixbuf__png_image_begin_load): Make libpng use g_malloc
	instead of system malloc.
2002-03-26 23:17:31 +00:00
Matthias Clasen
de19229a33 Don't leak pixbuf on error.
* io-tiff.c (tiff_image_parse): Don't leak pixbuf on error.

	* io-gif.c (gdk_pixbuf__gif_image_load_increment): Don't leak
	context->buf on error.

	* gdk-pixbuf-loader.c (gdk_pixbuf_loader_close): Make sure to call
	stop_load even for short images to prevent memleaks.
2002-03-25 23:22:01 +00:00
Matthias Clasen
2a8fc72b0d Changed signature to return success and set a GError parameter, adjusted
* io-png.c (setup_png_transformations): Changed signature to
	return success and set a GError parameter, adjusted all callers.
	Also work around a possible FPE in libpng and always check that
	the new info is sane.
2002-03-25 00:15:00 +00:00
Matthias Clasen
8bad932211 context->updated_func is NULL during a nonincremental load.
* io-wbmp.c (gdk_pixbuf__wbmp_image_load_increment):
	context->updated_func is NULL during a nonincremental load.
	(gdk_pixbuf__wbmp_image_load): Stop reading after the first error.
2002-03-23 21:17:17 +00:00
Matthias Clasen
ac7e3c9584 Fix assumptions on rowstride by manually allocating a contiguous pixel
* io-tga.c: Fix assumptions on rowstride by manually allocating a
	contiguous pixel buffer. Catch buffer overruns in RLE-modi.
	Support grayscale + alpha (which can be written, but not read (!)
	by the Gimp).
2002-03-18 22:19:24 +00:00
Matthias Clasen
006a84274f Catch invalid frame dimensions.
* io-gif.c (gif_get_frame_info): Catch invalid frame dimensions.
2002-03-15 23:27:55 +00:00
Matthias Clasen
5ebe8faab2 Add valid_ras_test and invalid_bmp_1.
* test-images.h: Add valid_ras_test and invalid_bmp_1.

	* test-loaders.c (main): Add random tests for ras and pnm and an
	invalid bmp which was a crasher until my 2002-03-12 commit.

	* io-pnm.c (gdk_pixbuf__pnm_image_load_increment): Don't unref the
	pixbuf on errors.

	* io-ras.c: Handle some errors.
2002-03-13 18:11:15 +00:00
Sven Neumann
c51692d673 use sequential writes instead of calling memcpy(). Simpler and potentially
2002-03-12  Sven Neumann  <sven@gimp.org>

	* gdk-pixbuf.c (gdk_pixbuf_fill): use sequential writes instead of
	calling memcpy(). Simpler and potentially faster. (#70332)
2002-03-12 20:38:49 +00:00
Matthias Clasen
7c59491ce4 Replace a g_assert_not_reached () which could actually be reached by a
* io-bmp.c (DecodeHeader): Replace a g_assert_not_reached ()
	which could actually be reached by a proper error status return.
2002-03-12 19:49:03 +00:00
Matthias Clasen
981574a9be Fix docs.
* gtk/gtktreemodel.c (gtk_tree_row_reference_deleted): Fix docs.

	* gtk/gtkwindow.c (gtk_window_remove_mnemonic):
	(gtk_window_add_mnemonic):
	(gtk_window_mnemonic_activate): Add docs.

	* gtk/gtktreeview.c (gtk_tree_view_get_search_equal_func): Fix
	typo in docs.

	* test-loaders.c, test-images.h: More random tests.

	* io-bmp.c (DecodeHeader): Fail gracefully on OOM here.

	* gtk/gtk-sections.txt: Remove gtk_win32_get_installation_directory.
2002-03-05 22:44:27 +00:00
Owen Taylor
ef6685731c ue Mar 5 10:39:03 2002 Owen Taylor <otaylor@redhat.com>
* Makefile.am (loaderdir): Put the modules into the
        GTK_BINARY_VERSION directory for consistency with
        immodules and theme engines.
2002-03-05 15:40:48 +00:00
Owen Taylor
b3c0813b93 If we can't load the module using the g_module_build_path() filename, try
Sat Mar  2 22:11:10 2002  Owen Taylor  <otaylor@redhat.com>

        * gdk-pixbuf-io.c (_gdk_pixbuf_load_module): If we
        can't load the module using the g_module_build_path()
        filename, try loading it as a .la file.

        * test-loaders.c: Look for modules in current directory
        rather than .libs, so we find the right .la files.

        * test-loaders.c: Back out some accidental commits.
2002-03-03 03:17:22 +00:00
Owen Taylor
ed5fc07f4e Bullet-proof against integer overflow.
Sat Mar  2 21:28:03 2002  Owen Taylor  <otaylor@redhat.com>

        * gdk-pixbuf.c (gdk_pixbuf_new): Bullet-proof against integer
        overflow.
2002-03-03 02:35:25 +00:00
Tor Lillqvist
5d5f53d95d Remove.
2002-03-03  Tor Lillqvist  <tml@iki.fi>

	* gtk-pixbuf.rc.in: Remove.

	* gdk_pixbuf.rc.in: Name like this instead (wrong name used by
	mistake by Hans).

	* makefile.msc: Corresponding changes.

	* Makefile.am: Use gdk_pixbuf.rc on Win32. Distribute it.
2002-03-02 23:19:59 +00:00
Matthias Clasen
3a4906e82d Move the call to correct_total() to the right spot. (#72732)
* pixops/pixops.c (tile_make_weights): Move the call to
	correct_total() to the right spot. (#72732)
2002-02-28 18:47:38 +00:00
Owen Taylor
80bf58e01d Use {} not () to group around string assigned to char[]. (#72767, Tomas
Wed Feb 27 18:33:04 2002  Owen Taylor  <otaylor@redhat.com>

	* gdk-pixdata.c (gdk_pixdata_to_csource): Use {} not
	() to group around string assigned to char[]. (#72767,
	Tomas gren)
2002-02-27 23:45:05 +00:00
Havoc Pennington
96387b40ea remove C++-commented debug spew, reported by David L. Cooper
2002-02-21  Havoc Pennington  <hp@pobox.com>

	* gdk-pixbuf-loader.c (gdk_pixbuf_loader_load_module): remove
	C++-commented debug spew, reported by David L. Cooper
2002-02-22 02:00:57 +00:00
Matthias Clasen
38d639c0e8 Make the paned example deprecation-clean.
* docs/tutorial/gtk-tut.sgml, examples/paned/paned.c,
	examples/paned/Makefile: Make the paned example deprecation-clean.

	* various ChangeLog files: correct my email.
2002-02-17 19:59:33 +00:00
Matthias Clasen
bc90028d8d New function to make sure that the weights sum up to the correct total
* pixops/pixops.c (correct_total): New function to make sure
	that the weights sum up to the correct total without introducing
	negative weights.
	(tile_make_weights, bilinear_make_fast_weights,
	bilinear_make_weights): Use correct_total.
2002-02-15 21:11:25 +00:00
Matthias Clasen
a9a06ee44e Add a (#ifdef 0'ed) test provoking a segfault in TIFFReadDirectory().
* test-images.h (tiff1_test_3), test-loaders.c (main): Add a
	(#ifdef 0'ed) test provoking a segfault in TIFFReadDirectory().

	* io-ico.c (DecodeHeader): Check that pixbuf could be allocated.

	* test-images.h (ico_test_2), test-loaders.c (main): Test the
	previous change.

	* io-wbmp.c (gdk_pixbuf__wbmp_image_load_increment): Don't write
	beyond the end of buffer if width % 8 != 0.

	* io-tga.c (try_preload): Enforce that ctx->hdr->type is one of
	the supported types, otherwise parse_data_for_row () will not make
	any progress, leading to an infinite loop.
2002-02-12 23:28:05 +00:00
Owen Taylor
01b9bd9310 Fix handing of overall alpha.
Mon Feb 11 14:31:53 2002  Owen Taylor  <otaylor@redhat.com>

        * pixops/pixops.c (bilinear_make_weights): Fix handing of
        overall alpha.
2002-02-11 19:36:12 +00:00
Matthias Clasen
73aa2bfe05 Enable some tests which should work now.
* test-loaders.c (main): Enable some tests which should work
	now.

	* io-wbmp.c (gdk_pixbuf__wbmp_image_load_increment): Detect
	invalid image dimensions and insufficient memory.

	* io-tga.c (try_preload): Detect invalid image dimensions.
	(gdk_pixbuf__tga_stop_load): Don't try to unref NULL pointers.

	* io-ico.c (DecodeHeader): Detect some invalid headers and
	don't segfault.
2002-02-10 21:06:15 +00:00
Owen Taylor
e16d01d6a6 Force all weight arrays to sum exactly to 65535. (Fixes #70971, reported
Fri Feb  8 23:11:15 2002  Owen Taylor  <otaylor@redhat.com>

        * pixops/pixops.c: Force all weight arrays to sum exactly
        to 65535. (Fixes #70971, reported by Federico Mena Quintero)

        * Makefile.am (libgdk_pixbuf_1_3_la_DEPENDENCIES): Add
        libpixops.la.
2002-02-09 04:14:53 +00:00
Federico Mena Quintero
3ce4e21f09 Fix comment; PixopsInterpType -> GdkInterpType.
2002-02-08  Federico Mena Quintero  <federico@ximian.com>

	* pixops/pixops.h: Fix comment; PixopsInterpType -> GdkInterpType.
2002-02-08 19:52:23 +00:00
Darin Adler
27fec072e3 Wean this from <ctype.h>.
* io-xbm.c: (next_int): Wean this from <ctype.h>.
2002-02-08 19:08:20 +00:00
Matthias Clasen
cfaea03b10 Build the tga loader as a static library. (#70157)
* Makefile.am: Build the tga loader as a static library. (#70157)
2002-02-01 23:59:52 +00:00
Matthias Clasen
50e6308388 Merge 16- and 32-bit ico support from the stable branch. (#61179)
* io-ico.c: Merge 16- and 32-bit ico support from the stable
        branch.  (#61179)

        * io-gif.c: Recomposite all images if the animation size changes
        while loading.  (#70055)

        * gdk-pixbuf.c (gdk-pixbuf-fill): Make it work for subpixbufs.
        (#70055)
2002-02-01 23:43:07 +00:00
Manish Singh
1530c14531 Made sure all the error cases involving jpeg or png load/saves clean
Sat Jan 19 20:49:20 2002  Manish Singh  <yosh@gimp.org>

        * io-jpeg.c, io-png.c: Made sure all the error cases involving
        jpeg or png load/saves clean themselves up properly. Marked some
        variables needed for cleanup volatile so they aren't clobbered by
        setjmp.
2002-01-20 04:52:47 +00:00
Owen Taylor
73e0e35a04 Credit Michael Hore for last two changes 2002-01-12 00:26:25 +00:00
Owen Taylor
dee2b1e0b2 Fix integer overflow for the values passed to the pixel functions.
Fri Jan 11 18:05:07 2002  Owen Taylor  <otaylor@redhat.com>

	* pixops/pixops.c: Fix integer overflow for the values
	passed to the pixel functions. (#55148)
2002-01-11 23:08:44 +00:00
Owen Taylor
a458dd72e5 Remove meaningless FIXME.
Fri Jan 11 17:53:58 2002  Owen Taylor  <otaylor@redhat.com>

        * pixops/pixops.c (pixops_scale_nearest): Remove meaningless
        FIXME.

        * pixops/pixops.c (pixops_process): Comment the computation
        of run_end_index and fix some edge cases.

        * pixops/{scale_line_22_33_mmx.S, composite_line_22_4a4_mmx.S:
        composite_line_color_22_4a4_mmx.S}: Handle the case where
        dest <= dest_end properly. (#52001)
2002-01-11 22:54:53 +00:00
Owen Taylor
868603bc15 Replace some hardcoded values with the SUBSAMPLE
Thu Jan 10 16:48:30 2002  Owen Taylor  <otaylor@redhat.com>

        * pixops/pixops.c: Replace some hardcoded values with the
        SUBSAMPLE
2002-01-10 21:49:39 +00:00
Owen Taylor
add14c9ef4 Include glib-object.h, Add G_BEGIN_DECLS/END_DECLS to
Wed Jan  9 11:29:44 2002  Owen Taylor  <otaylor@redhat.com>

	* Makefile.am (s-enum-types-h): Include glib-object.h,
	Add G_BEGIN_DECLS/END_DECLS to gdk-pixbuf-enum-types.h. (#68325,
	Mikael Hermansson)

	* *.h: G_BEGIN_DECLS cleanups.
2002-01-09 16:36:20 +00:00
Owen Taylor
b24d44e421 - Massive cleanup, make actually legible. - Fix some clamp-to-range bugs
Tue Jan  8 10:58:04 2002  Owen Taylor  <otaylor@redhat.com>

        * gdk-pixbuf-util.c (gdk_pixbuf_saturate_and_pixelate):
         - Massive cleanup, make actually legible.
         - Fix some clamp-to-range bugs found by Jim Cape (#68231).
         - Add a g_return_if_fail() if src and dest alpha don't match.
         - Allow for src_rowstride != dest_rowstride.
2002-01-08 16:12:49 +00:00
Hans Breuer
40cab0a2fb don't export functions prefixed with underscore
2002-01-04  Hans Breuer  <hans@breuer.org>

	* gdk_pixbuf.def : don't export functions prefixed
	with underscore

	* makefile.msc : use -FImsvc_recommende_pragmas.h
2002-01-05 18:59:24 +00:00
Owen Taylor
c96a394cc2 Fix and uncomment non-MMX version.
Thu Jan  3 19:31:58 2002  Owen Taylor  <otaylor@redhat.com>

	* pixops/pixops.c (scale_line_22_33): Fix and uncomment
	non-MMX version.

	* pixops/pixops.c (pixops_composite_nearest): Remove a
	division.

	* pixops/pixops.c (pixops_composite): Add some docs
	about the parameters.

	* pixops/README: Add notes about the correct algorithms
	for alpha compositing and how to implement them quickly.
2002-01-04 00:34:06 +00:00
Tor Lillqvist
c7401decdb Add makefile.msc.
2001-12-29  Tor Lillqvist  <tml@iki.fi>

	* Makefile.am (EXTRA_DIST): Add makefile.msc.
2001-12-29 10:09:50 +00:00
Owen Taylor
1806c0eed8 Fix trailing "," in enumeration.
Sat Dec 22 15:31:20 2001  Owen Taylor  <otaylor@redhat.com>

        * gdk-pixdata.h: Fix trailing "," in enumeration.
2001-12-23 22:55:53 +00:00
Matthias Clasen
237a59fce9 Forgotten files. 2001-12-20 23:44:19 +00:00
Havoc Pennington
a7d0944194 small doc tweaks, specifically some "just do XYZ" advice next to the
2001-12-16  Havoc Pennington  <hp@pobox.com>

	* gdk-pixbuf/tmpl/scaling.sgml: small doc tweaks, specifically
	some "just do XYZ" advice next to the InterpMode technojargon.

2001-12-16  Havoc Pennington  <hp@pobox.com>

	* gdk-pixbuf-scale.c: docs enhancements
2001-12-16 21:09:30 +00:00
Sebastian Wilhelmi
c1e9dd9dbd Use g_ascii_strcasecmp() instead of g_strcasecmp().
2001-12-14  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* io-xpm.c: Use g_ascii_strcasecmp() instead of g_strcasecmp().
2001-12-14 09:40:20 +00:00
Sebastian Wilhelmi
d99bd97fe8 Remove assorted G_OBJECT casts where unnecessary.
2001-12-13  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gdk-pixbuf-animation.c, gdk-pixbuf-loader.c, gdk-pixpuf.c,
	io-gif-animation.c, io-gif.c, io-tiff.c, test-loaders.c: Remove
	assorted G_OBJECT casts where unnecessary.

	* gdk-pixbuf-loader.c: Call g_object_ref and g_object_unref
	instead of gdk_pixbuf_animation_ref and gdk_pixbuf_animation_unref
	resp.

	* gdk-pixbuf-csource.c, io-bmp.c, io-gif-animation.c, io-ico.c,
	io-jpeg.c, io-png.c, io-pnm.c, io-ras.c, io-tga.c, io-wbmp.c,
	io-xbm.c, io-xpm.c, test-gdk-pixbuf.c: Dito for gdk_pixbuf_ref and
	gdk_pixbuf_unref.

	* Makefile.am, pixops/Makefile.am: Compile everything with
	-DG_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED

	* gdk-pixdata.c: Use g_ascii_strup() instead of g_strup().

	* io-xpm.c: Use g_ascii_strcasecmp() instead of g_strcasecmp().

	* demos/testpixbuf-drawable.c, demos/testpixbuf-save.c,
	demos/testpixbuf-scale.c, demos/testpixbuf.c: Call g_object_ref
	and g_object_unref instead of gdk_pixbuf_ref and gdk_pixbuf_unref
	resp.
2001-12-13 21:22:12 +00:00
Matthias Clasen
fc4a6b955d Markup fixes.
* gtk/gtkdialog.c, gtk/gtkrc.c, gtk/gtkwidget.c: Markup fixes.

        * gdk-pixbuf-io.c: Markup fixes.

        * gdk-pixbuf/tmpl/scaling.sgml, gdk/tmpl/fonts.sgml,
        gdk/tmpl/general.sgml, gdk/tmpl/rgb.sgml, gdk/tmpl/visuals.sgml,
        gdk/tmpl/windows.sgml, gtk/gtk-docs.sgml, gtk/tmpl/gtkaccellabel.sgml,
        gtk/tmpl/gtkcombo.sgml, gtk/tmpl/gtkdialog.sgml,
        gtk/tmpl/gtkdrawingarea.sgml, gtk/tmpl/gtkeditable.sgml,
        gtk/tmpl/gtkfilesel.sgml, gtk/tmpl/gtkfontseldlg.sgml,
        gtk/tmpl/gtkimage.sgml, gtk/tmpl/gtkmain.sgml, gtk/tmpl/gtkmenu.sgml,
        gtk/tmpl/gtkmessagedialog.sgml, gtk/tmpl/gtkobject.sgml,
        gtk/tmpl/gtkpaned.sgml, gtk/tmpl/gtkradiobutton.sgml,
        gtk/tmpl/gtkrc.sgml, gtk/tmpl/gtkscale.sgml, gtk/tmpl/gtksignal.sgml,
        gtk/tmpl/gtksocket.sgml, gtk/tmpl/gtkspinbutton.sgml,
        gtk/tmpl/gtktogglebutton.sgml, gtk/tmpl/gtksignal.sgml,
        gtk/tmpl/gtktooltips.sgml, gtk/tmpl/gtkwindow.sgml,
        gdk/tmpl/regions.sgml, gtk/tmpl/gtkfontsel.sgml,
        gtk/tmpl/gtkpixmap.sgml, gtk/tmpl/gtkprogress.sgml,
        gtk/tmpl/gtkselection.sgml, gtk/tmpl/gtktable.sgml,
        gtk/tmpl/gtktipsquery.sgml: Markup fixes (mainly examples).
2001-12-13 19:51:24 +00:00