[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: Gtk2::ImageView memory issue
- From: Jeffrey Ratcliffe <jeffrey ratcliffe gmail com>
- To: Torsten Schoenfeld <kaffeetisch gmx de>
- Cc: gtk-perl-list gnome org
- Subject: Re: Gtk2::ImageView memory issue
- Date: Fri, 6 Mar 2009 23:40:45 +0100
2009/3/6 Torsten Schoenfeld <kaffeetisch gmx de>:
> GBoxed descendants have their own memory management infrastructure and thus
> also their own typemap variants: for functions returning newly constructed
> instances of GBoxed descendants, use the _own typemap variant. Then,
I've had to write code to convert the GBox struct to a hash and back
again - e.g.
static SV *
newSVGdkPixbufDrawCache (GdkPixbufDrawCache * cache)
{
HV * hv = newHV();
hv_store (hv, "last_pixbuf", 11, newSVGdkPixbuf (cache->last_pixbuf), 0);
hv_store (hv, "old", 3, newSVGdkPixbufDrawOpts (&cache->old), 0);
hv_store (hv, "check_size", 10, newSViv (cache->check_size), 0);
return newRV_noinc ((SV *) hv);
}
Is the _own variant useful here?
> Glib::Boxed::DESTROY will call the free function registered for the GBoxed
> descendant. (Perl packages representing GBoxed descendants are
> automatically set up to inherit from Glib::Boxed.)
So I should set up the type to call the _free method as follows:
GType
gdk_pixbuf_draw_cache_get_type(void) {
static GType t = 0;
if (!t) {
t = g_boxed_type_register_static("GdkPixbufDrawCache",
(GBoxedCopyFunc) g_boxed_copy,
(GBoxedFreeFunc)
gdk_pixbuf_draw_cache_free);
}
return t;
}
?
How can I test that the _free method is being called?
Regards
Jeff
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]