diff src/scrollbar-msw.c @ 3482:20773f9b7bc0

[xemacs-hg @ 2006-06-29 16:58:59 by james] Check scrollbar instance data for NULLness before dereferencing. <m31wt77vcf.fsf@jerrypc.cs.usu.edu>
author james
date Thu, 29 Jun 2006 16:59:00 +0000
parents b7f26b2f78bd
children 16112448d484
line wrap: on
line diff
--- a/src/scrollbar-msw.c	Thu Jun 29 14:52:00 2006 +0000
+++ b/src/scrollbar-msw.c	Thu Jun 29 16:59:00 2006 +0000
@@ -90,17 +90,19 @@
 static void
 mswindows_free_scrollbar_instance (struct scrollbar_instance *sb)
 {
-  void *opaque =
-    (void *) qxeGetWindowLong (SCROLLBAR_MSW_HANDLE (sb), GWL_USERDATA);
-  Lisp_Object ptr;
+  if (sb->scrollbar_data)
+    {
+      void *opaque =
+	(void *) qxeGetWindowLong (SCROLLBAR_MSW_HANDLE (sb), GWL_USERDATA);
+      Lisp_Object ptr;
 
-  ptr = VOID_TO_LISP (opaque);
-  assert (OPAQUE_PTRP (ptr));
-  ptr = Fremhash (ptr, Vmswindows_scrollbar_instance_table);
-  assert (!NILP (ptr));
-  DestroyWindow (SCROLLBAR_MSW_HANDLE (sb));
-  if (sb->scrollbar_data)
-    xfree (sb->scrollbar_data, void *);
+      ptr = VOID_TO_LISP (opaque);
+      assert (OPAQUE_PTRP (ptr));
+      ptr = Fremhash (ptr, Vmswindows_scrollbar_instance_table);
+      assert (!NILP (ptr));
+      DestroyWindow (SCROLLBAR_MSW_HANDLE (sb));
+      xfree (sb->scrollbar_data, void *);
+    }
 }
 
 static void