summaryrefslogtreecommitdiff
path: root/cpp/src/Transform/Data.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2003-10-24 04:25:01 +0000
committerMark Spruiell <mes@zeroc.com>2003-10-24 04:25:01 +0000
commitfc55024335a4d4510881316c21a9760c22a7bcea (patch)
tree7f75446796e5053205c563522f1b638c888dfa91 /cpp/src/Transform/Data.cpp
parentminor fix (diff)
downloadice-fc55024335a4d4510881316c21a9760c22a7bcea.tar.bz2
ice-fc55024335a4d4510881316c21a9760c22a7bcea.tar.xz
ice-fc55024335a4d4510881316c21a9760c22a7bcea.zip
bug fix
Diffstat (limited to 'cpp/src/Transform/Data.cpp')
-rw-r--r--cpp/src/Transform/Data.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/cpp/src/Transform/Data.cpp b/cpp/src/Transform/Data.cpp
index 4950909ba3c..db4c9a73b91 100644
--- a/cpp/src/Transform/Data.cpp
+++ b/cpp/src/Transform/Data.cpp
@@ -753,9 +753,20 @@ Transform::Data::checkClasses(const Slice::ClassDeclPtr& dest, const Slice::Clas
{
return checkClasses(dest, s, interceptor);
}
- else if(dest->unit().get() == src->unit().get())
+
+ if(dest->unit().get() != src->unit().get())
+ {
+ Slice::TypeList l = dest->unit()->lookupTypeNoBuiltin(s2, false);
+ if(l.empty())
+ {
+ _errorReporter->error("class " + s2 + " not found in new Slice definitions");
+ }
+ s = Slice::ClassDeclPtr::dynamicCast(l.front());
+ }
+
+ if(s)
{
- Slice::ClassDefPtr def = src->definition();
+ Slice::ClassDefPtr def = s->definition();
if(!def)
{
_errorReporter->error("class " + s2 + " declared but not defined");