summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2003-12-12 03:41:10 +0000
committerMark Spruiell <mes@zeroc.com>2003-12-12 03:41:10 +0000
commit92f43c6dc09a260bc0c26388a2e032e8c69cb18d (patch)
treeb073b13d258175ed03df9778e4f8ac5f779da68b /cpp/src
parenttemporary fix for type mismatch error (diff)
downloadice-92f43c6dc09a260bc0c26388a2e032e8c69cb18d.tar.bz2
ice-92f43c6dc09a260bc0c26388a2e032e8c69cb18d.tar.xz
ice-92f43c6dc09a260bc0c26388a2e032e8c69cb18d.zip
another temporary fix
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Transform/Data.cpp12
-rw-r--r--cpp/src/Transform/Data.h2
2 files changed, 7 insertions, 7 deletions
diff --git a/cpp/src/Transform/Data.cpp b/cpp/src/Transform/Data.cpp
index 83a3cbbce02..cb0601c52aa 100644
--- a/cpp/src/Transform/Data.cpp
+++ b/cpp/src/Transform/Data.cpp
@@ -2517,7 +2517,7 @@ Transform::EnumData::transform(const DataPtr& data, DataInterceptor& interceptor
{
if(interceptor.preTransform(this, data))
{
- transformI(data, interceptor);
+ transformI(data, interceptor, false);
}
interceptor.postTransform(this, data);
}
@@ -2545,7 +2545,7 @@ Transform::EnumData::set(const DataPtr& value, DataInterceptor& interceptor, boo
}
else
{
- transformI(value, interceptor);
+ transformI(value, interceptor, true);
}
}
@@ -2701,7 +2701,7 @@ Transform::EnumData::printI(IceUtil::Output& out, ObjectDataHistory&) const
}
void
-Transform::EnumData::transformI(const DataPtr& data, DataInterceptor& interceptor)
+Transform::EnumData::transformI(const DataPtr& data, DataInterceptor& interceptor, bool checkTypes)
{
EnumDataPtr e = EnumDataPtr::dynamicCast(data);
StringDataPtr s = StringDataPtr::dynamicCast(data);
@@ -2711,7 +2711,7 @@ Transform::EnumData::transformI(const DataPtr& data, DataInterceptor& intercepto
// Get the enumerator's name and attempt to find it in our type.
//
string name = e->toString();
- if(!setValueAsString(name))
+ if(!setValueAsString(name) && checkTypes)
{
_errorReporter->conversionError(name, _type);
}
@@ -2719,12 +2719,12 @@ Transform::EnumData::transformI(const DataPtr& data, DataInterceptor& intercepto
else if(s)
{
string v = s->stringValue();
- if(!setValueAsString(v))
+ if(!setValueAsString(v) && checkTypes)
{
_errorReporter->conversionError(v, _type);
}
}
- else
+ else if(checkTypes)
{
_errorReporter->typeMismatchError(_type, data->getType(), false);
}
diff --git a/cpp/src/Transform/Data.h b/cpp/src/Transform/Data.h
index fba4a753ddb..341c5c8f590 100644
--- a/cpp/src/Transform/Data.h
+++ b/cpp/src/Transform/Data.h
@@ -489,7 +489,7 @@ public:
private:
- void transformI(const DataPtr&, DataInterceptor&);
+ void transformI(const DataPtr&, DataInterceptor&, bool);
Slice::EnumPtr _type;
Ice::Int _value;