[omniORB] Incorrect behaviour handling exceptions in VC++ 7.1

Duncan Grisby duncan at grisby.org
Tue Feb 10 17:04:42 GMT 2009


On Tuesday 3 February, Michael Kilburn wrote:

> I have discovered a fix in recent version of omniORB that is described as:
> 
> Incorrect behaviour handling exceptions on VC++ 7.1  (bug number 2)
> 
> Where can I find more detailed info on this, like:
> - what exactly is wrong with VC7.1?
> - which code change was made to workaround the problem?

The bug was reported to me directly, so there's no public report of it,
I'm afraid.

The problem is that VC++ 7.1 generates incorrect code for the code that
invokes operations. The old version of the code used continue within an
exception handler. That caused VC++ to generate invalid code so that if
an exception occurred, the runtime state was corrupted. The modified
version of the code uses a flag to represent the same condition, and
therefore does not trigger the VC++ bug. omniORB's code was correct --
the bug is in VC++.

If you want to see the details of the change, it's in CVS in the file
src/lib/omniORB/orbcore/omniObjRef.cc, between revisions 1.4.2.5 and
1.4.2.6.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --



More information about the omniORB-list mailing list