Package: libgtk2.0-dev
Version: 2.12.11-4

The page <URL: file:///usr/share/gtk-doc/html/gdk-pixbuf/apas02.html
 >, or, alternatively, <URL:
http://library.gnome.org/devel/gdk-pixbuf/2.12/apas02.html > contains
the statement: "The gdk-pixbuf library does not need to be
initialized".  This is false, as the following trivial program shows:

/* --- cut after --- */
#include <stdio.h>
#include <stdlib.h>

#include <glib.h>
#include <gdk-pixbuf/gdk-pixbuf.h>

/* Compile with
gcc -o stupid stupid.c -O6 -Wall -std=c99 -Wextra `pkg-config --cflags --libs 
gdk-pixbuf-2.0`
 */

#define WIDTH 320
#define HEIGHT 240
#define ROWSTRIDEPX (WIDTH)
#define ROWSTRIDE (ROWSTRIDEPX*3)

unsigned char image[HEIGHT][ROWSTRIDEPX][3];

GdkPixbuf *img;

int
main (void)
{
  img = gdk_pixbuf_new_from_data ((const guchar *)image,
                                  GDK_COLORSPACE_RGB, FALSE, 8,
                                  WIDTH, HEIGHT, ROWSTRIDE,
                                  NULL, NULL);
  exit (EXIT_SUCCESS);
}
/* --- cut before --- */

This program causes a segmentation fault after the following
errors/warnings:

(process:9342): GLib-GObject-CRITICAL **: 
/build/buildd/glib2.0-2.16.6/gobject/gtype.c:2248: initialization assertion 
failed, use IA__g_type_init() prior to this function

(process:9342): GLib-CRITICAL **: g_once_init_leave: assertion 
`initialization_value != 0' failed

(process:9342): GLib-GObject-CRITICAL **: g_object_new: assertion 
`G_TYPE_IS_OBJECT (object_type)' failed
zsh: segmentation fault  ./stupid

This segfault goes away when gdk_init() or gtk_init() is used, so it
seems to be an initialization problem: either the doc is wrong, in
which case it should be corrected to explain how and when the library
should be initialized, or it's a gdk-pixbuf bug.

I would prefer this to be counted as a bug against gdk-pixbuf, because
there ought to be a way to manipulate in-core pixbufs (to save image
files to disk) without linking in gdk or gtk.

-- 
     David A. Madore
    ([EMAIL PROTECTED],
     http://www.madore.org/~david/ )



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to