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 */