On Feb 13, 2008, at 10:31 AM, Chris Brichford wrote:
I'd suggest that ref/deref classes start out with a 0 ref count, but
all their constructor and destructors should protected or private.
The concrete classes that should be "constructable" should then have
a static method that calls the constructor and returns a
PassRefPtr. Such an approach makes it harder to misuse the class.
It would also simplify the RefPtr and PassRefPtr classes because
their constructors that accept a raw ptr would *always* call ref.
Even if the ref/deref classes start out with a 1 ref count, it still
would make sense to me to make the constructors and destructors
protected or private such that a static method on the class
encapsulates the incantation to get a RefPtr or PassRefPtr to a new
instances of the class.
Completely agreed. That's how we're doing it. Starting with a ref.
count of 1 gives a performance boost and making a create function that
returns a PassRefPtr makes using the class more foolproof. Here's an
example I checked in this weekend:
<http://trac.webkit.org/projects/webkit/changeset/30109>
Note that the constructors are private, the create functions are
public, and due to the use of adoptRef it starts at 1, rather than
starting at 0 and then being bumped to 1.
I'll mention it on the maintenance page.
-- Darin
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-dev