From 5d1d9d9ae39fab2ee2ac085f9776f82768828dc8 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Sun, 1 Aug 2010 11:41:58 -0700 Subject: [PATCH] XQuartz: xpr: Bail on errors during unlock and destroy Signed-off-by: Jeremy Huddleston --- hw/xquartz/xpr/xprFrame.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/hw/xquartz/xpr/xprFrame.c b/hw/xquartz/xpr/xprFrame.c index 9f5d8a637..42f06efee 100644 --- a/hw/xquartz/xpr/xprFrame.c +++ b/hw/xquartz/xpr/xprFrame.c @@ -206,13 +206,16 @@ xprCreateFrame(RootlessWindowPtr pFrame, ScreenPtr pScreen, static void xprDestroyFrame(RootlessFrameID wid) { + xp_error err; TA_SERVER(); pthread_mutex_lock(&window_hash_mutex); x_hash_table_remove(window_hash, wid); pthread_mutex_unlock(&window_hash_mutex); - xp_destroy_window(x_cvt_vptr_to_uint(wid)); + err = xp_destroy_window(x_cvt_vptr_to_uint(wid)); + if (err != Success) + FatalError("Could not destroy window %i.", (int)x_cvt_vptr_to_uint(wid)); } @@ -366,9 +369,12 @@ xprStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow) static void xprStopDrawing(RootlessFrameID wid, Bool flush) { + xp_error err; TA_SERVER(); - xp_unlock_window(x_cvt_vptr_to_uint(wid), flush); + err = xp_unlock_window(x_cvt_vptr_to_uint(wid), flush); + if(err != Success) + FatalError("Could not unlock window %i after drawing.", (int)x_cvt_vptr_to_uint(wid)); }