|
1 | | -asptr(x) = Base.unsafe_convert(PyPtr, x) |
| 1 | +Py_Type(x::PyPtr) = PyPtr(UnsafePtr(x).type[!]) |
2 | 2 |
|
3 | | -Py_Type(x) = Base.GC.@preserve x PyPtr(UnsafePtr(asptr(x)).type[!]) |
| 3 | +PyObject_Type(x::PyPtr) = (t = Py_Type(x); Py_IncRef(t); t) |
4 | 4 |
|
5 | | -PyObject_Type(x) = Base.GC.@preserve x (t = Py_Type(asptr(x)); Py_IncRef(t); t) |
| 5 | +Py_TypeCheck(o::PyPtr, t::PyPtr) = PyType_IsSubtype(Py_Type(o), t) |
| 6 | +Py_TypeCheckFast(o::PyPtr, f::Integer) = PyType_IsSubtypeFast(Py_Type(o), f) |
6 | 7 |
|
7 | | -Py_TypeCheck(o, t) = Base.GC.@preserve o t PyType_IsSubtype(Py_Type(asptr(o)), asptr(t)) |
8 | | -Py_TypeCheckFast(o, f::Integer) = Base.GC.@preserve o PyType_IsSubtypeFast(Py_Type(asptr(o)), f) |
| 8 | +PyType_IsSubtypeFast(t::PyPtr, f::Integer) = |
| 9 | + Cint(!iszero(UnsafePtr{PyTypeObject}(t).flags[] & f)) |
9 | 10 |
|
10 | | -PyType_IsSubtypeFast(t, f::Integer) = |
11 | | - Base.GC.@preserve t Cint(!iszero(UnsafePtr{PyTypeObject}(asptr(t)).flags[] & f)) |
| 11 | +PyMemoryView_GET_BUFFER(m::PyPtr) = Ptr{Py_buffer}(UnsafePtr{PyMemoryViewObject}(m).view) |
12 | 12 |
|
13 | | -PyMemoryView_GET_BUFFER(m) = Base.GC.@preserve m Ptr{Py_buffer}(UnsafePtr{PyMemoryViewObject}(asptr(m)).view) |
14 | | - |
15 | | -PyType_CheckBuffer(t) = Base.GC.@preserve t begin |
16 | | - p = UnsafePtr{PyTypeObject}(asptr(t)).as_buffer[] |
| 13 | +PyType_CheckBuffer(t::PyPtr) = begin |
| 14 | + p = UnsafePtr{PyTypeObject}(t).as_buffer[] |
17 | 15 | return p != C_NULL && p.get[!] != C_NULL |
18 | 16 | end |
19 | 17 |
|
20 | | -PyObject_CheckBuffer(o) = Base.GC.@preserve o PyType_CheckBuffer(Py_Type(asptr(o))) |
| 18 | +PyObject_CheckBuffer(o::PyPtr) = PyType_CheckBuffer(Py_Type(o)) |
21 | 19 |
|
22 | | -PyObject_GetBuffer(_o, b, flags) = Base.GC.@preserve _o begin |
23 | | - o = asptr(_o) |
| 20 | +PyObject_GetBuffer(o::PyPtr, b, flags) = begin |
24 | 21 | p = UnsafePtr{PyTypeObject}(Py_Type(o)).as_buffer[] |
25 | 22 | if p == C_NULL || p.get[!] == C_NULL |
26 | 23 | PyErr_SetString( |
@@ -64,8 +61,8 @@ function PyOS_RunInputHook() |
64 | 61 | end |
65 | 62 | end |
66 | 63 |
|
67 | | -function PySimpleObject_GetValue(::Type{T}, o) where {T} |
68 | | - Base.GC.@preserve o UnsafePtr{PySimpleObject{T}}(asptr(o)).value[!] |
| 64 | +function PySimpleObject_GetValue(::Type{T}, o::PyPtr) where {T} |
| 65 | + UnsafePtr{PySimpleObject{T}}(o).value[!] |
69 | 66 | end |
70 | 67 |
|
71 | 68 | # FAST REFCOUNTING |
|
0 commit comments