[webkit-dev] RefPtr/PassRefPtr Question

David Hyatt hyatt at apple.com
Wed Aug 31 15:16:41 PDT 2011

I am getting complaints from check-webkit-style in a bug regarding PassRefPtr/RefPtr usage, and I can't figure out what I should be doing. It yells at me no matter what I try.

The scenario I have is that a function is wanting to transfer ownership but it's not doing it via a return value. Instead it is filling in a reference parameter.

The current code looks like this:


RefPtr<T> myLocal;
bool success = myFunc(myLocal);

With the function being:

bool myFunc(RefPtr<T>& result);

With this setup though, I get yelled at by the style checker and it tells me that the parameter should be a PassRefPtr. However I don't get how I can do that, since then I have:

PassRefPtr<T> myLocal;

and I get yelled at for making a PassRefPtr local variable.

What's the right way to write this code such that it will pass? Is this just a flaw in the style checker? It sure seems like a RefPtr<T> reference parameter should be allowed...

(hyatt at apple.com)

More information about the webkit-dev mailing list