diff options
author | Nao Pross <naopross@thearcway.org> | 2019-02-02 23:17:42 +0100 |
---|---|---|
committer | Nao Pross <naopross@thearcway.org> | 2019-02-02 23:17:42 +0100 |
commit | f373a821de82271690342ddaa0566d1f85bcab91 (patch) | |
tree | 6cefa7104995008165ba42a4f4e49e4d619f57ed /engine/include/core/signal.hpp | |
parent | Finish signal, it compiles signal_test and works(!!) (diff) | |
download | flatland-f373a821de82271690342ddaa0566d1f85bcab91.tar.gz flatland-f373a821de82271690342ddaa0566d1f85bcab91.zip |
Fix few pointer casts
Diffstat (limited to 'engine/include/core/signal.hpp')
-rw-r--r-- | engine/include/core/signal.hpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/engine/include/core/signal.hpp b/engine/include/core/signal.hpp index a820880..9e35d6c 100644 --- a/engine/include/core/signal.hpp +++ b/engine/include/core/signal.hpp @@ -104,11 +104,10 @@ namespace flat::core // m_callback is called only if the signature matches bool invoke(std::shared_ptr<const helper::signal> s) const override { - // TODO: shared dynamic pointer cast - const signal<Args...> *p = dynamic_cast<const signal<Args...> *>(s.get()); + auto p = std::dynamic_pointer_cast<const signal<Args...>>(s); // if dynamic cast fails - if (p == nullptr) { + if (!p) { npdebug("invoked listener ", this, " with non-matching signal ", s); return false; } @@ -148,7 +147,7 @@ namespace flat::core // insert pointer m_listeners.push_front( // decay shared_ptr to weak_ptr - // TODO: static weak + // btw, here a static_cast is correct static_cast<std::weak_ptr<helper::listener>>( // decay listener to helper::listener std::static_pointer_cast<helper::listener>(lis_ptr) |