Maarten Maathuis | 1 Mar 2009 01:36
Picon

[PATCH 4/6] exa: fix unwrapping of ModifyPixmapHeader upon CloseScreen.

- Cleanup wrapping too.
---
 exa/exa.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/exa/exa.c b/exa/exa.c
index 7501b65..81c874b 100644
--- a/exa/exa.c
+++ b/exa/exa.c
 <at>  <at>  -933,6 +933,8  <at>  <at>  exaCloseScreen(int i, ScreenPtr pScreen)
 	unwrap(pExaScr, pScreen, CreatePixmap);
     if (pExaScr->SavedDestroyPixmap)
 	unwrap(pExaScr, pScreen, DestroyPixmap);
+    if (pExaScr->SavedModifyPixmapHeader)
+	unwrap(pExaScr, pScreen, ModifyPixmapHeader);
     unwrap(pExaScr, pScreen, CopyWindow);
     unwrap(pExaScr, pScreen, ChangeWindowAttributes);
     unwrap(pExaScr, pScreen, BitmapToRegion);
 <at>  <at>  -1059,7 +1061,6  <at>  <at>  exaDriverInit (ScreenPtr		pScreen,
 #endif

     pExaScr = xcalloc (sizeof (ExaScreenPrivRec), 1);
-
     if (!pExaScr) {
         LogMessage(X_WARNING, "EXA(%d): Failed to allocate screen private\n",
 		   pScreen->myNum);
 <at>  <at>  -1124,8 +1125,7  <at>  <at>  exaDriverInit (ScreenPtr		pScreen,
 	wrap(pExaScr, pScreen, CreatePixmap, exaCreatePixmap);
 	wrap(pExaScr, pScreen, DestroyPixmap, exaDestroyPixmap);

-	pExaScr->SavedModifyPixmapHeader = pScreen->ModifyPixmapHeader;
-	pScreen->ModifyPixmapHeader = exaModifyPixmapHeader;
+	wrap(pExaScr, pScreen, ModifyPixmapHeader, exaModifyPixmapHeader);
 	if (!pExaScr->info->CreatePixmap) {
 	    LogMessage(X_INFO, "EXA(%d): Offscreen pixmap area of %lu bytes\n",
 		       pScreen->myNum,
--

-- 
1.6.1.3

Gmane