mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-08-20 22:43:48 -07:00
Fix a small space leak in DynamicProjects
Add a couple of strictness annotations to keep ExtensibleState from building up thunks.
This commit is contained in:
@@ -43,8 +43,8 @@ module XMonad.Actions.DynamicProjects
|
|||||||
import Control.Applicative ((<|>))
|
import Control.Applicative ((<|>))
|
||||||
import Control.Monad (when, unless)
|
import Control.Monad (when, unless)
|
||||||
import Data.List (sort, union, stripPrefix)
|
import Data.List (sort, union, stripPrefix)
|
||||||
import Data.Map (Map)
|
import Data.Map.Strict (Map)
|
||||||
import qualified Data.Map as Map
|
import qualified Data.Map.Strict as Map
|
||||||
import Data.Maybe (fromMaybe, isNothing)
|
import Data.Maybe (fromMaybe, isNothing)
|
||||||
import Data.Monoid ((<>))
|
import Data.Monoid ((<>))
|
||||||
import System.Directory (setCurrentDirectory, getHomeDirectory)
|
import System.Directory (setCurrentDirectory, getHomeDirectory)
|
||||||
@@ -125,16 +125,16 @@ type ProjectTable = Map ProjectName Project
|
|||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
-- | Details about a workspace that represents a project.
|
-- | Details about a workspace that represents a project.
|
||||||
data Project = Project
|
data Project = Project
|
||||||
{ projectName :: ProjectName -- ^ Workspace name.
|
{ projectName :: !ProjectName -- ^ Workspace name.
|
||||||
, projectDirectory :: FilePath -- ^ Working directory.
|
, projectDirectory :: !FilePath -- ^ Working directory.
|
||||||
, projectStartHook :: Maybe (X ()) -- ^ Optional start-up hook.
|
, projectStartHook :: !(Maybe (X ())) -- ^ Optional start-up hook.
|
||||||
} deriving Typeable
|
} deriving Typeable
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
-- | Internal project state.
|
-- | Internal project state.
|
||||||
data ProjectState = ProjectState
|
data ProjectState = ProjectState
|
||||||
{ projects :: ProjectTable
|
{ projects :: !ProjectTable
|
||||||
, previousProject :: Maybe WorkspaceId
|
, previousProject :: !(Maybe WorkspaceId)
|
||||||
} deriving Typeable
|
} deriving Typeable
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user