Function defined by make-cont-folder takes a cont, not a $fun
[bpt/guile.git] / module / language / cps / dce.scm
index 73ae7e3..6c96fde 100644 (file)
     (define (ensure-fun-data fun)
       (or (hashq-ref fun-data-table fun)
           (call-with-values (lambda ()
-                              ((make-cont-folder #f label-count max-label)
-                               (lambda (k cont label-count max-label)
-                                 (values (1+ label-count) (max k max-label)))
-                               fun 0 -1))
+                              (match fun
+                                (($ $fun free body)
+                                 ((make-cont-folder #f label-count max-label)
+                                  (lambda (k cont label-count max-label)
+                                    (values (1+ label-count) (max k max-label)))
+                                  body 0 -1))))
             (lambda (label-count max-label)
               (let* ((min-label (- (1+ max-label) label-count))
                      (effects (compute-effects dfg min-label label-count))