QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 589|回复: 0

hi高手们,帮帮我,为什么这个函数被调用了两次

[复制链接]
发表于 2003-12-22 00:18:22 | 显示全部楼层 |阅读模式
GtkType
gnome_canvas_card_get_type (void)
{
  static GtkType canvas_card_type = 0;

  if (!canvas_card_type) {
      static const GtkTypeInfo canvas_card_info = {
          "GnomeCanvasCard",
          sizeof (GnomeCanvasCard),
          sizeof (GnomeCanvasCardClass),
          (GtkClassInitFunc) gnome_canvas_card_class_init,
          (GtkObjectInitFunc) gnome_canvas_card_init,
          NULL, /* reserved_1 */
          NULL, /* reserved_2 */
          (GtkClassInitFunc) NULL
      };

      canvas_card_type = gtk_type_unique (gnome_canvas_item_get_type (),
                                          &canvas_card_info);
  }

  return canvas_card_type;
}
定义了一个类型,在函数gnome_canvas_card_class_init中指定了:
object_class->destroy = gnome_canvas_card_destroy;

使用item=gnome_canvas_item_new(GNOME_CANVAS_GROUP(parent),
                             gnome_canvas_card_get_type(),
                             "rank",card->rank,"suit",card->suit,
                             NULL);
创造了这样一个类型的实例,

在使用gtk_object_destroy(GTK_OBJECT(item))释放这个实例的时候,
函数gnome_canvas_card_destroy被调用了两次,谁知到这是怎么一回事吗?

参见附件中test-0.1的callback.c.
test-0.1在install了 gnome-canvas-card-0.6.tar.gz 以后才会正常

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-9 05:50 , Processed in 0.041239 second(s), 17 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表