From: Duncan C. <dun...@us...> - 2005-02-27 19:42:15
|
Update of /cvsroot/gtk2hs/gtk2hs/gtk/Graphics/UI/Gtk/TreeList In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32363/gtk/Graphics/UI/Gtk/TreeList Modified Files: TreeSelection.chs.pp TreeView.chs.pp Log Message: GObject.chs.pp: change mkDestructor into mkFunPtrDestructor which is a tad more abstract (hiding the use of IORefs). General.chs: change use of mkDestructor to mkFunPtrDestructor and no longer export mkDestructor. EntryCompletion.chs.pp, TreeSelection.chs.pp, TreeView.chs.pp: change use of mkDestructor to mkFunPtrDestructor. Signal.chs-boot2: Following the same pattern for GClosureNotify as for GDestroyNotify above define a local copy of mkFunPtrDestructor for use in signal connection functions. HookGenerator.hs: change use of mkDestructor to mkFunPtrDestructor following the same pattern as before. This reduces code duplication a bit (saves about 350 lines of code). Index: TreeSelection.chs.pp =================================================================== RCS file: /cvsroot/gtk2hs/gtk2hs/gtk/Graphics/UI/Gtk/TreeList/TreeSelection.chs.pp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- TreeSelection.chs.pp 25 Feb 2005 01:11:37 -0000 1.2 +++ TreeSelection.chs.pp 27 Feb 2005 19:42:06 -0000 1.3 @@ -97,17 +97,16 @@ ) where import Monad (liftM) -import Data.IORef (newIORef, readIORef, writeIORef) import System.Glib.FFI import System.Glib.GList (GList, fromGList, toGList) +import System.Glib.GObject (mkFunPtrDestructor) import Graphics.UI.Gtk.Abstract.Object (makeNewObject) {#import Graphics.UI.Gtk.Types#} {#import Graphics.UI.Gtk.Signals#} import Graphics.UI.Gtk.General.Enums (SelectionMode(..)) {#import Graphics.UI.Gtk.TreeList.TreeModel#} import Graphics.UI.Gtk.General.Structs (treeIterSize) -import Graphics.UI.Gtk.General.General (mkDestructor) {# context lib="gtk" prefix="gtk" #} @@ -140,12 +139,7 @@ path <- nativeTreePathGetIndices (NativeTreePath (castPtr tp)) liftM fromBool $ fun path ) - dRef <- newIORef nullFunPtr - dPtr <- mkDestructor $ do - dPtr <- readIORef dRef - freeHaskellFunPtr dPtr - freeHaskellFunPtr fPtr - writeIORef dRef dPtr + dPtr <- mkFunPtrDestructor fPtr {#call tree_selection_set_select_function#} (toTreeSelection ts) fPtr nullPtr dPtr Index: TreeView.chs.pp =================================================================== RCS file: /cvsroot/gtk2hs/gtk2hs/gtk/Graphics/UI/Gtk/TreeList/TreeView.chs.pp,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- TreeView.chs.pp 25 Feb 2005 22:53:42 -0000 1.6 +++ TreeView.chs.pp 27 Feb 2005 19:42:06 -0000 1.7 @@ -166,15 +166,13 @@ import Monad (liftM, mapM) import Maybe (fromMaybe) -import Data.IORef (newIORef, readIORef, writeIORef) import System.Glib.FFI import System.Glib.UTFString -import Graphics.UI.Gtk.General.General (mkDestructor) +import System.Glib.GList (GList, fromGList) +import System.Glib.GObject (makeNewGObject, mkFunPtrDestructor) import Graphics.UI.Gtk.General.Structs (Point, Rectangle) -import System.Glib.GObject (makeNewGObject) import Graphics.UI.Gtk.Abstract.Object (makeNewObject) -import System.Glib.GList (GList, fromGList) {#import Graphics.UI.Gtk.Types#} {#import Graphics.UI.Gtk.Signals#} {#import Graphics.UI.Gtk.TreeList.TreeModel#} @@ -811,12 +809,7 @@ key <- peekUTFString keyPtr iter <- createTreeIter itPtr liftM fromBool $ pred (fromIntegral col) key iter) - dRef <- newIORef nullFunPtr - dPtr <- mkDestructor $ do - dPtr <- readIORef dRef - freeHaskellFunPtr dPtr - freeHaskellFunPtr fPtr - writeIORef dRef dPtr + dPtr <- mkFunPtrDestructor fPtr {#call tree_view_set_search_equal_func#} (toTreeView tv) fPtr nullPtr dPtr |