diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-09-22 10:25:38 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-09-22 10:25:38 +0000 |
commit | 454f12ab20eac9bb8c425f3df2810318369e1892 (patch) | |
tree | 5e68f1272e06c9773ff5de9ba07eb16905a1102b /cpp/src/IceGrid/AdapterCache.cpp | |
parent | Bug 1399. (diff) | |
download | ice-454f12ab20eac9bb8c425f3df2810318369e1892.tar.bz2 ice-454f12ab20eac9bb8c425f3df2810318369e1892.tar.xz ice-454f12ab20eac9bb8c425f3df2810318369e1892.zip |
src/IceGrid
Diffstat (limited to 'cpp/src/IceGrid/AdapterCache.cpp')
-rw-r--r-- | cpp/src/IceGrid/AdapterCache.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/cpp/src/IceGrid/AdapterCache.cpp b/cpp/src/IceGrid/AdapterCache.cpp index 8b9e8f8c53b..84776e93237 100644 --- a/cpp/src/IceGrid/AdapterCache.cpp +++ b/cpp/src/IceGrid/AdapterCache.cpp @@ -205,7 +205,13 @@ ServerAdapterEntry::getProxies(int& nReplicas, bool& replicaGroup) vector<pair<string, AdapterPrx> > adapters; nReplicas = 1; replicaGroup = false; - adapters.push_back(make_pair(_id, getProxy("", true))); + // + // COMPILEFIX: We need to use a temporary here to work around a + // compiler bug with xlC on AIX which causes a segfault if + // getProxy raises an exception. + // + AdapterPrx adpt = getProxy("", true); + adapters.push_back(make_pair(_id, adpt)); return adapters; } @@ -406,7 +412,13 @@ ReplicaGroupEntry::getProxies(int& nReplicas, bool& replicaGroup) { try { - adapters.push_back(make_pair(p->first, p->second->getProxy(_id, true))); + // + // COMPILEFIX: We need to use a temporary here to work around a + // compiler bug with xlC on AIX which causes a segfault if + // getProxy raises an exception. + // + AdapterPrx adpt = p->second->getProxy(_id, true); + adapters.push_back(make_pair(p->first, adpt)); } catch(const AdapterNotExistException&) { |