Re: [Libreoffice] Multiple issues with cppuhelper/source/exc_thrower.cxx

2011-05-27 Thread Caolán McNamara
On Fri, 2011-05-27 at 12:34 +0200, Bjoern Michaelsen wrote: > Hi Caolán, > > On Fri, 27 May 2011 11:02:28 +0100 > Caolán McNamara wrote: > > > So the original code doesn't do what it apparently thought it was > > doing of using a double-check lock, but ends up using a unconditional > > mutex lo

Re: [Libreoffice] Multiple issues with cppuhelper/source/exc_thrower.cxx

2011-05-27 Thread Bjoern Michaelsen
On Fri, 27 May 2011 12:34:01 +0200 Bjoern Michaelsen wrote: > Unless a compiler does not keep static variables threadsafe and the > ctor has side effects (I have not looked at that yet). Ah, forget that. The mutex indeed takes care of that. Best, Bjoern -- https://launchpad.net/~bjoern-micha

Re: [Libreoffice] Multiple issues with cppuhelper/source/exc_thrower.cxx

2011-05-27 Thread Bjoern Michaelsen
Hi Caolán, On Fri, 27 May 2011 11:02:28 +0100 Caolán McNamara wrote: > Well, if we look at the original code, given that s_pThrower is just a > normal local variable set to 0, then we *always* enter the first if, > and the first if always takes a MutexGuard from the global mutex, so > we always

Re: [Libreoffice] Multiple issues with cppuhelper/source/exc_thrower.cxx

2011-05-27 Thread Caolán McNamara
On Fri, 2011-05-27 at 10:53 +0200, Bjoern Michaelsen wrote: > Hi Caolán, all, > > Digging deeper, I found ExceptionThrower::get() on the 3.4 branch to: > a) not using a static variable for s_pThrower thus making the if always >eval to true. heh! > b) not even double-checking s_pThrower afte

[Libreoffice] Multiple issues with cppuhelper/source/exc_thrower.cxx

2011-05-27 Thread Bjoern Michaelsen
Hi Caolán, all, when looking into https://bugs.launchpad.net/ubuntu/+source/libreoffice/+bug/745836 which has by now collected some 20 duplicates, I have more open questions than answers. Some disassembling lead to the real point of failure being (in 3.3.2/3.4 on amd64): 239 OSL_ASSERT( x