* Better dealing with errors in eval-string and read-from-string/-all
* Made them work with byte strings too * Added tests to the above svn: r5081 original commit: a772fa8c8407386a2279c4d6ea2d6294de7c83c0
This commit is contained in:
parent
6032d24e71
commit
d17918a616
|
@ -139,20 +139,18 @@
|
||||||
;;
|
;;
|
||||||
;; snip-class
|
;; snip-class
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(define cache-image-snip-class%
|
(define cache-image-snip-class%
|
||||||
(class snip-class%
|
(class snip-class%
|
||||||
(define/override (read f)
|
(define/override (read f)
|
||||||
(let ([data (read-from-string (bytes->string/utf-8 (send f get-bytes))
|
(let ([data (read-from-string (send f get-bytes) (lambda () #f))])
|
||||||
void
|
|
||||||
(lambda (x) #f))])
|
|
||||||
(if data
|
(if data
|
||||||
(argb->cache-image-snip (make-argb (first data) (second data))
|
(argb->cache-image-snip (make-argb (first data) (second data))
|
||||||
(third data)
|
(third data)
|
||||||
(fourth data))
|
(fourth data))
|
||||||
(make-null-cache-image-snip))))
|
(make-null-cache-image-snip))))
|
||||||
(super-new)))
|
(super-new)))
|
||||||
|
|
||||||
(define snip-class (new cache-image-snip-class%))
|
(define snip-class (new cache-image-snip-class%))
|
||||||
(send snip-class set-version 1)
|
(send snip-class set-version 1)
|
||||||
(send snip-class set-classname (format "~s" `(lib "cache-image-snip.ss" "mrlib")))
|
(send snip-class set-classname (format "~s" `(lib "cache-image-snip.ss" "mrlib")))
|
||||||
|
@ -655,4 +653,4 @@ for b3, we have:
|
||||||
[argb? (any/c . -> . boolean?)]
|
[argb? (any/c . -> . boolean?)]
|
||||||
[make-argb ((vectorof (integer-in 0 255)) integer? . -> . argb?)]
|
[make-argb ((vectorof (integer-in 0 255)) integer? . -> . argb?)]
|
||||||
[argb-vector (argb? . -> . (vectorof (integer-in 0 255)))]
|
[argb-vector (argb? . -> . (vectorof (integer-in 0 255)))]
|
||||||
[argb-width (argb? . -> . integer?)]))
|
[argb-width (argb? . -> . integer?)]))
|
||||||
|
|
|
@ -36,8 +36,8 @@ needed to really make this work:
|
||||||
(define syntax-snipclass%
|
(define syntax-snipclass%
|
||||||
(class snip-class%
|
(class snip-class%
|
||||||
(define/override (read stream)
|
(define/override (read stream)
|
||||||
(let ([str (send stream get-bytes)])
|
(make-object syntax-snip%
|
||||||
(make-object syntax-snip% (unmarshall-syntax (read-from-string (bytes->string/utf-8 str))))))
|
(unmarshall-syntax (read-from-string (send stream get-bytes)))))
|
||||||
(super-instantiate ())))
|
(super-instantiate ())))
|
||||||
|
|
||||||
(define snip-class (make-object syntax-snipclass%))
|
(define snip-class (make-object syntax-snipclass%))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user