Re: [PATCH] Remove potential reference count races.
On 10/28/2012 04:59, max(a)mtew.isa-geek.net wrote:
From: Max TenEyck Woodbury <max(a)mtew.isa-geek.net>
--- 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?
participants (1)
-
Nikolay Sivov