Hi folks, 

   I just stumbled upon a crash in renderer_libart_copy_to_window, with
anti-aliased mode ON. I was resizing a window, just after dropping a
rectangle in it.

   This might be the same as the crash which was reported a few days ago.

The last line of dia's code executed was here :

extern void
renderer_libart_copy_to_window(RendererLibart *renderer, GdkWindow *window,
                               int x, int y, int width, int height)
{
  static GdkGC *copy_gc = NULL;
  int w;
    
  if (copy_gc == NULL) {
    copy_gc = gdk_gc_new(window);
  }
    
  w = renderer->renderer.pixel_width;

  /* HERE ----> */  gdk_draw_rgb_image(window,
                     copy_gc,
                     x,y,
                     width, height,
                     GDK_RGB_DITHER_NONE,
                     renderer->rgb_buffer+x*3+y*3*w,
                     w*3);
}
 
The variables were :
        x=-1, y=-1, width=0, height=121, w=0, renderer->rgb_buffer pointed
to something appearing to be valid.

  I wonder if x and y really ought to be negative : renderer->rgb_buffer
is valid, but is (renderer->rgb_buffer - 3) really a place we can blit ?

Lacking time and expertise in that area, I hope that helps.

        -- Cyrille

------------------------------------------------------------------------------
Grumpf.



Reply via email to