From ffd22b069ba95a546baeca0bdb6711fb9059cad8 Mon Sep 17 00:00:00 2001 From: Wenzel Jakob Date: Tue, 13 Jun 2023 23:28:35 +0200 Subject: [PATCH] ``nb_ndarray``: don't return reference to ``self`` when ``copy==true`` --- src/nb_ndarray.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/nb_ndarray.cpp b/src/nb_ndarray.cpp index 7a2cbb80..ee18fbaa 100644 --- a/src/nb_ndarray.cpp +++ b/src/nb_ndarray.cpp @@ -611,13 +611,13 @@ PyObject *ndarray_wrap(ndarray_handle *th, int framework, if (!th) return none().release().ptr(); - if (th->self) { + bool copy = policy == rv_policy::copy || policy == rv_policy::move; + + if (th->self && !copy) { Py_INCREF(th->self); return th->self; } - bool copy = policy == rv_policy::copy || policy == rv_policy::move; - if ((ndarray_framework) framework == ndarray_framework::numpy) { try { nb_ndarray *h = PyObject_New(nb_ndarray, nd_ndarray_tp());