OLEAUT32: Fix regression in OLEFontImpl_Clone

Alex Villací­s Lasso a_villacis at palosanto.com
Mon Feb 20 09:26:51 CST 2006

Lately, all VB6 applications crash on exit. This weekend, I found the 
cause. Apparently the VB6 runtime creates a standard OLEFont object, and 
then calls IFont::clone() on it to get a second object. At exit, the VB6 
runtime disposes of both objects. However, the recent OLEFont changes 
introduced a bug in which the cloning fails to clone the connection 
points associated with the object. Therefore the dispose of one of the 
objects frees the connection points, and the dispose of the second 
object crashes on attempt to dispose an already-freed object.


* Create new empty connection points on clone of OLEFont

Alex Villacís Lasso
-------------- next part --------------
A non-text attachment was scrubbed...
Name: wine-oleaut32-olefont-clone_connpoints.patch
Type: text/x-patch
Size: 893 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20060220/34bced87/wine-oleaut32-olefont-clone_connpoints.patch

More information about the wine-patches mailing list