summaryrefslogtreecommitdiff
path: root/py/modules/IcePy/Operation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'py/modules/IcePy/Operation.cpp')
-rw-r--r--py/modules/IcePy/Operation.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/py/modules/IcePy/Operation.cpp b/py/modules/IcePy/Operation.cpp
index b6ec94283b1..19ae001c952 100644
--- a/py/modules/IcePy/Operation.cpp
+++ b/py/modules/IcePy/Operation.cpp
@@ -1799,10 +1799,7 @@ IcePy::TypedUpcall::exception(PyException& ex)
// However, we have no way to pass this exception to the interpreter,
// so we act on it directly.
//
- if(PyObject_IsInstance(ex.ex.get(), PyExc_SystemExit))
- {
- handleSystemExit(ex.ex.get()); // Does not return.
- }
+ ex.checkSystemExit();
PyObject* userExceptionType = lookupType("Ice.UserException");
@@ -1822,6 +1819,9 @@ IcePy::TypedUpcall::exception(PyException& ex)
else
{
Ice::OutputStreamPtr os = Ice::createOutputStream(_communicator);
+
+ os->writeBool(info->usesClasses);
+
ObjectMap objectMap;
info->marshal(ex.ex.get(), os, &objectMap);
@@ -2058,10 +2058,7 @@ IcePy::BlobjectUpcall::exception(PyException& ex)
// However, we have no way to pass this exception to the interpreter,
// so we act on it directly.
//
- if(PyObject_IsInstance(ex.ex.get(), PyExc_SystemExit))
- {
- handleSystemExit(ex.ex.get()); // Does not return.
- }
+ ex.checkSystemExit();
ex.raise();
}