-
Key: CPP13-22
-
Legacy Issue Number: 3150
-
Status: open
-
Source: Triodia Technologies Pty Ltd ( Michi Henning)
-
Summary:
I think we have a defect/omission in the C++ mapping with respect
to exception safety. Consider a servant class with a constructor:class FooImpl : public virtual POA_Foo
{ public: FooImpl(); // ... };
Consider what happens if FooImpl() throws an exception for some reason.
By the time FooImpl() runs, the base class constructor POA_Foo() has run
already. So, when the compiler deals with the exception, it invokes
~POA_Foo().The problem arises because, in our implementation at least, ~POA_Foo()
checks if the reference count is zero and asserts if not. -
Reported: CPP 1.0 — Mon, 20 Dec 1999 05:00 GMT
-
Updated: Fri, 6 Mar 2015 20:57 GMT