Dne 22.11.2010 15:06, Herbert Duerr napsal(a):
Hi,

I found the immediate cause of this crash. It happens in
ImplFontCharMap::DeReference()
in vcl/source/gdi/metric.cxx.

The reference counter goes to -1 which means that the object is freed with 
delete operator twice. And number of calls to AddReference and DeReference does 
not match. Debugging why this happens would require some more time.

My CWS osxct01 has a fix already. I'll transplant it into a faster CWS.

I have just found out that it was your code :-) I could save me an hour of work if I read your mail immediately. Let us see if my fix is the same as yours:

diff -r 6252c23253d5 vcl/aqua/source/gdi/salgdi.cxx
--- a/vcl/aqua/source/gdi/salgdi.cxx    Mon Nov 08 10:36:41 2010 +0100
+++ b/vcl/aqua/source/gdi/salgdi.cxx    Mon Nov 22 16:08:54 2010 +0100
@@ -2369,8 +2369,6 @@
                 if( nGlyph > 0 )
                     rUnicodeEnc[ nUcsChar ] = nGlyph;
             }
-
-            pMap->DeReference(); // TODO: add and use RAII object instead
         }

                ::CloseTTFont( pSftFont );


Regards
--
Pavel Laštovička

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to