Remove default error handler.
authorDavid Thompson <dthompson2@worcester.edu>
Mon, 3 Sep 2018 02:08:34 +0000 (22:08 -0400)
committerDavid Thompson <dthompson2@worcester.edu>
Mon, 3 Sep 2018 02:09:15 +0000 (22:09 -0400)
* chickadee.scm (default-error-handler): Delete.
(call-with-error-handling): Don't catch errors if no handler is
specified.
(run-game): Default 'error' arg to #f.
* chickadee/sdl.scm: (run-game/sdl): Likewise.

chickadee.scm
chickadee/sdl.scm

index 74faa56..f6894b0 100644 (file)
@@ -16,8 +16,7 @@
 ;;; <http://www.gnu.org/licenses/>.
 
 (define-module (chickadee)
-  #:export (default-error-handler
-            run-game
+  #:export (run-game
             abort-game))
 
 \f
 ;;;
 
 (define (call-with-error-handling handler thunk)
-  (let ((stack #f))
-    (catch #t
-      (lambda ()
+  (if handler
+      (let ((stack #f))
+        (catch #t
+          (lambda ()
+            (thunk)
+            #f)
+          (lambda (key . args)
+            (handler stack key args)
+            #t)
+          (lambda (key . args)
+            (set! stack (make-stack #t 3)))))
+      (begin
         (thunk)
-        #f)
-      (lambda (key . args)
-        (handler stack key args)
-        #t)
-      (lambda (key . args)
-        (set! stack (make-stack #t 3))))))
+        #f)))
 
 (define-syntax-rule (with-error-handling handler body ...)
   (call-with-error-handling handler (lambda () body ...)))
@@ -53,8 +56,7 @@
 (define (abort-game)
   (abort-to-prompt game-loop-prompt-tag #f))
 
-(define* (run-game #:key update render time
-                   (error default-error-handler)
+(define* (run-game #:key update render time error
                    (update-hz 60))
   (let ((timestep (round (/ 1000 update-hz))))
     (call-with-prompt game-loop-prompt-tag
index b00e30e..948b351 100644 (file)
@@ -85,7 +85,7 @@
                        (controller-press (const #t))
                        (controller-release (const #t))
                        (controller-move (const #t))
-                       (error default-error-handler))
+                       error)
   (sdl-init)
   (false-if-exception (mixer-init))
   (open-audio)