racket/draw: fix result on non-void `record-dc%' methods

Merge to 5.3
This commit is contained in:
Matthew Flatt 2012-04-14 20:43:55 -06:00
parent 4179cbfa63
commit b09870cf7e

View File

@ -101,7 +101,7 @@
(let ([p (make-object pen% color width style cap join)]) (let ([p (make-object pen% color width style cap join)])
(send p set-stipple (unconvert-bitmap stipple)) (send p set-stipple (unconvert-bitmap stipple))
p) p)
(send the-pen-list find-or-create-pen color width style cap join))) (send the-pen-list find-or-create-pen color width style cap join)))
(define (clone-brush b) (define (clone-brush b)
(cond (cond
@ -401,11 +401,12 @@
[_ #'(values)])) [_ #'(values)]))
args)]) args)])
#'(define/override (name arg-formal ...) #'(define/override (name arg-formal ...)
(super name arg-id ...) (begin0
(when (continue-recording?) (super name arg-id ...)
(let (arg-bind ...) (when (continue-recording?)
(record (lambda (dc) (send dc name arg-id ...)) (let (arg-bind ...)
(lambda () (list 'name (arg-convert ... arg-id) ...))))))))])) (record (lambda (dc) (send dc name arg-id ...))
(lambda () (list 'name (arg-convert ... arg-id) ...)))))))))]))
(define-syntax (generate-record-unconvert stx) (define-syntax (generate-record-unconvert stx)
(syntax-case stx () (syntax-case stx ()