[webkit-dev] Ref counting questions
Hey all, I've read the document at http://www.webkit.org/coding/RefPtr.html, but I still have some questions about using RefPtrs. The first one is listed in the Improving this document section of the aforementioned documentation: • Perils of programming with TreeShared. What does that mean? What gotchas should I be aware of? (Heck, more details on any of the things in improving this document would be helpful, and I'll do my best to update the document with anything I learn if that's desired.) Also, I've noticed that there's both TreeShared and RefCounted, and they seem fairly similar to my uninitiated eye. What's the difference between the two and when should one use one or the other? Also, are there other templates/classes that I should be aware of? Thanks, Bem ___ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev
Re: [webkit-dev] Ref counting questions
TreeShared is essentially an implementation detail of the DOM tree (the only other client besides Node is SVGElementInstance). It shouldn't be used for anything else. TreeShared keeps Nodes alive when they are part of a tree (have a parent node) even when they have zero refcount. This way nodes don't need to explicitly ref and deref their children. antti On Wed, May 22, 2013 at 7:26 PM, Bem Jones-Bey bjone...@adobe.com wrote: Hey all, I've read the document at http://www.webkit.org/coding/RefPtr.html, but I still have some questions about using RefPtrs. The first one is listed in the Improving this document section of the aforementioned documentation: • Perils of programming with TreeShared. What does that mean? What gotchas should I be aware of? (Heck, more details on any of the things in improving this document would be helpful, and I'll do my best to update the document with anything I learn if that's desired.) Also, I've noticed that there's both TreeShared and RefCounted, and they seem fairly similar to my uninitiated eye. What's the difference between the two and when should one use one or the other? Also, are there other templates/classes that I should be aware of? Thanks, Bem ___ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev ___ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev
Re: [webkit-dev] Ref counting questions
We could probably phase out TreeShared if we were really careful to avoid refcount thrash during tree construction/manipulation. I believe this can be done with careful use of PassRefPtr and swap() and it would likely be easier to understand if Nodes normally had a refcount of 1 instead of 0. On May 22, 2013, at 10:41 AM, Antti Koivisto koivi...@iki.fi wrote: TreeShared is essentially an implementation detail of the DOM tree (the only other client besides Node is SVGElementInstance). It shouldn't be used for anything else. TreeShared keeps Nodes alive when they are part of a tree (have a parent node) even when they have zero refcount. This way nodes don't need to explicitly ref and deref their children. antti On Wed, May 22, 2013 at 7:26 PM, Bem Jones-Bey bjone...@adobe.com wrote: Hey all, I've read the document at http://www.webkit.org/coding/RefPtr.html, but I still have some questions about using RefPtrs. The first one is listed in the Improving this document section of the aforementioned documentation: • Perils of programming with TreeShared. What does that mean? What gotchas should I be aware of? (Heck, more details on any of the things in improving this document would be helpful, and I'll do my best to update the document with anything I learn if that's desired.) Also, I've noticed that there's both TreeShared and RefCounted, and they seem fairly similar to my uninitiated eye. What's the difference between the two and when should one use one or the other? Also, are there other templates/classes that I should be aware of? Thanks, Bem ___ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev ___ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev ___ webkit-dev mailing list webkit-dev@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-dev