NULL WeakPtr should not malloc!
authorggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 2 Oct 2017 22:21:12 +0000 (22:21 +0000)
committerggaren@apple.com <ggaren@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 2 Oct 2017 22:21:12 +0000 (22:21 +0000)
commita3e4648b7b035c5e5f3f47e5e6511c3dce6bc4e1
tree20346220bd994bf1e327f1408f711123506b261e
parent5f39fa0beeb6cc684c88ecb4540573606f5c451a
NULL WeakPtr should not malloc!
https://bugs.webkit.org/show_bug.cgi?id=177773

Reviewed by Antti Koivisto.

Translating NULL into malloc is... inefficient.

* wtf/WeakPtr.h:
(WTF::WeakPtr::WeakPtr):
(WTF::WeakPtr::operator=):
(WTF::WeakPtr::clear): Make m_ref lazy so that a NULL m_ref can represent
a NULL pointer. Normal dereference is no slower because we can rely on
the fact that dereference of NULL should crash. operator bool() and get()
incur an extra branch. That's probably worth it to avoid malloc
for NULL.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@222752 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WTF/ChangeLog
Source/WTF/wtf/WeakPtr.h