Re: GtkGC shared auto-release
- From: muppet <scott asofyet org>
- To: gtk2-perl List <gtk-perl-list gnome org>
- Subject: Re: GtkGC shared auto-release
- Date: Tue, 1 Jan 2008 21:37:20 -0500
On Dec 22, 2007, at 12:20 PM, Torsten Schoenfeld wrote:
On Sat, 2007-12-22 at 10:08 +1100, Kevin Ryde wrote:
How about calling the package Gtk2::Ex::GCPool or similar?
That could be ok.
That is, have Gtk2::Ex::GCPool->get bless the gc
into Gtk2::Ex::GCPool::CustomGC and put the @ISA mangling and
DESTROY in
that package.
That'd make live easier for further subclassing would it?
Hmm, I'm not sure anymore. When I made the Gtk2::Ex::GCPool
suggestion,
I was thinking that the thing that you call get() on and the thing
that
is returned from get() are different conceptually. But if you think
of
get() as a constructor, that's not true.
So my current thinking is that the most sensible name would be
Gtk2::Ex::SharedGC. Or maybe some name that conveys the automatic
releasing done. Gtk2::GC itself already offers shared GCs, so there
ought to be something better than SharedGC.
This is rather interesting, as it's a corner of the API i don't recall
ever visiting.
I get the impression that the ->release call is a bit of memory
management magic that we have leaked by accident. If you're going to
release the GC for other code to use, you're going to lose your last
reference to it (which is why it has to be done with DESTROY ---
FINALIZE_INSTANCE won't be called until after DESTROY), so why should
you have to call an explicit release?
Should we just add this DESTROY override to the bindings? (Taking
care to retain compatibility with code that calls ->release
explicitly, of course.)
It seems silly to have such a small external sugar module to fix
something like this...
--
The one difference between Dali and a crazy man is very simple: Dali
is not crazy at all.
-- Salvador Dali
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]