diff options
author | Jose <jose@zeroc.com> | 2016-05-09 23:31:16 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2016-05-09 23:31:16 +0200 |
commit | 464ac5419aba884ee1783f5f67286a3c7aa72d3e (patch) | |
tree | 75d53a81f5972f7969998bd40aa21c1ec26ed672 /cpp | |
parent | Merge remote-tracking branch 'origin/3.6' (diff) | |
download | ice-464ac5419aba884ee1783f5f67286a3c7aa72d3e.tar.bz2 ice-464ac5419aba884ee1783f5f67286a3c7aa72d3e.tar.xz ice-464ac5419aba884ee1783f5f67286a3c7aa72d3e.zip |
Conflict fixes from previous commit
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/include/Ice/InputStream.h | 23 | ||||
-rw-r--r-- | cpp/src/IceGridLib/PluginFacadeI.cpp | 12 | ||||
-rw-r--r-- | cpp/test/Ice/optional/AllTests.cpp | 16 |
3 files changed, 28 insertions, 23 deletions
diff --git a/cpp/include/Ice/InputStream.h b/cpp/include/Ice/InputStream.h index 570564ef218..157da22b0fb 100644 --- a/cpp/include/Ice/InputStream.h +++ b/cpp/include/Ice/InputStream.h @@ -249,20 +249,31 @@ public: EncodingVersion skipEmptyEncapsulation() { - Int sz; + Ice::Int sz; read(sz); - if(sz != static_cast<Int>(sizeof(Int)) + 2) + if(sz < 6) { throwEncapsulationException(__FILE__, __LINE__); } - - if(i + 2 > b.end()) + if(i - sizeof(Ice::Int) + sz > b.end()) { throwUnmarshalOutOfBoundsException(__FILE__, __LINE__); } - - EncodingVersion encoding; + Ice::EncodingVersion encoding; read(encoding); + if(encoding == Ice::Encoding_1_0) + { + if(sz != static_cast<Ice::Int>(sizeof(Ice::Int)) + 2) + { + throwEncapsulationException(__FILE__, __LINE__); + } + } + else + { + // Skip the optional content of the encapsulation if we are expecting an + // empty encapsulation. + i += sz - sizeof(Ice::Int) - 2; + } return encoding; } diff --git a/cpp/src/IceGridLib/PluginFacadeI.cpp b/cpp/src/IceGridLib/PluginFacadeI.cpp index 0b1748a852b..6bcd4f92358 100644 --- a/cpp/src/IceGridLib/PluginFacadeI.cpp +++ b/cpp/src/IceGridLib/PluginFacadeI.cpp @@ -18,7 +18,7 @@ using namespace IceGrid; namespace { -RegistryPluginFacade* pluginFacade = 0; +RegistryPluginFacadePtr pluginFacade; }; @@ -38,13 +38,5 @@ IceGrid::getRegistryPluginFacade() void IceGrid::setRegistryPluginFacade(const RegistryPluginFacadePtr& facade) { - if(pluginFacade) - { - pluginFacade->__decRef(); - } - pluginFacade = facade.get(); - if(pluginFacade) - { - pluginFacade->__incRef(); - } + pluginFacade = facade; } diff --git a/cpp/test/Ice/optional/AllTests.cpp b/cpp/test/Ice/optional/AllTests.cpp index 0caeaf6704c..f35db9c9083 100644 --- a/cpp/test/Ice/optional/AllTests.cpp +++ b/cpp/test/Ice/optional/AllTests.cpp @@ -665,13 +665,15 @@ allTests(const Ice::CommunicatorPtr& communicator, bool) initial->opVoid(); - out = Ice::createOutputStream(communicator); - out->startEncapsulation(); - out->write(1, IceUtil::Optional<int>(15)); - out->write(2, IceUtil::Optional<string>("test")); - out->endEncapsulation(); - out->finished(inEncaps); - test(initial->ice_invoke("opVoid", Ice::Normal, inEncaps, outEncaps)); + { + Ice::OutputStream out(communicator); + out.startEncapsulation(); + out.write(1, IceUtil::Optional<int>(15)); + out.write(2, IceUtil::Optional<string>("test")); + out.endEncapsulation(); + out.finished(inEncaps); + test(initial->ice_invoke("opVoid", Ice::Normal, inEncaps, outEncaps)); + } cout << "ok" << endl; |