Re: [Vala] Patch: libgee:get_weak_ref
- From: Yu Feng <rainwoodman gmail com>
- To: Jürg Billeter <j bitron ch>
- Cc: vala-list <vala-list gnome org>
- Subject: Re: [Vala] Patch: libgee:get_weak_ref
- Date: Sat, 22 Nov 2008 02:56:25 -0500
On Fri, 2008-11-21 at 21:03 +0100, Jürg Billeter wrote:
On Fri, 2008-11-21 at 02:59 -0500, Yu Feng wrote:
On Wed, 2008-11-19 at 18:26 -0500, Yu Feng wrote:
When the collections in Gee are holding strong references, it is
difficult to obtain a weak reference to the elements in the container.
The situation is:
class Node {
Gee.List<Node> childNodes;
public Node? firstChild {
get {
return childNodes.get(0);
////// panic! the signature of properties are weak!.
}
}
}
A better alternative is to modify the signature of 'get' directly to
weak.
I understand your issue but I don't think that we should change the
return value of `get' to weak as this would make it impossible to
generate values in an iterator, for example.
Besides, a container is not a prototype-factory. A factory returns
strong references because the objects are cloned or referred. A
container should always return a weak reference because we want the
object in the container instead of a clone of the object.
Yu
An alternative is to default property getters to non-weak, this would
also solve similar issues in other situations. Any objections?
Jürg
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]