Author: Wim Lavrijsen <wlavrij...@lbl.gov> Branch: cppyy-packaging Changeset: r94865:7c3f397e2434 Date: 2018-07-13 23:17 -0700 http://bitbucket.org/pypy/pypy/changeset/7c3f397e2434/
Log: do not use string default/error size as object size diff --git a/pypy/module/_cppyy/converter.py b/pypy/module/_cppyy/converter.py --- a/pypy/module/_cppyy/converter.py +++ b/pypy/module/_cppyy/converter.py @@ -400,10 +400,12 @@ def from_memory(self, space, w_obj, w_pycppclass, offset): address = self._get_raw_address(space, w_obj, offset) charpptr = rffi.cast(rffi.CCHARP, address) - strsize = self.size - if charpptr[self.size-1] == '\0': - strsize = self.size-1 # rffi will add \0 back - return space.newtext(rffi.charpsize2str(charpptr, strsize)) + if 0 <= self.size and self.size != 2**31-1: # cling's code for "unknown" (?) + strsize = self.size + if charpptr[self.size-1] == '\0': + strsize = self.size-1 # rffi will add \0 back + return space.newtext(rffi.charpsize2str(charpptr, strsize)) + return space.newtext(rffi.charp2str(charpptr)) class VoidPtrConverter(TypeConverter): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit