diff options
author | Mark Spruiell <mes@zeroc.com> | 2012-05-10 16:45:22 -0700 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2012-05-10 16:45:22 -0700 |
commit | 485691562a75595eda00af35f5235f6fc22fa36c (patch) | |
tree | 4eaf48ac7512239a47d97e533cd3da1a75084f29 /cpp/src/slice2cpp | |
parent | * C++ implementation for compact/sliced formats (diff) | |
download | ice-485691562a75595eda00af35f5235f6fc22fa36c.tar.bz2 ice-485691562a75595eda00af35f5235f6fc22fa36c.tar.xz ice-485691562a75595eda00af35f5235f6fc22fa36c.zip |
C++ bug fixes; adding more Python tests
Diffstat (limited to 'cpp/src/slice2cpp')
-rw-r--r-- | cpp/src/slice2cpp/Gen.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index 6062804d5db..ecbc5b215be 100644 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -635,8 +635,8 @@ Slice::Gen::TypesVisitor::visitExceptionStart(const ExceptionPtr& p) ExceptionPtr base = p->base(); DataMemberList dataMembers = p->dataMembers(); DataMemberList allDataMembers = p->allDataMembers(); - bool preserved = p->hasMetaData("preserve-slice"); - bool basePreserved = base ? base->hasMetaData("preserve-slice") : false; + bool basePreserved = p->inheritsMetaData("preserve-slice"); + bool preserved = basePreserved || p->hasMetaData("preserve-slice"); bool hasDefaultValues = p->hasDefaultValues(); DataMemberList::const_iterator q; @@ -881,8 +881,8 @@ Slice::Gen::TypesVisitor::visitExceptionEnd(const ExceptionPtr& p) if(!p->isLocal()) { ExceptionPtr base = p->base(); - bool preserved = p->hasMetaData("preserve-slice"); - bool basePreserved = base ? base->hasMetaData("preserve-slice") : false; + bool basePreserved = p->inheritsMetaData("preserve-slice"); + bool preserved = basePreserved || p->hasMetaData("preserve-slice"); H << sp << nl << "virtual void __write(::IceInternal::BasicStream*) const;"; H << nl << "virtual void __writeImpl(::IceInternal::BasicStream*) const;"; @@ -3827,8 +3827,8 @@ Slice::Gen::ObjectVisitor::visitClassDefStart(const ClassDefPtr& p) } DataMemberList dataMembers = p->dataMembers(); DataMemberList allDataMembers = p->allDataMembers(); - bool preserved = p->hasMetaData("preserve-slice"); - bool basePreserved = base ? base->hasMetaData("preserve-slice") : false; + bool basePreserved = p->inheritsMetaData("preserve-slice"); + bool preserved = basePreserved || p->hasMetaData("preserve-slice"); H << sp << nl << "class " << _dllExport << name << " : "; H.useCurrentPosAsIndent(); @@ -4165,8 +4165,8 @@ Slice::Gen::ObjectVisitor::visitClassDefEnd(const ClassDefPtr& p) { base = bases.front(); } - bool preserved = p->hasMetaData("preserve-slice"); - bool basePreserved = base ? base->hasMetaData("preserve-slice") : false; + bool basePreserved = p->inheritsMetaData("preserve-slice"); + bool preserved = basePreserved || p->hasMetaData("preserve-slice"); if(!p->isLocal()) { @@ -5018,8 +5018,8 @@ Slice::Gen::ObjectVisitor::emitGCFunctions(const ClassDefPtr& p) // bool canBeCyclic = p->canBeCyclic(); bool override = canBeCyclic && (!base || !base->canBeCyclic()); - bool preserved = p->hasMetaData("preserve-slice"); - bool basePreserved = base ? base->hasMetaData("preserve-slice") : false; + bool basePreserved = p->inheritsMetaData("preserve-slice"); + bool preserved = basePreserved || p->hasMetaData("preserve-slice"); // // We also override __addObject and __usesGC if this is the initial preserved |