On 10/28/2012 04:59, m...@mtew.isa-geek.net wrote:
From: Max TenEyck Woodbury <m...@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?