Commit b19539d8 authored by ch.dumez@samsung.com's avatar ch.dumez@samsung.com

Store IdTargetObserver::m_registry as a reference

Store IdTargetObserver::m_registry as a reference instead of a pointer.
This makes the code look safer and gets rid of an unnecessary null check.

Also make IdTargetObserverRegistry non copyable to protect against bad
assignments to references.

R=adamk@chromium.org, adamk, rwlbuis

Review URL: https://codereview.chromium.org/183463004

git-svn-id: svn://svn.chromium.org/blink/trunk@168419 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent bf826990
...@@ -31,16 +31,15 @@ ...@@ -31,16 +31,15 @@
namespace WebCore { namespace WebCore {
IdTargetObserver::IdTargetObserver(IdTargetObserverRegistry& registry, const AtomicString& id) IdTargetObserver::IdTargetObserver(IdTargetObserverRegistry& registry, const AtomicString& id)
: m_registry(&registry) : m_registry(registry)
, m_id(id) , m_id(id)
{ {
m_registry->addObserver(m_id, this); m_registry.addObserver(m_id, this);
} }
IdTargetObserver::~IdTargetObserver() IdTargetObserver::~IdTargetObserver()
{ {
if (m_registry) m_registry.removeObserver(m_id, this);
m_registry->removeObserver(m_id, this);
} }
} // namespace WebCore } // namespace WebCore
...@@ -41,7 +41,7 @@ protected: ...@@ -41,7 +41,7 @@ protected:
IdTargetObserver(IdTargetObserverRegistry&, const AtomicString& id); IdTargetObserver(IdTargetObserverRegistry&, const AtomicString& id);
private: private:
IdTargetObserverRegistry* m_registry; IdTargetObserverRegistry& m_registry;
AtomicString m_id; AtomicString m_id;
}; };
......
...@@ -37,7 +37,7 @@ namespace WebCore { ...@@ -37,7 +37,7 @@ namespace WebCore {
class IdTargetObserver; class IdTargetObserver;
class IdTargetObserverRegistry { class IdTargetObserverRegistry {
WTF_MAKE_FAST_ALLOCATED; WTF_MAKE_NONCOPYABLE(IdTargetObserverRegistry); WTF_MAKE_FAST_ALLOCATED;
friend class IdTargetObserver; friend class IdTargetObserver;
public: public:
static PassOwnPtr<IdTargetObserverRegistry> create(); static PassOwnPtr<IdTargetObserverRegistry> create();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment