From 571ba316da8387548a1e4314499a3fbe95b02ccd Mon Sep 17 00:00:00 2001 From: Nathan Marz Date: Mon, 6 Jun 2016 07:48:30 -0400 Subject: [PATCH] Fix #109 --- src/clj/com/rpl/specter/impl.cljx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/clj/com/rpl/specter/impl.cljx b/src/clj/com/rpl/specter/impl.cljx index 4ca0e79..196a29d 100644 --- a/src/clj/com/rpl/specter/impl.cljx +++ b/src/clj/com/rpl/specter/impl.cljx @@ -1085,6 +1085,13 @@ ) ))) + +;; This is needed when aset is used on primitive values in mk-params-maker +;; to avoid reflection +#+clj +(defn aset-object [^objects a i ^Object v] + (aset a i v)) + #+clj (defn mk-params-maker [ns-str params-code possible-params-code used-locals] (let [ns (find-ns (symbol ns-str)) @@ -1095,7 +1102,7 @@ (let [~array-sym (fast-object-array ~(count params-code))] ~@(map-indexed (fn [i c] - `(aset ~array-sym ~i ~c)) + `(aset-object ~array-sym ~i ~c)) params-code ) ~array-sym