[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 02/07: Fix another intset transient bug
From: |
Andy Wingo |
Subject: |
[Guile-commits] 02/07: Fix another intset transient bug |
Date: |
Mon, 11 May 2015 20:46:10 +0000 |
wingo pushed a commit to branch master
in repository guile.
commit 7fedd7b7add43df04442b0f6738350025fba0c27
Author: Andy Wingo <address@hidden>
Date: Sat May 9 14:52:47 2015 +0200
Fix another intset transient bug
* module/language/cps/intset.scm (intset-add!): If the root is a
branch but isn't editable, be sure to actually update the transient
intset's root to store the writable root.
---
module/language/cps/intset.scm | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/module/language/cps/intset.scm b/module/language/cps/intset.scm
index 9fc44bd..60621d6 100644
--- a/module/language/cps/intset.scm
+++ b/module/language/cps/intset.scm
@@ -232,7 +232,10 @@
;; Add element to set; level will not change.
(if (= shift *leaf-bits*)
(set-transient-intset-root! bs (adjoin-leaf (- i min) root))
- (adjoin-branch! (- i min) shift root)))
+ (let ((root* (writable-branch root edit)))
+ (unless (eq? root root*)
+ (set-transient-intset-root! bs root*))
+ (adjoin-branch! (- i min) shift root*))))
(else
(let lp ((min min)
(shift shift)
- [Guile-commits] branch master updated (d99fedc -> b31af02), Andy Wingo, 2015/05/11
- [Guile-commits] 01/07: Fix intset-add! transient bug, Andy Wingo, 2015/05/11
- [Guile-commits] 02/07: Fix another intset transient bug,
Andy Wingo <=
- [Guile-commits] 03/07: compute-dom-edges returns a persistent intmap, Andy Wingo, 2015/05/11
- [Guile-commits] 04/07: Tree-IL -> CPS2 -> CPS, Andy Wingo, 2015/05/11
- [Guile-commits] 06/07: Adapt return arities in Tree-IL -> CPS2 conversion, Andy Wingo, 2015/05/11
- [Guile-commits] 05/07: Build CPS2 with transient intmaps, Andy Wingo, 2015/05/11
- [Guile-commits] 07/07: Consolidate CPS2 above CPS in the compiler, Andy Wingo, 2015/05/11