diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-01-26 18:29:41 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-01-27 17:50:29 +0200 |
commit | eae59ca2cdc68236136685c52da17f6c37515d59 (patch) | |
tree | 950c0d56f64e8ad6670e6638f19a1485f8e0b5d0 | |
parent | aae0b7ffb1123103f162bdf566e2d4bce5cbf774 (diff) |
libcamera: signal: Don't use reinterpret_cast<>() to perform downcasts
Use static_cast<>() instead of reinterpret_cast<>() to perform
downcasts, as reinterpret_cast<>() isn't meant (and guaranteed to be
safe) for that purpose.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
-rw-r--r-- | include/libcamera/signal.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/libcamera/signal.h b/include/libcamera/signal.h index 0b437a48..c375b0a8 100644 --- a/include/libcamera/signal.h +++ b/include/libcamera/signal.h @@ -37,7 +37,7 @@ public: SlotMember(T *obj, void(T::*func)(Args...)) : SlotBase<Args...>(obj), func_(func) { } - void invoke(Args... args) { (reinterpret_cast<T *>(this->obj_)->*func_)(args...); } + void invoke(Args... args) { (static_cast<T *>(this->obj_)->*func_)(args...); } private: friend class Signal<Args...>; @@ -111,7 +111,7 @@ public: * match, so we can safely cast to SlotMember<T, Args>. */ if (slot->obj_ == object && - reinterpret_cast<SlotMember<T, Args...> *>(slot)->func_ == func) { + static_cast<SlotMember<T, Args...> *>(slot)->func_ == func) { iter = slots_.erase(iter); delete slot; } else { @@ -125,7 +125,7 @@ public: for (auto iter = slots_.begin(); iter != slots_.end(); ) { SlotBase<Args...> *slot = *iter; if (slot->obj_ == nullptr && - reinterpret_cast<SlotStatic<Args...> *>(slot)->func_ == func) { + static_cast<SlotStatic<Args...> *>(slot)->func_ == func) { iter = slots_.erase(iter); delete slot; } else { |