mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-30 08:50:23 +02:00
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.
This commit is contained in:
parent
f95a794a3d
commit
7fedd7b7ad
1 changed files with 4 additions and 1 deletions
|
@ -232,7 +232,10 @@
|
||||||
;; Add element to set; level will not change.
|
;; Add element to set; level will not change.
|
||||||
(if (= shift *leaf-bits*)
|
(if (= shift *leaf-bits*)
|
||||||
(set-transient-intset-root! bs (adjoin-leaf (- i min) root))
|
(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
|
(else
|
||||||
(let lp ((min min)
|
(let lp ((min min)
|
||||||
(shift shift)
|
(shift shift)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue