diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/Reference.cpp | 33 | ||||
-rw-r--r-- | cpp/src/slice2java/Gen.cpp | 4 |
2 files changed, 32 insertions, 5 deletions
diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp index 0f7da04d1c0..407a3f9524d 100644 --- a/cpp/src/Ice/Reference.cpp +++ b/cpp/src/Ice/Reference.cpp @@ -45,6 +45,11 @@ IceInternal::Reference::operator==(const Reference& r) const return false; } + if(context != r.context) + { + return false; + } + if(facet != r.facet) { return false; @@ -115,6 +120,15 @@ IceInternal::Reference::operator<(const Reference& r) const { return false; } + + if(context < r.context) + { + return true; + } + else if(r.context < context) + { + return false; + } if(facet < r.facet) { @@ -655,7 +669,8 @@ IceInternal::Reference::Reference(const InstancePtr& inst, Int h = 0; string::const_iterator p; - FacetPath::const_iterator q; + Context::const_iterator q; + FacetPath::const_iterator r; for(p = identity.name.begin(); p != identity.name.end(); ++p) { @@ -667,9 +682,21 @@ IceInternal::Reference::Reference(const InstancePtr& inst, h = 5 * h + *p; } - for(q = facet.begin(); q != facet.end(); ++q) + for(q = context.begin(); q != context.end(); ++q) + { + for(p = q->first.begin(); p != q->first.end(); ++p) + { + h = 5 * h + *p; + } + for(p = q->second.begin(); p != q->second.end(); ++p) + { + h = 5 * h + *p; + } + } + + for(r = facet.begin(); r != facet.end(); ++r) { - for(p = q->begin(); p != q->end(); ++p) + for(p = r->begin(); p != r->end(); ++p) { h = 5 * h + *p; } diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp index ed3c4d1d497..6372c2b5a38 100644 --- a/cpp/src/slice2java/Gen.cpp +++ b/cpp/src/slice2java/Gen.cpp @@ -2371,7 +2371,7 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p) { out << ", "; } - out << "null);"; + out << "__defaultContext());"; out << eb; out << sp; @@ -2436,7 +2436,7 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p) out << sp; out << nl << "public void" << nl << opName << "_async(" << paramsAMI << ')'; out << sb; - out << nl << opName << "_async(" << argsAMI << ", null);"; + out << nl << opName << "_async(" << argsAMI << ", __defaultContext());"; out << eb; out << sp; |