diff --git a/collects/framework/prefs.ss b/collects/framework/prefs.ss index 8da7065f..32bced8d 100644 --- a/collects/framework/prefs.ss +++ b/collects/framework/prefs.ss @@ -14,15 +14,11 @@ [(windows) "mred.pre"] [else ".mred.prefs"]))) - (define-struct callbacks-ht (ht)) - (define preferences (make-hash-table)) (define marshall-unmarshall (make-hash-table)) - (define callbacks (make-callbacks-ht (make-hash-table))) + (define callbacks (make-hash-table)) (define defaults (make-hash-table)) - (printf "hash-tables: ~s~n" (list preferences marshall-unmarshall (callbacks-ht-ht callbacks) defaults)) - (define-struct un/marshall (marshall unmarshall)) (define-struct marshalled (data)) (define-struct pref (value)) @@ -63,25 +59,22 @@ (define get-callbacks (lambda (p) - (hash-table-get (callbacks-ht-ht callbacks) + (hash-table-get callbacks p (lambda () null)))) (define add-callback (lambda (p callback) - (printf "added callback (~s) for ~s~n" callback p) - (hash-table-put! (callbacks-ht-ht callbacks) p (append (get-callbacks p) (list callback))) + (hash-table-put! callbacks p (append (get-callbacks p) (list callback))) (lambda () (hash-table-put! - (callbacks-ht-ht callbacks) + callbacks p (let loop ([callbacks (get-callbacks p)]) (cond [(null? callbacks) null] [else (if (eq? (car callbacks) callback) - (begin - (printf "removed callback (~s) for ~s~n" callback p) - (loop (cdr callbacks))) + (loop (cdr callbacks)) (cons (car callbacks) (loop (cdr callbacks))))])))))) (define check-callbacks