Skip to content

Commit 0fb6f06

Browse files
committed
patch: improve vec efficiency
1 parent 83e3632 commit 0fb6f06

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

src/editscript/patch.cljc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@
4040
[x p v]
4141
(case (e/get-type x)
4242
:map (assoc x p v)
43-
:vec (into (conj (subvec x 0 p) v) (subvec x p))
43+
:vec (if (= p (count x))
44+
(conj x v)
45+
(into (conj (subvec x 0 p) v) (subvec x p)))
4446
:set (conj x v)
4547
:lst (->> (split-at p x)
4648
(#(concat (nth % 0) (conj (nth % 1) v)))
@@ -74,7 +76,7 @@
7476
[x p v]
7577
(case (e/get-type x)
7678
:map (assoc x p v)
77-
:vec (into (conj (subvec x 0 p) v) (subvec x (inc ^long p)))
79+
:vec (assoc x p v)
7880
:set (-> x (set/difference #{p}) (conj v))
7981
:lst (->> (split-at p x)
8082
(#(concat (nth % 0) (conj (rest (nth % 1)) v)))

0 commit comments

Comments
 (0)