]> gitweb.factorcode.org Git - factor.git/commitdiff
memory usage improvement
authorSlava Pestov <slava@factorcode.org>
Thu, 14 Jul 2005 01:17:47 +0000 (01:17 +0000)
committerSlava Pestov <slava@factorcode.org>
Thu, 14 Jul 2005 01:17:47 +0000 (01:17 +0000)
library/ui/gestures.factor
library/ui/paint.factor

index ba791046e5565b9f4ef1bee30533cbbe5417d99c..5912756aca5731cf6a82adc40bc1158f2271884a 100644 (file)
@@ -5,17 +5,16 @@ USING: alien generic hashtables kernel lists math matrices sdl
 sequences ;
 
 : action ( gadget gesture -- quot )
-    swap gadget-gestures hash ;
+    swap gadget-gestures ?hash ;
 
 : set-action ( gadget quot gesture -- )
-    rot gadget-gestures set-hash ;
+    pick gadget-gestures ?set-hash swap set-gadget-gestures ;
 
 : add-actions ( alist gadget -- )
     swap [ unswons set-action ] each-with ;
 
 : handle-gesture* ( gesture gadget -- ? )
-    tuck gadget-gestures hash* dup
-    [ cdr call f ] [ 2drop t ] ifte ;
+    tuck gadget-gestures ?hash dup [ call f ] [ 2drop t ] ifte ;
 
 : handle-gesture ( gesture gadget -- ? )
     #! If a gadget's handle-gesture* generic returns t, the
index 03d4b813d519470ad2ea5c2f141a382748d5391d..c2404435b0bdb3c2772e49d4cfe1f2b7060b7520 100644 (file)
@@ -39,19 +39,22 @@ GENERIC: draw-gadget* ( gadget -- )
 
 M: gadget draw-gadget* ( gadget -- ) drop ;
 
+: paint-prop* ( gadget key -- value )
+    swap gadget-paint ?hash ;
+
 : paint-prop ( gadget key -- value )
     over [
-        dup pick gadget-paint hash* dup [
-            2nip cdr
+        2dup paint-prop* dup [
+            2nip
         ] [
             drop >r gadget-parent r> paint-prop
-        ] ?ifte
+        ] ifte
     ] [
         2drop f
     ] ifte ;
 
 : set-paint-prop ( gadget value key -- )
-    rot gadget-paint set-hash ;
+    pick gadget-paint ?set-hash swap set-gadget-paint ;
 
 : fg ( gadget -- color )
     dup reverse-video paint-prop