File tree 6 files changed +17
-6
lines changed
6 files changed +17
-6
lines changed Original file line number Diff line number Diff line change 1
1
# Time for a ChangeLog!
2
+
2
3
## 2.026 - UNRELEASED
3
4
* Faster string conversion from c->jvm for large strings.
4
5
Original file line number Diff line number Diff line change 1
1
{:paths [" src" ]
2
2
:deps {org.clojure/clojure {:mvn/version " 1.11.1" :scope " provided" }
3
- cnuernber/dtype-next {:mvn/version " 10.111 " }
3
+ cnuernber/dtype-next {:mvn/version " 10.124 " }
4
4
net.java.dev.jna/jna {:mvn/version " 5.12.1" }
5
5
org.clojure/data.json {:mvn/version " 1.0.0" }
6
6
; ;Replace me with caffeine...
Original file line number Diff line number Diff line change @@ -413,7 +413,7 @@ user> (py/py. np linspace 2 3 :num 10)
413
413
(cond
414
414
(instance? IFn pyobj)
415
415
true
416
- (dtype -ffi/convertible-to-pointer? pyobj)
416
+ (py -ffi/convertible-to-pointer? pyobj)
417
417
(py-ffi/with-gil
418
418
(let [retval (long (py-ffi/PyCallable_Check pyobj))]
419
419
(case retval
Original file line number Diff line number Diff line change 80
80
(extend-type Object
81
81
py-proto/PCopyToJVM
82
82
(->jvm [item options]
83
- (if (dt -ffi/convertible-to-pointer? item)
83
+ (if (py -ffi/convertible-to-pointer? item)
84
84
(py-proto/pyobject->jvm item options)
85
85
; ;item is already a jvm object
86
86
item))
87
87
py-proto/PBridgeToJVM
88
88
(as-jvm [item options]
89
- (if (dt -ffi/convertible-to-pointer? item)
89
+ (if (py -ffi/convertible-to-pointer? item)
90
90
(py-proto/pyobject-as-jvm item options)
91
91
item))
92
92
py-proto/PPyCallable
Original file line number Diff line number Diff line change 179
179
(get-attr [item# item-name#]
180
180
(with-gil
181
181
(-> (py-proto/get-attr @pyobj*# item-name#)
182
- py-base/as-jvm)))
182
+ ( py-base/as-jvm ) )))
183
183
(set-attr! [item# item-name# item-value#]
184
184
(with-gil
185
185
(py-ffi/with-decref [item-value# (py-ffi/untracked->python
225
225
(py-base/->jvm (py-fn/call-attr @pyobj*# " __str__" nil ))))))
226
226
(equals [this# other#]
227
227
(boolean
228
- (when (dt -ffi/convertible-to-pointer? other#)
228
+ (when (py -ffi/convertible-to-pointer? other#)
229
229
(py-base/equals? @pyobj*# other#))))
230
230
(hashCode [this#]
231
231
(.hashCode ^Object (py-base/hash-code this#)))
Original file line number Diff line number Diff line change @@ -323,6 +323,16 @@ Each call must be matched with PyGILState_Release"}
323
323
:pyobject [{:name :ob_refcnt :datatype (ffi-size-t/size-t-type )}
324
324
{:name :ob_type :datatype (ffi-size-t/size-t-type )}])))
325
325
326
+
327
+ (defn convertible-to-pointer?
328
+ " Older definition - excludes Long objects which were made convertible-to-pointer
329
+ in later versions of dtype-next."
330
+ [d]
331
+ (boolean
332
+ (when-not (instance? Long d)
333
+ (dt-ffi/convertible-to-pointer? d))))
334
+
335
+
326
336
(defn pytype-offset
327
337
^long []
328
338
(first (dt-struct/offset-of @pyobject-struct-type* :ob_type )))
You can’t perform that action at this time.
0 commit comments