From: Duncan C. <dun...@us...> - 2005-03-14 16:55:04
|
Update of /cvsroot/gtk2hs/gtk2hs/gtk/Graphics/UI/Gtk/Gdk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5217/gtk/Graphics/UI/Gtk/Gdk Modified Files: Region.chs.pp Log Message: Segfault bug fix. Clear up confusion between pointer to rectangles and pointer to a pointer to rectangles. Index: Region.chs.pp =================================================================== RCS file: /cvsroot/gtk2hs/gtk2hs/gtk/Graphics/UI/Gtk/Gdk/Region.chs.pp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Region.chs.pp 12 Feb 2005 17:19:22 -0000 1.2 +++ Region.chs.pp 14 Mar 2005 16:54:24 -0000 1.3 @@ -136,19 +136,19 @@ -- | Turn the 'Region' into its rectangles. -- --- * A 'Region' is a set of horizontal bands. Each band --- consists of one or more rectangles of the same height. No rectangles --- in a band touch. +-- A 'Region' is a set of horizontal bands. Each band consists of one or more +-- rectangles of the same height. No rectangles in a band touch. -- regionGetRectangles :: Region -> IO [Rectangle] -regionGetRectangles r = - alloca $ \(aPtr :: Ptr Rectangle) -> +regionGetRectangles region = + alloca $ \(rectPtrPtr :: Ptr (Ptr Rectangle)) -> alloca $ \(iPtr :: Ptr {#type gint#}) -> do - {#call unsafe region_get_rectangles#} r (castPtr aPtr) iPtr + {#call unsafe region_get_rectangles#} region (castPtr rectPtrPtr) iPtr size <- peek iPtr - regs <- peekArray (fromIntegral size) aPtr - {#call unsafe g_free#} (castPtr aPtr) - return regs + rectPtr <- peek rectPtrPtr + rects <- peekArray (fromIntegral size) rectPtr + {#call unsafe g_free#} (castPtr rectPtr) + return rects -- | Test if a 'Region' is empty. -- |