Title: [161830] trunk/Source/WebCore
- Revision
- 161830
- Author
- [email protected]
- Date
- 2014-01-12 12:59:30 -0800 (Sun, 12 Jan 2014)
Log Message
Clean up NetworkStateNotifier class
https://bugs.webkit.org/show_bug.cgi?id=126850
Reviewed by Andreas Kling.
Use std::call_once instead of AtomicallyInitializedStatic and a std::function
instead of a custom function pointer typedef.
* platform/network/NetworkStateNotifier.cpp:
(WebCore::networkStateNotifier):
(WebCore::NetworkStateNotifier::addNetworkStateChangeListener):
(WebCore::NetworkStateNotifier::notifyNetworkStateChange):
* platform/network/NetworkStateNotifier.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (161829 => 161830)
--- trunk/Source/WebCore/ChangeLog 2014-01-12 20:54:54 UTC (rev 161829)
+++ trunk/Source/WebCore/ChangeLog 2014-01-12 20:59:30 UTC (rev 161830)
@@ -1,3 +1,19 @@
+2014-01-12 Anders Carlsson <[email protected]>
+
+ Clean up NetworkStateNotifier class
+ https://bugs.webkit.org/show_bug.cgi?id=126850
+
+ Reviewed by Andreas Kling.
+
+ Use std::call_once instead of AtomicallyInitializedStatic and a std::function
+ instead of a custom function pointer typedef.
+
+ * platform/network/NetworkStateNotifier.cpp:
+ (WebCore::networkStateNotifier):
+ (WebCore::NetworkStateNotifier::addNetworkStateChangeListener):
+ (WebCore::NetworkStateNotifier::notifyNetworkStateChange):
+ * platform/network/NetworkStateNotifier.h:
+
2014-01-12 Simon Fraser <[email protected]>
Add implementations of Frame::viewportArguments() and
Modified: trunk/Source/WebCore/platform/network/NetworkStateNotifier.cpp (161829 => 161830)
--- trunk/Source/WebCore/platform/network/NetworkStateNotifier.cpp 2014-01-12 20:54:54 UTC (rev 161829)
+++ trunk/Source/WebCore/platform/network/NetworkStateNotifier.cpp 2014-01-12 20:59:30 UTC (rev 161830)
@@ -26,30 +26,35 @@
#include "config.h"
#include "NetworkStateNotifier.h"
+#include <mutex>
#include <wtf/Assertions.h>
#include <wtf/StdLibExtras.h>
-#include <wtf/Threading.h>
namespace WebCore {
NetworkStateNotifier& networkStateNotifier()
{
- AtomicallyInitializedStatic(NetworkStateNotifier*, networkStateNotifier = new NetworkStateNotifier);
+ static std::once_flag onceFlag;
+ static NetworkStateNotifier* networkStateNotifier;
+ std::call_once(onceFlag, []{
+ networkStateNotifier = std::make_unique<NetworkStateNotifier>().release();
+ });
+
return *networkStateNotifier;
}
-void NetworkStateNotifier::addNetworkStateChangeListener(NetworkStateChangeListener listener)
+void NetworkStateNotifier::addNetworkStateChangeListener(std::function<void (bool)> listener)
{
ASSERT(listener);
- m_listeners.append(listener);
+
+ m_listeners.append(std::move(listener));
}
void NetworkStateNotifier::notifyNetworkStateChange()
{
- Vector<NetworkStateChangeListener>::iterator end = m_listeners.end();
- for (Vector<NetworkStateChangeListener>::iterator it = m_listeners.begin(); it != end; ++it)
- (*it)(m_isOnLine);
+ for (const auto& listener : m_listeners)
+ listener(m_isOnLine);
}
-}
+} // namespace WebCore
Modified: trunk/Source/WebCore/platform/network/NetworkStateNotifier.h (161829 => 161830)
--- trunk/Source/WebCore/platform/network/NetworkStateNotifier.h 2014-01-12 20:54:54 UTC (rev 161829)
+++ trunk/Source/WebCore/platform/network/NetworkStateNotifier.h 2014-01-12 20:59:30 UTC (rev 161830)
@@ -58,8 +58,7 @@
#if PLATFORM(EFL)
~NetworkStateNotifier();
#endif
- typedef void (*NetworkStateChangeListener)(bool m_isOnLine);
- void addNetworkStateChangeListener(NetworkStateChangeListener);
+ void addNetworkStateChangeListener(std::function<void (bool isOnLine)>);
bool onLine() const { return m_isOnLine; }
@@ -69,7 +68,7 @@
private:
bool m_isOnLine;
- Vector<NetworkStateChangeListener> m_listeners;
+ Vector<std::function<void (bool)>> m_listeners;
void notifyNetworkStateChange();
void updateState();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes