summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2009-12-17 18:19:39 +0100
committerBenoit Foucher <benoit@zeroc.com>2009-12-17 18:19:39 +0100
commit6795b36b5447bfaaf1d45a2a8419451557ef450e (patch)
tree153b32db8c3feb62c5fa92290a059724d26bca0d /cpp
parenttrivial edits for map_filesystem demo (diff)
downloadice-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.h40
-rw-r--r--cpp/src/Ice/ConnectionFactory.cpp2
-rw-r--r--cpp/src/IceDB/FreezeTypes.h7
-rw-r--r--cpp/test/IceUtil/priority/PriorityInversion.cpp4
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;