Python ctypes._pointer_type_cache() Examples
The following are 30
code examples of ctypes._pointer_type_cache().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
ctypes
, or try the search function
.
Example #1
Source File: test_keeprefs.py From datafari with Apache License 2.0 | 6 votes |
def test(self): class POINT(Structure): _fields_ = [("x", c_int), ("y", c_int)] class RECT(Structure): _fields_ = [("a", POINTER(POINT)), ("b", POINTER(POINT))] r = RECT() p1 = POINT(1, 2) r.a = pointer(p1) r.b = pointer(p1) ## from pprint import pprint as pp ## pp(p1._objects) ## pp(r._objects) r.a[0].x = 42 r.a[0].y = 99 # to avoid leaking when tests are run several times # clean up the types left in the cache. from ctypes import _pointer_type_cache del _pointer_type_cache[POINT]
Example #2
Source File: test_pointers.py From android_universal with MIT License | 6 votes |
def test_other(self): class Table(Structure): _fields_ = [("a", c_int), ("b", c_int), ("c", c_int)] pt = pointer(Table(1, 2, 3)) self.assertEqual(pt.contents.a, 1) self.assertEqual(pt.contents.b, 2) self.assertEqual(pt.contents.c, 3) pt.contents.c = 33 from ctypes import _pointer_type_cache del _pointer_type_cache[Table]
Example #3
Source File: test_keeprefs.py From android_universal with MIT License | 6 votes |
def test(self): class POINT(Structure): _fields_ = [("x", c_int), ("y", c_int)] class RECT(Structure): _fields_ = [("a", POINTER(POINT)), ("b", POINTER(POINT))] r = RECT() p1 = POINT(1, 2) r.a = pointer(p1) r.b = pointer(p1) ## from pprint import pprint as pp ## pp(p1._objects) ## pp(r._objects) r.a[0].x = 42 r.a[0].y = 99 # to avoid leaking when tests are run several times # clean up the types left in the cache. from ctypes import _pointer_type_cache del _pointer_type_cache[POINT]
Example #4
Source File: test_keeprefs.py From BinderFilter with MIT License | 6 votes |
def test(self): class POINT(Structure): _fields_ = [("x", c_int), ("y", c_int)] class RECT(Structure): _fields_ = [("a", POINTER(POINT)), ("b", POINTER(POINT))] r = RECT() p1 = POINT(1, 2) r.a = pointer(p1) r.b = pointer(p1) ## from pprint import pprint as pp ## pp(p1._objects) ## pp(r._objects) r.a[0].x = 42 r.a[0].y = 99 # to avoid leaking when tests are run several times # clean up the types left in the cache. from ctypes import _pointer_type_cache del _pointer_type_cache[POINT]
Example #5
Source File: test_pointers.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_other(self): class Table(Structure): _fields_ = [("a", c_int), ("b", c_int), ("c", c_int)] pt = pointer(Table(1, 2, 3)) self.assertEqual(pt.contents.a, 1) self.assertEqual(pt.contents.b, 2) self.assertEqual(pt.contents.c, 3) pt.contents.c = 33 from ctypes import _pointer_type_cache del _pointer_type_cache[Table]
Example #6
Source File: test_pointers.py From BinderFilter with MIT License | 6 votes |
def test_other(self): class Table(Structure): _fields_ = [("a", c_int), ("b", c_int), ("c", c_int)] pt = pointer(Table(1, 2, 3)) self.assertEqual(pt.contents.a, 1) self.assertEqual(pt.contents.b, 2) self.assertEqual(pt.contents.c, 3) pt.contents.c = 33 from ctypes import _pointer_type_cache del _pointer_type_cache[Table]
Example #7
Source File: test_keeprefs.py From oss-ftp with MIT License | 6 votes |
def test(self): class POINT(Structure): _fields_ = [("x", c_int), ("y", c_int)] class RECT(Structure): _fields_ = [("a", POINTER(POINT)), ("b", POINTER(POINT))] r = RECT() p1 = POINT(1, 2) r.a = pointer(p1) r.b = pointer(p1) ## from pprint import pprint as pp ## pp(p1._objects) ## pp(r._objects) r.a[0].x = 42 r.a[0].y = 99 # to avoid leaking when tests are run several times # clean up the types left in the cache. from ctypes import _pointer_type_cache del _pointer_type_cache[POINT]
Example #8
Source File: test_pointers.py From oss-ftp with MIT License | 6 votes |
def test_other(self): class Table(Structure): _fields_ = [("a", c_int), ("b", c_int), ("c", c_int)] pt = pointer(Table(1, 2, 3)) self.assertEqual(pt.contents.a, 1) self.assertEqual(pt.contents.b, 2) self.assertEqual(pt.contents.c, 3) pt.contents.c = 33 from ctypes import _pointer_type_cache del _pointer_type_cache[Table]
Example #9
Source File: test_pointers.py From odoo13-x64 with GNU General Public License v3.0 | 6 votes |
def test_other(self): class Table(Structure): _fields_ = [("a", c_int), ("b", c_int), ("c", c_int)] pt = pointer(Table(1, 2, 3)) self.assertEqual(pt.contents.a, 1) self.assertEqual(pt.contents.b, 2) self.assertEqual(pt.contents.c, 3) pt.contents.c = 33 from ctypes import _pointer_type_cache del _pointer_type_cache[Table]
Example #10
Source File: test_keeprefs.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test(self): class POINT(Structure): _fields_ = [("x", c_int), ("y", c_int)] class RECT(Structure): _fields_ = [("a", POINTER(POINT)), ("b", POINTER(POINT))] r = RECT() p1 = POINT(1, 2) r.a = pointer(p1) r.b = pointer(p1) ## from pprint import pprint as pp ## pp(p1._objects) ## pp(r._objects) r.a[0].x = 42 r.a[0].y = 99 # to avoid leaking when tests are run several times # clean up the types left in the cache. from ctypes import _pointer_type_cache del _pointer_type_cache[POINT]
Example #11
Source File: test_keeprefs.py From odoo13-x64 with GNU General Public License v3.0 | 6 votes |
def test(self): class POINT(Structure): _fields_ = [("x", c_int), ("y", c_int)] class RECT(Structure): _fields_ = [("a", POINTER(POINT)), ("b", POINTER(POINT))] r = RECT() p1 = POINT(1, 2) r.a = pointer(p1) r.b = pointer(p1) ## from pprint import pprint as pp ## pp(p1._objects) ## pp(r._objects) r.a[0].x = 42 r.a[0].y = 99 # to avoid leaking when tests are run several times # clean up the types left in the cache. from ctypes import _pointer_type_cache del _pointer_type_cache[POINT]
Example #12
Source File: test_keeprefs.py From ironpython2 with Apache License 2.0 | 6 votes |
def test(self): class POINT(Structure): _fields_ = [("x", c_int), ("y", c_int)] class RECT(Structure): _fields_ = [("a", POINTER(POINT)), ("b", POINTER(POINT))] r = RECT() p1 = POINT(1, 2) r.a = pointer(p1) r.b = pointer(p1) ## from pprint import pprint as pp ## pp(p1._objects) ## pp(r._objects) r.a[0].x = 42 r.a[0].y = 99 # to avoid leaking when tests are run several times # clean up the types left in the cache. from ctypes import _pointer_type_cache del _pointer_type_cache[POINT]
Example #13
Source File: test_pointers.py From datafari with Apache License 2.0 | 6 votes |
def test_other(self): class Table(Structure): _fields_ = [("a", c_int), ("b", c_int), ("c", c_int)] pt = pointer(Table(1, 2, 3)) self.assertEqual(pt.contents.a, 1) self.assertEqual(pt.contents.b, 2) self.assertEqual(pt.contents.c, 3) pt.contents.c = 33 from ctypes import _pointer_type_cache del _pointer_type_cache[Table]
Example #14
Source File: test_pointers.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_other(self): class Table(Structure): _fields_ = [("a", c_int), ("b", c_int), ("c", c_int)] pt = pointer(Table(1, 2, 3)) self.assertEqual(pt.contents.a, 1) self.assertEqual(pt.contents.b, 2) self.assertEqual(pt.contents.c, 3) pt.contents.c = 33 from ctypes import _pointer_type_cache del _pointer_type_cache[Table]
Example #15
Source File: test_keeprefs.py From ironpython3 with Apache License 2.0 | 6 votes |
def test(self): class POINT(Structure): _fields_ = [("x", c_int), ("y", c_int)] class RECT(Structure): _fields_ = [("a", POINTER(POINT)), ("b", POINTER(POINT))] r = RECT() p1 = POINT(1, 2) r.a = pointer(p1) r.b = pointer(p1) ## from pprint import pprint as pp ## pp(p1._objects) ## pp(r._objects) r.a[0].x = 42 r.a[0].y = 99 # to avoid leaking when tests are run several times # clean up the types left in the cache. from ctypes import _pointer_type_cache del _pointer_type_cache[POINT]
Example #16
Source File: test_keeprefs.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def test(self): class POINT(Structure): _fields_ = [("x", c_int), ("y", c_int)] class RECT(Structure): _fields_ = [("a", POINTER(POINT)), ("b", POINTER(POINT))] r = RECT() p1 = POINT(1, 2) r.a = pointer(p1) r.b = pointer(p1) ## from pprint import pprint as pp ## pp(p1._objects) ## pp(r._objects) r.a[0].x = 42 r.a[0].y = 99 # to avoid leaking when tests are run several times # clean up the types left in the cache. from ctypes import _pointer_type_cache del _pointer_type_cache[POINT]
Example #17
Source File: test_pointers.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 6 votes |
def test_other(self): class Table(Structure): _fields_ = [("a", c_int), ("b", c_int), ("c", c_int)] pt = pointer(Table(1, 2, 3)) self.assertEqual(pt.contents.a, 1) self.assertEqual(pt.contents.b, 2) self.assertEqual(pt.contents.c, 3) pt.contents.c = 33 from ctypes import _pointer_type_cache del _pointer_type_cache[Table]
Example #18
Source File: test_pointers.py From Imogen with MIT License | 6 votes |
def test_other(self): class Table(Structure): _fields_ = [("a", c_int), ("b", c_int), ("c", c_int)] pt = pointer(Table(1, 2, 3)) self.assertEqual(pt.contents.a, 1) self.assertEqual(pt.contents.b, 2) self.assertEqual(pt.contents.c, 3) pt.contents.c = 33 from ctypes import _pointer_type_cache del _pointer_type_cache[Table]
Example #19
Source File: test_keeprefs.py From Imogen with MIT License | 6 votes |
def test(self): class POINT(Structure): _fields_ = [("x", c_int), ("y", c_int)] class RECT(Structure): _fields_ = [("a", POINTER(POINT)), ("b", POINTER(POINT))] r = RECT() p1 = POINT(1, 2) r.a = pointer(p1) r.b = pointer(p1) ## from pprint import pprint as pp ## pp(p1._objects) ## pp(r._objects) r.a[0].x = 42 r.a[0].y = 99 # to avoid leaking when tests are run several times # clean up the types left in the cache. from ctypes import _pointer_type_cache del _pointer_type_cache[POINT]
Example #20
Source File: test_pointers.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_other(self): class Table(Structure): _fields_ = [("a", c_int), ("b", c_int), ("c", c_int)] pt = pointer(Table(1, 2, 3)) self.assertEqual(pt.contents.a, 1) self.assertEqual(pt.contents.b, 2) self.assertEqual(pt.contents.c, 3) pt.contents.c = 33 from ctypes import _pointer_type_cache del _pointer_type_cache[Table]
Example #21
Source File: test_win32.py From android_universal with MIT License | 5 votes |
def test_struct_by_value(self): class POINT(Structure): _fields_ = [("x", c_long), ("y", c_long)] class RECT(Structure): _fields_ = [("left", c_long), ("top", c_long), ("right", c_long), ("bottom", c_long)] dll = CDLL(_ctypes_test.__file__) pt = POINT(15, 25) left = c_long.in_dll(dll, 'left') top = c_long.in_dll(dll, 'top') right = c_long.in_dll(dll, 'right') bottom = c_long.in_dll(dll, 'bottom') rect = RECT(left, top, right, bottom) PointInRect = dll.PointInRect PointInRect.argtypes = [POINTER(RECT), POINT] self.assertEqual(1, PointInRect(byref(rect), pt)) ReturnRect = dll.ReturnRect ReturnRect.argtypes = [c_int, RECT, POINTER(RECT), POINT, RECT, POINTER(RECT), POINT, RECT] ReturnRect.restype = RECT for i in range(4): ret = ReturnRect(i, rect, pointer(rect), pt, rect, byref(rect), pt, rect) # the c function will check and modify ret if something is # passed in improperly self.assertEqual(ret.left, left.value) self.assertEqual(ret.right, right.value) self.assertEqual(ret.top, top.value) self.assertEqual(ret.bottom, bottom.value) # to not leak references, we must clean _pointer_type_cache from ctypes import _pointer_type_cache del _pointer_type_cache[RECT]
Example #22
Source File: __init__.py From datafari with Apache License 2.0 | 5 votes |
def test_with_refcounts(runner, verbosity, testcase): """Run testcase several times, tracking reference counts.""" import gc import ctypes ptc = ctypes._pointer_type_cache.copy() cfc = ctypes._c_functype_cache.copy() wfc = ctypes._win_functype_cache.copy() # when searching for refcount leaks, we have to manually reset any # caches that ctypes has. def cleanup(): ctypes._pointer_type_cache = ptc.copy() ctypes._c_functype_cache = cfc.copy() ctypes._win_functype_cache = wfc.copy() gc.collect() test = unittest.makeSuite(testcase) for i in range(5): rc = sys.gettotalrefcount() runner.run(test) cleanup() COUNT = 5 refcounts = [None] * COUNT for i in range(COUNT): rc = sys.gettotalrefcount() runner.run(test) cleanup() refcounts[i] = sys.gettotalrefcount() - rc if filter(None, refcounts): print "%s leaks:\n\t" % testcase, refcounts elif verbosity: print "%s: ok." % testcase
Example #23
Source File: test_incomplete.py From ironpython2 with Apache License 2.0 | 5 votes |
def test_incomplete_example(self): lpcell = POINTER("cell") class cell(Structure): _fields_ = [("name", c_char_p), ("next", lpcell)] SetPointerType(lpcell, cell) c1 = cell() c1.name = "foo" c2 = cell() c2.name = "bar" c1.next = pointer(c2) c2.next = pointer(c1) p = c1 result = [] for i in range(8): result.append(p.name) p = p.next[0] self.assertEqual(result, ["foo", "bar"] * 4) # to not leak references, we must clean _pointer_type_cache from ctypes import _pointer_type_cache del _pointer_type_cache[cell] ################################################################
Example #24
Source File: test_incomplete.py From datafari with Apache License 2.0 | 5 votes |
def test_incomplete_example(self): lpcell = POINTER("cell") class cell(Structure): _fields_ = [("name", c_char_p), ("next", lpcell)] SetPointerType(lpcell, cell) c1 = cell() c1.name = "foo" c2 = cell() c2.name = "bar" c1.next = pointer(c2) c2.next = pointer(c1) p = c1 result = [] for i in range(8): result.append(p.name) p = p.next[0] self.assertEqual(result, ["foo", "bar"] * 4) # to not leak references, we must clean _pointer_type_cache from ctypes import _pointer_type_cache del _pointer_type_cache[cell] ################################################################
Example #25
Source File: test_byteswap.py From android_universal with MIT License | 5 votes |
def test_struct_struct(self): # nested structures with different byteorders # create nested structures with given byteorders and set memory to data for nested, data in ( (BigEndianStructure, b'\0\0\0\1\0\0\0\2'), (LittleEndianStructure, b'\1\0\0\0\2\0\0\0'), ): for parent in ( BigEndianStructure, LittleEndianStructure, Structure, ): class NestedStructure(nested): _fields_ = [("x", c_uint32), ("y", c_uint32)] class TestStructure(parent): _fields_ = [("point", NestedStructure)] self.assertEqual(len(data), sizeof(TestStructure)) ptr = POINTER(TestStructure) s = cast(data, ptr)[0] del ctypes._pointer_type_cache[TestStructure] self.assertEqual(s.point.x, 1) self.assertEqual(s.point.y, 2)
Example #26
Source File: test_values.py From datafari with Apache License 2.0 | 5 votes |
def test_frozentable(self): # Python exports a PyImport_FrozenModules symbol. This is a # pointer to an array of struct _frozen entries. The end of the # array is marked by an entry containing a NULL name and zero # size. # In standard Python, this table contains a __hello__ # module, and a __phello__ package containing a spam # module. class struct_frozen(Structure): _fields_ = [("name", c_char_p), ("code", POINTER(c_ubyte)), ("size", c_int)] FrozenTable = POINTER(struct_frozen) ft = FrozenTable.in_dll(pythonapi, "PyImport_FrozenModules") # ft is a pointer to the struct_frozen entries: items = [] for entry in ft: # This is dangerous. We *can* iterate over a pointer, but # the loop will not terminate (maybe with an access # violation;-) because the pointer instance has no size. if entry.name is None: break items.append((entry.name, entry.size)) expected = [("__hello__", 104), ("__phello__", -104), ("__phello__.spam", 104)] self.assertEqual(items, expected) from ctypes import _pointer_type_cache del _pointer_type_cache[struct_frozen]
Example #27
Source File: test_incomplete.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_incomplete_example(self): lpcell = POINTER("cell") class cell(Structure): _fields_ = [("name", c_char_p), ("next", lpcell)] SetPointerType(lpcell, cell) c1 = cell() c1.name = b"foo" c2 = cell() c2.name = b"bar" c1.next = pointer(c2) c2.next = pointer(c1) p = c1 result = [] for i in range(8): result.append(p.name) p = p.next[0] self.assertEqual(result, [b"foo", b"bar"] * 4) # to not leak references, we must clean _pointer_type_cache from ctypes import _pointer_type_cache del _pointer_type_cache[cell] ################################################################
Example #28
Source File: test_pointers.py From android_universal with MIT License | 5 votes |
def test_pointer_type_str_name(self): large_string = 'T' * 2 ** 25 P = POINTER(large_string) self.assertTrue(P) # to not leak references, we must clean _pointer_type_cache from ctypes import _pointer_type_cache del _pointer_type_cache[id(P)]
Example #29
Source File: test_pointers.py From android_universal with MIT License | 5 votes |
def test_pointer_type_name(self): LargeNamedType = type('T' * 2 ** 25, (Structure,), {}) self.assertTrue(POINTER(LargeNamedType)) # to not leak references, we must clean _pointer_type_cache from ctypes import _pointer_type_cache del _pointer_type_cache[LargeNamedType]
Example #30
Source File: test_byteswap.py From odoo13-x64 with GNU General Public License v3.0 | 5 votes |
def test_struct_struct(self): # nested structures with different byteorders # create nested structures with given byteorders and set memory to data for nested, data in ( (BigEndianStructure, b'\0\0\0\1\0\0\0\2'), (LittleEndianStructure, b'\1\0\0\0\2\0\0\0'), ): for parent in ( BigEndianStructure, LittleEndianStructure, Structure, ): class NestedStructure(nested): _fields_ = [("x", c_uint32), ("y", c_uint32)] class TestStructure(parent): _fields_ = [("point", NestedStructure)] self.assertEqual(len(data), sizeof(TestStructure)) ptr = POINTER(TestStructure) s = cast(data, ptr)[0] del ctypes._pointer_type_cache[TestStructure] self.assertEqual(s.point.x, 1) self.assertEqual(s.point.y, 2)