File tree Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Original file line number Diff line number Diff line change 1295
1295
; ; reset cbindframes to force re-evaluation
1296
1296
; ; this is needed to ensure that each closure has an
1297
1297
; ; unique and compatible mapping
1298
- (dolist (fdef flets-tmp)
1299
- (when (fdef . cbindframe)
1300
- (setq (fdef . cbindframe) t )))
1298
+ (send self :reset-flets-cbindframe flets-tmp)
1301
1299
1302
1300
; ; evaluate body
1303
1301
(setq flets (append flets-tmp flets))
1304
1302
(if recursive-scope (send-all newcomps :change-flets flets))
1305
1303
(send self :progn bodies)
1306
1304
(if (not recursive-scope) (send newcomp :change-flets flets))
1307
1305
; ; unwind/restore
1306
+ (send self :reset-flets-cbindframe flets-tmp)
1308
1307
(setq flets (nthcdr (length flets-tmp) flets))
1309
1308
(send self :delete-frame ' flet nil )
1310
1309
(send trans :del-frame (fletframe . specials) (fletframe . locals))))
1316
1315
(send self :progn bodies)
1317
1316
(setq flets (nthcdr (length funcs) flets)))
1318
1317
(:change-flets (newflets) (setq flets newflets))
1318
+ (:reset-flets-cbindframe (flets-tmp)
1319
+ (dolist (fdef flets-tmp)
1320
+ (when (fdef . cbindframe)
1321
+ (setq (fdef . cbindframe) t ))))
1319
1322
(:declare (args)
1320
1323
; ; bind statements and return type declared variables
1321
1324
(let (v acc)
You can’t perform that action at this time.
0 commit comments