From ffe772b6e9dcac3ea88e7564f240a2c92e2d9246 Mon Sep 17 00:00:00 2001 From: Marc Laukien Date: Mon, 16 Jul 2001 12:20:39 +0000 Subject: more exception test stuff --- cpp/src/slice2cpp/Gen.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'cpp/src/slice2cpp/Gen.cpp') diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index c6a14f2f392..39039124f68 100644 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -1514,7 +1514,15 @@ Slice::Gen::ObjectVisitor::visitOperation(const Operation_ptr& p) C << nl << "catch(" << exceptionTypeToString(*r) << " __ex)"; C << sb; C << nl << "__os -> write(" << cnt++ << ");"; - writeMarshalUnmarshalCode(C, *r, "__ex", true); + if(Proxy_ptr::dynamicCast(*r)) + { + string s = "static_cast< "; + s += typeToString(*r); + s += ">(__ex)"; + writeMarshalUnmarshalCode(C, *r, s, true); + } + else + writeMarshalUnmarshalCode(C, *r, "__ex", true); C << nl << "return ::__Ice::DispatchException;"; C << eb; } -- cgit v1.2.3