On 10/28/2012 04:59, [email protected] wrote:
From: Max TenEyck Woodbury <[email protected]>--- dlls/gdi32/freetype.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index 6af977c..3379c6e 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -3820,7 +3820,7 @@ static struct font_mapping *map_font_file( const char *name ) { if (mapping->dev == st.st_dev && mapping->ino == st.st_ino) { - mapping->refcount++; + InterlockedIncrement(&mapping->refcount); close( fd ); return mapping; } @@ -3850,7 +3850,7 @@ error:static void unmap_font_file( struct font_mapping *mapping ){ - if (!--mapping->refcount) + if (!InterlockedDecrement(&mapping->refcount)) { list_remove( &mapping->entry ); munmap( mapping->data, mapping->size );
How does it help exactly and what is the problem with this code?
