Hi,
With WebKit adopting C++17 a while back, there are no longer any benefits to using makeRef() / makeRefPtr() as far as I can tell.
Code that was written like so:
auto protectedThis = makeRef(*this);
auto protectedPage = makeRefPtr(page);
auto result = makeRef(foo->bar());
auto lambda = [protectedThis = makeRef(*this)] { };
m_node = makeRef(node); // m_node being a Ref<Node>
m_node = makeRefPtr(node); // m_node being a RefPtr<Node>
Can now be written in a more concise way:
Ref protectedThis { *this };
RefPtr protectedPage { page };
Ref result = foo->bar();
auto lambda = [protectedThis = Ref { *this }] { };
m_node = node;
`m_node = node;` or `m_node = &node; // depending if node is a reference or pointer.
I am currently in the process on transitioning our code from one style to the other and removing makeRef() / makeRefPtr() altogether.
I am sending this email so people are not confused when they try to use makeRef() / makeRefPtr() in new code.