diff options
author | Mark Spruiell <mes@zeroc.com> | 2012-11-09 16:22:47 -0800 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2012-11-09 16:22:47 -0800 |
commit | 493caea19fd83663eb03b4eeaf7714f99ac07b97 (patch) | |
tree | 39f8b7dc983394288cb25961a0907ebe0b0f5847 /cpp/src/Slice/Parser.cpp | |
parent | ICE-4914 - Update Database/Oracle demos (diff) | |
download | ice-493caea19fd83663eb03b4eeaf7714f99ac07b97.tar.bz2 ice-493caea19fd83663eb03b4eeaf7714f99ac07b97.tar.xz ice-493caea19fd83663eb03b4eeaf7714f99ac07b97.zip |
ICE-4930 - fixes for scripting languages
Diffstat (limited to 'cpp/src/Slice/Parser.cpp')
-rw-r--r-- | cpp/src/Slice/Parser.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp index a0855fc7771..673a9a0d222 100644 --- a/cpp/src/Slice/Parser.cpp +++ b/cpp/src/Slice/Parser.cpp @@ -3969,19 +3969,19 @@ Slice::Exception::uses(const ContainedPtr&) const } bool -Slice::Exception::usesClasses() const +Slice::Exception::usesClasses(bool includeOptional) const { DataMemberList dml = dataMembers(); for(DataMemberList::const_iterator i = dml.begin(); i != dml.end(); ++i) { - if((*i)->type()->usesClasses()) + if((*i)->type()->usesClasses() && (includeOptional || !(*i)->optional())) { return true; } } if(_base) { - return _base->usesClasses(); + return _base->usesClasses(includeOptional); } return false; } @@ -5131,12 +5131,12 @@ Slice::Operation::uses(const ContainedPtr& contained) const } bool -Slice::Operation::sendsClasses() const +Slice::Operation::sendsClasses(bool includeOptional) const { ParamDeclList pdl = parameters(); for(ParamDeclList::const_iterator i = pdl.begin(); i != pdl.end(); ++i) { - if(!(*i)->isOutParam() && (*i)->type()->usesClasses()) + if(!(*i)->isOutParam() && (*i)->type()->usesClasses() && (includeOptional || !(*i)->optional())) { return true; } @@ -5145,17 +5145,17 @@ Slice::Operation::sendsClasses() const } bool -Slice::Operation::returnsClasses() const +Slice::Operation::returnsClasses(bool includeOptional) const { TypePtr t = returnType(); - if(t && t->usesClasses()) + if(t && t->usesClasses() && (includeOptional || !_returnIsOptional)) { return true; } ParamDeclList pdl = parameters(); for(ParamDeclList::const_iterator i = pdl.begin(); i != pdl.end(); ++i) { - if((*i)->isOutParam() && (*i)->type()->usesClasses()) + if((*i)->isOutParam() && (*i)->type()->usesClasses() && (includeOptional || !(*i)->optional())) { return true; } |