If `fasload' fails to load debugging information for some reason,
authorChris Hanson <org/chris-hanson/cph>
Tue, 21 Nov 1989 00:00:31 +0000 (00:00 +0000)
committerChris Hanson <org/chris-hanson/cph>
Tue, 21 Nov 1989 00:00:31 +0000 (00:00 +0000)
recover and pretend that the debugging info doesn't exist.

v7/src/runtime/infutl.scm
v8/src/runtime/infutl.scm

index 387c7692772b140c51548348166b2ee1c2a8df16..0ab0a2b499c712c001d2d11665892283ffd4d6ad 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/infutl.scm,v 1.14 1989/10/26 06:46:23 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/infutl.scm,v 1.15 1989/11/21 00:00:31 cph Exp $
 
 Copyright (c) 1988, 1989 Massachusetts Institute of Technology
 
@@ -55,8 +55,7 @@ MIT in each case. |#
        (car old-info)
        (and demand-load?
             (let ((dbg-info (read-debugging-info old-info)))
-              (if dbg-info
-                  (memoize-debugging-info! block dbg-info))
+              (if dbg-info (memoize-debugging-info! block dbg-info))
               dbg-info)))))
 
 (define (discard-debugging-info!)
@@ -89,7 +88,12 @@ MIT in each case. |#
 
 (define (read-binf-file filename)
   (and (file-exists? filename)
-       (fasload filename true)))
+       (call-with-current-continuation
+       (lambda (k)
+         (bind-condition-handler (list error-type:fasload)
+             (lambda (condition) condition (k false))
+           (lambda () (fasload filename true)))))))
+
 (define (memoize-debugging-info! block dbg-info)
   (without-interrupts
    (lambda ()
index f743772f33dd57d7f53dcf3a32c90eef09b86a0e..a98a5d1e70dacee878d567735b80bfb75c6718a6 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/infutl.scm,v 1.14 1989/10/26 06:46:23 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/infutl.scm,v 1.15 1989/11/21 00:00:31 cph Exp $
 
 Copyright (c) 1988, 1989 Massachusetts Institute of Technology
 
@@ -55,8 +55,7 @@ MIT in each case. |#
        (car old-info)
        (and demand-load?
             (let ((dbg-info (read-debugging-info old-info)))
-              (if dbg-info
-                  (memoize-debugging-info! block dbg-info))
+              (if dbg-info (memoize-debugging-info! block dbg-info))
               dbg-info)))))
 
 (define (discard-debugging-info!)
@@ -89,7 +88,12 @@ MIT in each case. |#
 
 (define (read-binf-file filename)
   (and (file-exists? filename)
-       (fasload filename true)))
+       (call-with-current-continuation
+       (lambda (k)
+         (bind-condition-handler (list error-type:fasload)
+             (lambda (condition) condition (k false))
+           (lambda () (fasload filename true)))))))
+
 (define (memoize-debugging-info! block dbg-info)
   (without-interrupts
    (lambda ()