diff options
author | Benoit Foucher <benoit@zeroc.com> | 2009-12-17 18:19:39 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2009-12-17 18:19:39 +0100 |
commit | 6795b36b5447bfaaf1d45a2a8419451557ef450e (patch) | |
tree | 153b32db8c3feb62c5fa92290a059724d26bca0d /cpp | |
parent | trivial edits for map_filesystem demo (diff) | |
download | ice-6795b36b5447bfaaf1d45a2a8419451557ef450e.tar.bz2 ice-6795b36b5447bfaaf1d45a2a8419451557ef450e.tar.xz ice-6795b36b5447bfaaf1d45a2a8419451557ef450e.zip |
CC 5.10 support (from Bernard's patch)
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/include/Ice/ProxyHandle.h | 40 | ||||
-rw-r--r-- | cpp/src/Ice/ConnectionFactory.cpp | 2 | ||||
-rw-r--r-- | cpp/src/IceDB/FreezeTypes.h | 7 | ||||
-rw-r--r-- | cpp/test/IceUtil/priority/PriorityInversion.cpp | 4 |
4 files changed, 51 insertions, 2 deletions
diff --git a/cpp/include/Ice/ProxyHandle.h b/cpp/include/Ice/ProxyHandle.h index cad5a557459..0db3af1f1da 100644 --- a/cpp/include/Ice/ProxyHandle.h +++ b/cpp/include/Ice/ProxyHandle.h @@ -89,13 +89,29 @@ uncheckedCastHelper(const ::IceInternal::ProxyHandle<Y>& b, T*) template<typename T, typename Y> inline ProxyHandle<T> checkedCastHelper(const ::IceInternal::ProxyHandle<Y>& b, void*, const ::Ice::Context* ctx) { +#ifdef __SUNPRO_CC + // + // Sun CC bug introduced in version 5.10 + // + const ::Ice::ObjectPrx& o = b; + return checkedCastImpl<ProxyHandle<T> >(o, ctx); +#else return checkedCastImpl<ProxyHandle<T> >(b, ctx); +#endif } template<typename T, typename Y> inline ProxyHandle<T> uncheckedCastHelper(const ::IceInternal::ProxyHandle<Y>& b, void*) { +#ifdef __SUNPRO_CC + // + // Sun CC bug introduced in version 5.10 + // + const ::Ice::ObjectPrx& o = b; + return uncheckedCastImpl<ProxyHandle<T> >(o); +#else return uncheckedCastImpl<ProxyHandle<T> >(b); +#endif } // @@ -264,7 +280,15 @@ public: static ProxyHandle checkedCast(const ProxyHandle<Y>& r, const std::string& f) { Ice::Context* ctx = 0; +#ifdef __SUNPRO_CC + // + // Sun CC bug introduced in version 5.10 + // + const ::Ice::ObjectPrx& o = r; + return ::IceInternal::checkedCastImpl<ProxyHandle>(o, f, ctx); +#else return ::IceInternal::checkedCastImpl<ProxyHandle>(r, f, ctx); +#endif } template<class Y> @@ -277,7 +301,15 @@ public: template<class Y> static ProxyHandle checkedCast(const ProxyHandle<Y>& r, const std::string& f, const ::Ice::Context& ctx) { +#ifdef __SUNPRO_CC + // + // Sun CC bug introduced in version 5.10 + // + const ::Ice::ObjectPrx& o = r; + return ::IceInternal::checkedCastImpl<ProxyHandle>(o, f, &ctx); +#else return ::IceInternal::checkedCastImpl<ProxyHandle>(r, f, &ctx); +#endif } template<class Y> @@ -290,7 +322,15 @@ public: template<class Y> static ProxyHandle uncheckedCast(const ProxyHandle<Y>& r, const std::string& f) { +#ifdef __SUNPRO_CC + // + // Sun CC bug introduced in version 5.10 + // + const ::Ice::ObjectPrx& o = r; + return ::IceInternal::uncheckedCastImpl<ProxyHandle<T> >(o, f); +#else return ::IceInternal::uncheckedCastImpl<ProxyHandle>(r, f); +#endif } }; diff --git a/cpp/src/Ice/ConnectionFactory.cpp b/cpp/src/Ice/ConnectionFactory.cpp index ba67dac2538..f5b3720e77e 100644 --- a/cpp/src/Ice/ConnectionFactory.cpp +++ b/cpp/src/Ice/ConnectionFactory.cpp @@ -70,7 +70,7 @@ remove(multimap<K, V>& m, K k, V v) } template <typename K, typename V> ::IceInternal::Handle<V> -find(multimap<K,::IceInternal::Handle<V> >& m, +find(const multimap<K,::IceInternal::Handle<V> >& m, K k, const ::IceUtilInternal::ConstMemFun<bool, V, ::IceInternal::Handle<V> >& predicate) { diff --git a/cpp/src/IceDB/FreezeTypes.h b/cpp/src/IceDB/FreezeTypes.h index 5df0e50d2b6..c129ab8a63e 100644 --- a/cpp/src/IceDB/FreezeTypes.h +++ b/cpp/src/IceDB/FreezeTypes.h @@ -113,7 +113,12 @@ public: for(typename Dict::const_iterator p = _dict.begin(); p != _dict.end(); ++p) #endif { - m.insert(*p); +#ifdef __SUNPRO_CC + std::map<Key, Value>::value_type v(p->first, p->second); + m.insert(v); +#else + m.insert(*p); +#endif } return m; } diff --git a/cpp/test/IceUtil/priority/PriorityInversion.cpp b/cpp/test/IceUtil/priority/PriorityInversion.cpp index d21b44ee4b4..85be93965ed 100644 --- a/cpp/test/IceUtil/priority/PriorityInversion.cpp +++ b/cpp/test/IceUtil/priority/PriorityInversion.cpp @@ -11,6 +11,10 @@ #include <vector> #include <map> +#ifndef _WIN32 +#include <unistd.h> +#endif + using namespace std; using namespace IceUtil; |