Skip to content

Commit af1378f

Browse files
committed
Fix: correctly wrap returned 'nativememoryview' object.
1 parent ebb860c commit af1378f

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

graalpython/lib-graalpython/memoryview.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,13 @@
4242

4343
def __memoryview_init(self, *args, **kwargs):
4444
import _memoryview
45-
# NOTE: DO NOT CHANGE THE NAME OF THIS PROPERTY
45+
# NOTE: DO NOT CHANGE THE NAME OF PROPERTY '__c_memoryview'
4646
# it is also referenced in native code
47-
self.__c_memoryview = _memoryview.nativememoryview(*args, **kwargs)
47+
if args and isinstance(args[0], _memoryview.nativememoryview):
48+
# wrapping case
49+
self.__c_memoryview = args[0]
50+
else:
51+
self.__c_memoryview = _memoryview.nativememoryview(*args, **kwargs)
4852

4953

5054
def __memoryview_getitem(self, key):
@@ -86,4 +90,4 @@ def delegate(self):
8690
memoryview.__init__ = __memoryview_init
8791
memoryview.__getitem__ = __memoryview_getitem
8892
memoryview.__setitem__ = lambda self, key, value: self.__c_memoryview.__setitem__(key, value)
89-
memoryview.cast = lambda self, *args: self.__c_memoryview.cast(*args)
93+
memoryview.cast = lambda self, *args: memoryview(self.__c_memoryview.cast(*args))

0 commit comments

Comments
 (0)