wok diff dbus-c++/stuff/dbus-c++-0.9.0-template-operators.patch @ rev 25843
Update some urls
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Wed May 21 09:04:33 2025 +0000 (5 weeks ago) |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dbus-c++/stuff/dbus-c++-0.9.0-template-operators.patch Wed May 21 09:04:33 2025 +0000 1.3 @@ -0,0 +1,88 @@ 1.4 +commit a0b9ef3b469ca23c6a3229d8abb967cbbddcee38 1.5 +Author: Peter Williams <peter@newton.cx> 1.6 +Date: Sat Dec 19 21:12:46 2015 -0500 1.7 + 1.8 + Fix some weird template/operator issues on OS X. 1.9 + 1.10 + I frankly don't understand at all what's going on here. These fixes 1.11 + derive from: 1.12 + 1.13 + https://chromium.googlesource.com/chromiumos/third_party/dbus-cplusplus/+/c3f69f6be02e31521474dce7eadf6ba4f4a7ce94 1.14 + https://chromium.googlesource.com/chromiumos/third_party/dbus-cplusplus/+/7104857773f790a549d399715482fa23d9b736cd 1.15 + 1.16 + Except I've dropped some changes that break the OS X build for me. Frankly, if 1.17 + it compiles, that's good enough for me. 1.18 + 1.19 +diff --git a/include/dbus-c++/types.h b/include/dbus-c++/types.h 1.20 +index 044e72b..7b3108f 100644 1.21 +--- a/include/dbus-c++/types.h 1.22 ++++ b/include/dbus-c++/types.h 1.23 +@@ -89,13 +89,7 @@ public: 1.24 + } 1.25 + 1.26 + template <typename T> 1.27 +- operator T() const 1.28 +- { 1.29 +- T cast; 1.30 +- MessageIter ri = _msg.reader(); 1.31 +- ri >> cast; 1.32 +- return cast; 1.33 +- } 1.34 ++ operator T() const; 1.35 + 1.36 + private: 1.37 + 1.38 +@@ -316,7 +310,7 @@ struct type< Struct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, 1.39 + } 1.40 + }; 1.41 + 1.42 +-} /* namespace DBus */ 1.43 ++extern DXXAPI DBus::MessageIter &operator << (DBus::MessageIter &iter, const DBus::Variant &val); 1.44 + 1.45 + inline DBus::MessageIter &operator << (DBus::MessageIter &iter, const DBus::Invalid &) 1.46 + { 1.47 +@@ -551,6 +545,8 @@ inline DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Signature 1.48 + return ++iter; 1.49 + } 1.50 + 1.51 ++extern DXXAPI DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Variant &val); 1.52 ++ 1.53 + template<typename E> 1.54 + inline DBus::MessageIter &operator >> (DBus::MessageIter &iter, std::vector<E>& val) 1.55 + { 1.56 +@@ -644,7 +640,16 @@ inline DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Struct<T1, 1.57 + return ++iter; 1.58 + } 1.59 + 1.60 +-extern DXXAPI DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Variant &val); 1.61 ++template <typename T> 1.62 ++inline DBus::Variant::operator T() const 1.63 ++{ 1.64 ++ T cast; 1.65 ++ DBus::MessageIter ri = _msg.reader(); 1.66 ++ ri >> cast; 1.67 ++ return cast; 1.68 ++} 1.69 ++ 1.70 ++} /* namespace DBus */ 1.71 + 1.72 + #endif//__DBUSXX_TYPES_H 1.73 + 1.74 +diff --git a/src/types.cpp b/src/types.cpp 1.75 +index d414a3e..70f9ac0 100644 1.76 +--- a/src/types.cpp 1.77 ++++ b/src/types.cpp 1.78 +@@ -34,7 +34,7 @@ 1.79 + #include "message_p.h" 1.80 + #include "internalerror.h" 1.81 + 1.82 +-using namespace DBus; 1.83 ++namespace DBus { 1.84 + 1.85 + Variant::Variant() 1.86 + : _msg(CallMessage()) // dummy message used as temporary storage for variant data 1.87 +@@ -104,3 +104,4 @@ MessageIter &operator >> (MessageIter &iter, Variant &val) 1.88 + return ++iter; 1.89 + } 1.90 + 1.91 ++} /* namespace DBus */