diff options
Diffstat (limited to 'cpp/src/Ice/Initialize.cpp')
-rw-r--r-- | cpp/src/Ice/Initialize.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/cpp/src/Ice/Initialize.cpp b/cpp/src/Ice/Initialize.cpp index 64b8fd9ab29..dc98f7e775f 100644 --- a/cpp/src/Ice/Initialize.cpp +++ b/cpp/src/Ice/Initialize.cpp @@ -151,10 +151,21 @@ CommunicatorPtr Ice::initializeWithProperties(int& argc, char* argv[], const PropertiesPtr& properties, Int version) { #ifndef ICE_IGNORE_VERSION + // + // Major and minor version numbers must match. + // if(version != ICE_INT_VERSION) { throw VersionMismatchException(__FILE__, __LINE__); } + // + // The caller's patch level cannot be greater than library's patch level. (Patch level changes are + // backward-compatible, but not forward-compatible.) + // + if(version % 100 > ICE_INT_VERSION % 100) + { + throw VersionMismatchException(__FILE__, __LINE__); + } #endif StringSeq args = argsToStringSeq(argc, argv); |