From fb7948d65e69ec7ad3bd8e65612b6ca8e30bbea8 Mon Sep 17 00:00:00 2001
From: Roderick Colenbrander <thunderbird2k@gmail.com>
Date: Tue, 6 Oct 2009 20:41:33 +0200
Subject: [PATCH] Move allocation of the XRENDERINFO structure to a separate function.

---
 dlls/winex11.drv/xrender.c |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/dlls/winex11.drv/xrender.c b/dlls/winex11.drv/xrender.c
index 076b6d4..bc6bfa5 100644
--- a/dlls/winex11.drv/xrender.c
+++ b/dlls/winex11.drv/xrender.c
@@ -207,6 +207,19 @@ static CRITICAL_SECTION xrender_cs = { &critsect_debug, -1, 0, 0, 0, 0 };
 #define NATIVE_BYTE_ORDER LSBFirst
 #endif
 
+static XRENDERINFO alloc_xrenderinfo()
+{
+    XRENDERINFO xrender = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(struct tagXRENDERINFO));
+
+    if(!xrender)
+    {
+        ERR("Unable to allocate XRENDERINFO!\n");
+        return NULL;
+    }
+    xrender->cache_index = -1;
+    return xrender;
+}
+
 static BOOL get_xrender_template(const WineXRenderFormatTemplate *fmt, XRenderPictFormat *templ, unsigned long *mask)
 {
     templ->id = 0;
@@ -807,11 +820,8 @@ BOOL X11DRV_XRender_SelectFont(X11DRV_PDEVICE *physDev, HFONT hfont)
     lfsz_calc_hash(&lfsz);
 
     EnterCriticalSection(&xrender_cs);
-    if(!physDev->xrender) {
-        physDev->xrender = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
-				     sizeof(*physDev->xrender));
-	physDev->xrender->cache_index = -1;
-    }
+    if(!physDev->xrender)
+        physDev->xrender = alloc_xrenderinfo();
     else if(physDev->xrender->cache_index != -1)
         dec_ref_cache(physDev->xrender->cache_index);
     physDev->xrender->cache_index = GetCacheEntry(physDev, &lfsz);
-- 
1.6.0.4

