Mercurial > hg > xemacs-beta
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