Circular definition of draw_segments



Hi,
I can't find where gdk_draw_segments() eventually calls an X line
drawing function. Starting from here, the path seems to go in circles:


*************************
gdkwindow.c:

static void
gdk_window_class_init (GdkWindowObjectClass *klass)
{
  GdkDrawableClass *drawable_class = GDK_DRAWABLE_CLASS (klass);
  ...
  drawable_class->draw_segments = gdk_window_draw_segments;
  ...
}

static void
gdk_window_draw_segments (GdkDrawable *drawable,
                          GdkGC       *gc,
                          GdkSegment  *segs,
                          gint         nsegs)
{
  ...
  gdk_draw_segments (paint->pixmap, gc, new_segs, nsegs);
  ...
}

************************
gdkdraw.c:

gdk_draw_segments (GdkDrawable *drawable,
                   GdkGC       *gc,
                   GdkSegment  *segs,
                   gint         nsegs)
{
  ...

/******* Doesn't this trigger an infinite recursive loop? ********/

  GDK_DRAWABLE_GET_CLASS (drawable)->draw_segments (drawable, gc, segs, nsegs);
}

***********************
gdkdrawable.h:

struct _GdkDrawableClass
{
  GObjectClass parent_class;
  ...
  void (*draw_segments)  (GdkDrawable  *drawable,
                          GdkGC        *gc,
                          GdkSegment   *segs,
                          gint          nsegs);
  ...
}

***********************
gdkwindow.c:

static void
gdk_window_class_init (GdkWindowObjectClass *klass)
{
  ...
  drawable_class->draw_segments = gdk_window_draw_segments;
  ...
}




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