diff options
author | Jose <jose@zeroc.com> | 2019-06-07 11:33:31 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2019-06-07 11:33:31 +0200 |
commit | 7d9486b9113d5bbb533ced14d4e145faf97dcda2 (patch) | |
tree | 6c7899e633ddf97c03df49156b1483b23010da3b /cpp/src/slice2cpp/Gen.cpp | |
parent | Fix code format fixes (diff) | |
parent | JavaScript browser testing fixes (diff) | |
download | ice-7d9486b9113d5bbb533ced14d4e145faf97dcda2.tar.bz2 ice-7d9486b9113d5bbb533ced14d4e145faf97dcda2.tar.xz ice-7d9486b9113d5bbb533ced14d4e145faf97dcda2.zip |
Merge remote-tracking branch 'origin/3.7' into swift
Diffstat (limited to 'cpp/src/slice2cpp/Gen.cpp')
-rw-r--r-- | cpp/src/slice2cpp/Gen.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index afb8f2976c7..0b3347f936e 100644 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -6747,12 +6747,17 @@ Slice::Gen::Cpp11ProxyVisitor::visitClassDefStart(const ClassDefPtr& p) writeDocSummary(H, p); H << nl << "class " << _dllClassExport << p->name() << "Prx : public virtual " << getUnqualified("::Ice::Proxy", scope) << "<" << fixKwd(p->name() + "Prx") << ", "; - if(bases.empty() || (base && base->allOperations().empty())) + if(bases.empty() || (bases.size() == 1 && base && base->allOperations().empty())) { H << getUnqualified("::Ice::ObjectPrx", scope); } else { + if(base && base->allOperations().empty()) + { + bases.pop_front(); + } + ClassList::const_iterator q = bases.begin(); while(q != bases.end()) { @@ -7877,12 +7882,17 @@ Slice::Gen::Cpp11InterfaceVisitor::visitClassDefStart(const ClassDefPtr& p) writeDocSummary(H, p); H << nl << "class " << _dllExport << name << " : "; H.useCurrentPosAsIndent(); - if(bases.empty() || (base && base->allOperations().empty())) + if(bases.empty() || (base && bases.size() == 1 && base->allOperations().empty())) { H << "public virtual " << getUnqualified("::Ice::Object", scope); } else { + if(base && base->allOperations().empty()) + { + bases.pop_front(); + } + ClassList::const_iterator q = bases.begin(); while(q != bases.end()) { |