Projects
openEuler:Mainline
dbus-cpp
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 7
View file
_service:tar_scm:dbus-c++.spec
Changed
@@ -1,6 +1,6 @@ Name: dbus-c++ Version: 0.9.0 -Release: 20 +Release: 21 Summary: Native C++ bindings for D-Bus License: LGPLv2+ URL: http://sourceforge.net/projects/dbus-cplusplus/ @@ -11,6 +11,7 @@ Patch0003: dbus-c++-macro_collision.patch Patch0004: dbus-c++-threading.patch Patch0005: dbus-c++-writechar.patch +Patch0006: dbus-c++-template-operators.patch BuildRequires: gcc-c++ dbus-devel glib2-devel gtkmm24-devel autoconf automake libtool expat-devel ecore-devel Provides: %{name}-ecore = %{version}-%{release} %{name}-glib = %{version}-%{release} @@ -57,5 +58,8 @@ %{_libdir}/pkgconfig/* %changelog +* Thu Jul 13 2023 liyanan <thistleslyn@163.com> - 0.9.0-21 +- fix build error + * Mon Dec 2 2019 lingsheng <lingsheng@huawei.com> - 0.9.0-20 - Package init
View file
_service:tar_scm:dbus-c++-template-operators.patch
Added
@@ -0,0 +1,88 @@ +commit a0b9ef3b469ca23c6a3229d8abb967cbbddcee38 +Author: Peter Williams <peter@newton.cx> +Date: Sat Dec 19 21:12:46 2015 -0500 + + Fix some weird template/operator issues on OS X. + + I frankly don't understand at all what's going on here. These fixes + derive from: + + https://chromium.googlesource.com/chromiumos/third_party/dbus-cplusplus/+/c3f69f6be02e31521474dce7eadf6ba4f4a7ce94 + https://chromium.googlesource.com/chromiumos/third_party/dbus-cplusplus/+/7104857773f790a549d399715482fa23d9b736cd + + Except I've dropped some changes that break the OS X build for me. Frankly, if + it compiles, that's good enough for me. + +diff --git a/include/dbus-c++/types.h b/include/dbus-c++/types.h +index 044e72b..7b3108f 100644 +--- a/include/dbus-c++/types.h ++++ b/include/dbus-c++/types.h +@@ -89,13 +89,7 @@ public: + } + + template <typename T> +- operator T() const +- { +- T cast; +- MessageIter ri = _msg.reader(); +- ri >> cast; +- return cast; +- } ++ operator T() const; + + private: + +@@ -316,7 +310,7 @@ struct type< Struct<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, + } + }; + +-} /* namespace DBus */ ++extern DXXAPI DBus::MessageIter &operator << (DBus::MessageIter &iter, const DBus::Variant &val); + + inline DBus::MessageIter &operator << (DBus::MessageIter &iter, const DBus::Invalid &) + { +@@ -551,6 +545,8 @@ inline DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Signature + return ++iter; + } + ++extern DXXAPI DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Variant &val); ++ + template<typename E> + inline DBus::MessageIter &operator >> (DBus::MessageIter &iter, std::vector<E>& val) + { +@@ -644,7 +640,16 @@ inline DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Struct<T1, + return ++iter; + } + +-extern DXXAPI DBus::MessageIter &operator >> (DBus::MessageIter &iter, DBus::Variant &val); ++template <typename T> ++inline DBus::Variant::operator T() const ++{ ++ T cast; ++ DBus::MessageIter ri = _msg.reader(); ++ ri >> cast; ++ return cast; ++} ++ ++} /* namespace DBus */ + + #endif//__DBUSXX_TYPES_H + +diff --git a/src/types.cpp b/src/types.cpp +index d414a3e..70f9ac0 100644 +--- a/src/types.cpp ++++ b/src/types.cpp +@@ -34,7 +34,7 @@ + #include "message_p.h" + #include "internalerror.h" + +-using namespace DBus; ++namespace DBus { + + Variant::Variant() + : _msg(CallMessage()) // dummy message used as temporary storage for variant data +@@ -104,3 +104,4 @@ MessageIter &operator >> (MessageIter &iter, Variant &val) + return ++iter; + } + ++} /* namespace DBus */
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2