Skip to content

Commit 4cf2ef9

Browse files
committed
Merge branch 'master' of https://github.com/UltraStudioLTD/pointers.py into UltraStudioLTD-master
2 parents 1edb62c + ef1dac6 commit 4cf2ef9

15 files changed

+3337
-698
lines changed

src/_pointers.pyi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@ from typing import Any, Callable, TypeVar
22

33
_T = TypeVar("_T")
44

5+
56
def add_ref(obj: Any) -> None: ...
67
def remove_ref(obj: Any) -> None: ...
78
def force_set_attr(typ: type[Any], key: str, value: Any) -> None: ...
89
def set_ref(obj: Any, count: int) -> None: ...
10+
11+
912
def handle(
1013
func: Callable[..., _T],
1114
args: tuple[Any, ...] | None = None,

src/pointers/__init__.py

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,37 @@
77
from ._utils import force_set_attr
88
from .api_bindings import *
99
from .base_pointers import (
10-
BaseAllocatedPointer, BaseCPointer, BaseObjectPointer, BasePointer,
11-
BasicPointer, Dereferencable, IterDereferencable, Sized, Typed
10+
BaseAllocatedPointer,
11+
BaseCPointer,
12+
BaseObjectPointer,
13+
BasePointer,
14+
BasicPointer,
15+
Dereferencable,
16+
IterDereferencable,
17+
Sized,
18+
Typed,
1219
)
1320
from .bindings import *
1421
from .c_pointer import (
15-
TypedCPointer, VoidPointer, array, cast, to_c_ptr, to_struct_ptr, to_voidp
22+
TypedCPointer,
23+
VoidPointer,
24+
array,
25+
cast,
26+
to_c_ptr,
27+
to_struct_ptr,
28+
to_voidp,
1629
)
1730
from .calloc import AllocatedArrayPointer, calloc
1831
from .custom_binding import binding, binds
1932
from .decay import decay, decay_annotated, decay_wrapped
2033
from .exceptions import (
21-
AllocationError, DereferenceError, FreedMemoryError,
22-
InvalidBindingParameter, InvalidSizeError, NullPointerError,
23-
SegmentViolation
34+
AllocationError,
35+
DereferenceError,
36+
FreedMemoryError,
37+
InvalidBindingParameter,
38+
InvalidSizeError,
39+
NullPointerError,
40+
SegmentViolation,
2441
)
2542
from .magic import _
2643
from .malloc import AllocatedPointer, free, malloc, realloc

src/pointers/_cstd.py

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
import ctypes
22
from ctypes.util import find_library
3-
from platform import system
4-
5-
platforms = {
6-
"linux": "libc.so.6",
7-
"darwin": "libc.dylib",
8-
"windows": "msvcrt",
9-
}
3+
from sys import platform
104

115
__all__ = (
126
"c_malloc",
@@ -20,7 +14,16 @@
2014
"ldiv_t",
2115
)
2216

23-
dll = ctypes.CDLL(platforms.get(system().lower()) or find_library("c"))
17+
_c_library_name: str
18+
19+
if platform in ("win32", "cygwin"):
20+
_c_library_name = "msvcrt"
21+
elif platform == "darwin":
22+
_c_library_name = "libc.dylib"
23+
else:
24+
_c_library_name = find_library("c") or "libc.so.6"
25+
26+
dll = ctypes.CDLL(_c_library_name)
2427

2528

2629
class tm(ctypes.Structure):

0 commit comments

Comments
 (0)