[New-bugs-announce] [issue15947] Assigning new values to instance of pointer types does not check validity

Facundo Batista report at bugs.python.org
Sat Sep 15 16:41:47 CEST 2012


New submission from Facundo Batista:

In the doc it says:

"""
Assigning a new value to instances of the pointer types c_char_p, c_wchar_p, and c_void_p changes the memory location they point to, not the contents of the memory block [...].

>>> s = "Hello, World"
>>> c_s = c_wchar_p(s)
>>> print(c_s)
c_wchar_p('Hello, World')
>>> c_s.value = "Hi, there"
>>> print(c_s)
c_wchar_p('Hi, there')
>>> print(s)                 # first object is unchanged
Hello, World
>>>
"""

However, c_s it's not getting "Hi, there" as "the memory location it points to", otherwise next access will surely segfault.

OTOH, if it *does* change the memory location, but the value is cached locally, which is the point of letting it change the memory location? Shouldn't it raise AttributeError or something?

Thanks!

----------
components: ctypes
messages: 170518
nosy: facundobatista
priority: normal
severity: normal
status: open
title: Assigning new values to instance of pointer types does not check validity
type: behavior
versions: Python 3.2

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue15947>
_______________________________________


More information about the New-bugs-announce mailing list