It dies



Hi Tony,

I just finished recompiling all of gnome, and tried your updates to
nethack. It now segfaults instantly on startup in the idle handler's
call to update the gnome_canvas. Something in the canvas is not liking
what we are doing there.  

There is already a game in progress under your name.  Destroy old game? [yn] (n) y
Message: Message window will be window 0
Message: Adding the Message window
Message: Status window will be window 1
Message: Adding the Status window
Message: Map window will be window 2
Message: Adding the Map window

Program received signal SIGSEGV, Segmentation fault.
0x403227d7 in gnome_canvas_image_update (item=0x8237ae8, affine=0xbffff67c, 
    clip_path=0x0, flags=3) at gnome-canvas-image.c:406
406             image->affine[0] = (affine[0] * image->width) / image->im->rgb_width;

(gdb) bt
#0  0x403227d7 in gnome_canvas_image_update (item=0x8237a88, 
    affine=0xbffff67c, clip_path=0x0, flags=3) at gnome-canvas-image.c:406
#1  0x4031c0cb in gnome_canvas_item_invoke_update (item=0x8237a88, 
    affine=0xbffff7d4, clip_path=0x0, flags=3) at gnome-canvas.c:491
#2  0x4031df54 in gnome_canvas_group_update (item=0x81e1ef8, 
    affine=0xbffff7d4, clip_path=0x0, flags=3) at gnome-canvas.c:1658
#3  0x4031c0cb in gnome_canvas_item_invoke_update (item=0x81e1ef8, 
    affine=0xbffff8bc, clip_path=0x0, flags=0) at gnome-canvas.c:491
#4  0x40320ce8 in idle_handler (data=0x81e1b10) at gnome-canvas.c:3134
#5  0x4028061b in g_idle_dispatch (source_data=0x81e2238, 
    current_time=0xbffff964, user_data=0x81e1b10) at gmain.c:918
#6  0x4027f8b6 in g_main_dispatch (current_time=0xbffff964) at gmain.c:392
#7  0x4027fcc1 in g_main_iterate (block=1, dispatch=1) at gmain.c:573
#8  0x4027fe0f in g_main_run (loop=0x82e8ee8) at gmain.c:617
#9  0x401aa489 in gtk_main () at gtkmain.c:456

(gdb) p affine[0]
$1 = 1
(gdb) p image->width
$2 = 16
(gdb) p image->im->rgb_width
Cannot access memory at address 0x0.
(gdb) p image->im           
$3 = (GdkImlibImage *) 0x0
(gdb) p *image
$4 = {item = {object = {klass = 0x81e26f0, flags = 440, ref_count = 1, 
      object_data = 0x0}, canvas = 0x81e1b70, parent = 0x81e1f58, x1 = -9, 
    y1 = -9, x2 = 9, y2 = 9, xform = 0x0}, im = 0x0, pixmap = 0x0, mask = 0x0, 
  x = 0, y = 0, width = 16, height = 16, anchor = GTK_ANCHOR_CENTER, cx = -8, 
  cy = -8, cwidth = 16, cheight = 16, gc = 0x829aa58, need_recalc = 0, 
  pixbuf = 0x0, affine = {0, 0, 0, 0, 0, 0}}

Hmm.  Somehow an image is getting added to the canvas with a NULL
image->im.  Any ideas? 

Taking a look, it seems we call ghack_map_tile to get back an
GdkImlibImage*, but we don't check if it is NULL.  Of course, this
may be perfectly Ok code....  Dunno yet. 

 -Erik

--
Erik B. Andersen   Web:    http://www.xmission.com/~andersen/ 
                   email:  andersee@debian.org
--This message was written using 73% post-consumer electrons--



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]