From e6bb7eb27b8b81ed74e5132628ca8e6415baf57e Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Wed, 25 Mar 2015 21:58:36 -0700 Subject: Issue #23765: Removed IsBadStringPtr calls in ctypes --- Lib/ctypes/__init__.py | 12 ++++-------- Misc/NEWS | 2 ++ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py index 055294c..4cb6d0d 100644 --- a/Lib/ctypes/__init__.py +++ b/Lib/ctypes/__init__.py @@ -237,14 +237,8 @@ _check_size(c_char) class c_char_p(_SimpleCData): _type_ = "z" - if _os.name == "nt": - def __repr__(self): - if not windll.kernel32.IsBadStringPtrA(self, -1): - return "%s(%r)" % (self.__class__.__name__, self.value) - return "%s(%s)" % (self.__class__.__name__, cast(self, c_void_p).value) - else: - def __repr__(self): - return "%s(%s)" % (self.__class__.__name__, cast(self, c_void_p).value) + def __repr__(self): + return "%s(%s)" % (self.__class__.__name__, c_void_p.from_buffer(self).value) _check_size(c_char_p, "P") class c_void_p(_SimpleCData): @@ -259,6 +253,8 @@ from _ctypes import POINTER, pointer, _pointer_type_cache class c_wchar_p(_SimpleCData): _type_ = "Z" + def __repr__(self): + return "%s(%s)" % (self.__class__.__name__, c_void_p.from_buffer(self).value) class c_wchar(_SimpleCData): _type_ = "u" diff --git a/Misc/NEWS b/Misc/NEWS index eafe227..ef2dd3d 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -30,6 +30,8 @@ Core and Builtins Library ------- +- Issue #23765: Removed IsBadStringPtr calls in ctypes + - Issue #22364: Improved some re error messages using regex for hints. - Issue #23742: ntpath.expandvars() no longer loses unbalanced single quotes. -- cgit v0.12