Skip to content

Commit 8b740b0

Browse files
committed
chore: bump set
1 parent b2711e0 commit 8b740b0

2 files changed

Lines changed: 12 additions & 6 deletions

File tree

deps.edn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{:deps {org.clojars.tiensonqin/persistent-sorted-set {:mvn/version "0.0.1"}}
1+
{:deps {org.clojars.tiensonqin/persistent-sorted-set {:mvn/version "0.0.2"}}
22

33
:aliases {:1.9 {:override-deps {org.clojure/clojure {:mvn/version "1.9.0"}}}
44

src/datascript/storage.cljs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,13 @@
3838

3939
(defrecord StorageAdapter [storage]
4040
set-protocol/IStorage
41-
(store [_ ^Node node]
42-
(let [addr (gen-addr)
41+
(store [_ ^Node node address]
42+
(let [addr (cond
43+
(and address (instance? Node node)
44+
(contains? (set (.-addresses node)) address))
45+
(gen-addr)
46+
:else
47+
(or address (gen-addr)))
4348
keys (mapv serializable-datom (.-keys node))
4449
data (cond-> {:keys keys}
4550
(instance? Node node)
@@ -50,11 +55,12 @@
5055
(let [{:keys [keys addresses]} (-restore storage addr)]
5156
(when keys
5257
(let [keys' (->> (map (fn [[e a v tx]] (db/datom e a v tx)) keys)
53-
(arrays/into-array))]
58+
(arrays/into-array))
59+
opts {:address addr :dirty? false}]
5460
(if addresses
5561
(let [children (arrays/make-array (count addresses))]
56-
(Node. keys' children addresses))
57-
(Leaf. keys'))))))
62+
(set/new-node keys' children addresses opts))
63+
(set/new-leaf keys' opts))))))
5864
(accessed [_ _addr]
5965
;; TODO:
6066
nil)

0 commit comments

Comments
 (0)