Skip to content

Commit

Permalink
Use WeakPtr in VisitedLinkTableController
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=259711

Reviewed by Chris Dumez.

Use WeakPtr instead of raw pointers to keep track of all VisitedLinkTableControllers.

* Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::visitedLinkTableControllers):
(WebKit::VisitedLinkTableController::getOrCreate):
* Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.h:

Canonical link: https://commits.webkit.org/266500@main
  • Loading branch information
rniwa committed Aug 2, 2023
1 parent 9ed33f8 commit 7fef3d7
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
12 changes: 6 additions & 6 deletions Source/WebKit/WebProcess/WebPage/VisitedLinkTableController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,21 +36,21 @@
namespace WebKit {
using namespace WebCore;

static HashMap<uint64_t, VisitedLinkTableController*>& visitedLinkTableControllers()
static HashMap<uint64_t, WeakPtr<VisitedLinkTableController>>& visitedLinkTableControllers()
{
static NeverDestroyed<HashMap<uint64_t, VisitedLinkTableController*>> visitedLinkTableControllers;

static NeverDestroyed<HashMap<uint64_t, WeakPtr<VisitedLinkTableController>>> visitedLinkTableControllers;
RELEASE_ASSERT(isMainRunLoop());
return visitedLinkTableControllers;
}

Ref<VisitedLinkTableController> VisitedLinkTableController::getOrCreate(uint64_t identifier)
{
auto& visitedLinkTableControllerPtr = visitedLinkTableControllers().add(identifier, nullptr).iterator->value;
if (visitedLinkTableControllerPtr)
return *visitedLinkTableControllerPtr;
if (RefPtr ptr = visitedLinkTableControllerPtr.get())
return *ptr;

auto visitedLinkTableController = adoptRef(*new VisitedLinkTableController(identifier));
visitedLinkTableControllerPtr = visitedLinkTableController.ptr();
visitedLinkTableControllerPtr = visitedLinkTableController.get();

return visitedLinkTableController;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@

namespace WebKit {

class VisitedLinkTableController final : public WebCore::VisitedLinkStore , private IPC::MessageReceiver {
class VisitedLinkTableController final : public WebCore::VisitedLinkStore, public IPC::MessageReceiver {
public:
static Ref<VisitedLinkTableController> getOrCreate(uint64_t identifier);
virtual ~VisitedLinkTableController();
Expand Down

0 comments on commit 7fef3d7

Please sign in to comment.