diff options
author | Michi Henning <michi@zeroc.com> | 2007-11-15 12:34:24 +1000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2007-11-15 12:34:24 +1000 |
commit | 38be7d804aa9fd784896b492f20017a5b292ee0d (patch) | |
tree | 5f65f05cc7de1c234f6d0d83f42c232fcc8215e6 /cpp/src/Slice/CsUtil.cpp | |
parent | But 2534. (diff) | |
download | ice-38be7d804aa9fd784896b492f20017a5b292ee0d.tar.bz2 ice-38be7d804aa9fd784896b492f20017a5b292ee0d.tar.xz ice-38be7d804aa9fd784896b492f20017a5b292ee0d.zip |
Fixed bug in TestUtil.py that caused line numbers to be omitted from the stack
trace under Mono when the a test failed.
Ported servant locator exceptions.
Fixed bug that caused the "unknown" member of unknown exception to not be initialized
in some cases, and initialized to the wrong value in other cases.
Added ice_name() to mapping for exceptions--without it, there was no way to get at
the Slice type id of an exception, which was needed to set the "unknown" member
correctly.
Diffstat (limited to 'cpp/src/Slice/CsUtil.cpp')
-rwxr-xr-x | cpp/src/Slice/CsUtil.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/cpp/src/Slice/CsUtil.cpp b/cpp/src/Slice/CsUtil.cpp index 2e392648a50..364f8f3e9aa 100755 --- a/cpp/src/Slice/CsUtil.cpp +++ b/cpp/src/Slice/CsUtil.cpp @@ -1540,6 +1540,17 @@ Slice::CsGenerator::MetaDataVisitor::visitStructEnd(const StructPtr&) void Slice::CsGenerator::MetaDataVisitor::visitOperation(const OperationPtr& p) { + if(p->hasMetaData("UserException")) + { + ClassDefPtr cl = ClassDefPtr::dynamicCast(p->container()); + if(!cl->isLocal()) + { + cout << p->definitionContext()->filename() << ":" << p->line() + << ": warning: metdata directive `UserException' applies only to local operations " + << "but enclosing " << (cl->isInterface() ? "interface" : "class") << "`" << cl->name() + << "' is not local" << endl; + } + } validate(p); } |