Skip to content

Commit f86bda0

Browse files
committed
PyObject_CheckBuffer is not exported in older python versions.
1 parent 55bc997 commit f86bda0

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

Source/PythonEngine.pas

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1651,7 +1651,6 @@ TPythonInterface=class(TDynamicDll)
16511651
PyObject_GC_Del:procedure (ob:PPyObject); cdecl;
16521652
PyObject_GC_Track:procedure (ob:PPyObject); cdecl;
16531653
PyObject_GC_UnTrack:procedure (ob:PPyObject); cdecl;
1654-
PyObject_CheckBuffer: function(obj: PPyObject): Integer; cdecl;
16551654
PyObject_GetBuffer: function(obj: PPyObject; view: PPy_buffer; flags: Integer): Integer; cdecl;
16561655
PyObject_CopyData: function (dest: PPyObject; src: PPyObject): Integer; cdecl;
16571656
PySequence_Check:function (ob:PPyObject):integer; cdecl;
@@ -1846,6 +1845,7 @@ TPythonInterface=class(TDynamicDll)
18461845
function PyUnicode_CheckExact( obj : PPyObject ) : Boolean;
18471846
function PyType_IS_GC(t : PPyTypeObject ) : Boolean;
18481847
function PyObject_IS_GC( obj : PPyObject ) : Boolean;
1848+
function PyObject_CheckBuffer(obj: PPyObject): Boolean;
18491849
function PyWeakref_Check( obj : PPyObject ) : Boolean;
18501850
function PyWeakref_CheckRef( obj : PPyObject ) : Boolean;
18511851
function PyWeakref_CheckProxy( obj : PPyObject ) : Boolean;
@@ -3929,7 +3929,6 @@ procedure TPythonInterface.MapDll;
39293929
PyObject_GC_Del := Import('PyObject_GC_Del');
39303930
PyObject_GC_Track := Import('PyObject_GC_Track');
39313931
PyObject_GC_UnTrack := Import('PyObject_GC_UnTrack');
3932-
PyObject_CheckBuffer := Import('PyObject_CheckBuffer');
39333932
PyObject_GetBuffer := Import('PyObject_GetBuffer');
39343933
PyObject_CopyData := Import('PyObject_CopyData');
39353934
PySequence_Check := Import('PySequence_Check');
@@ -4243,6 +4242,12 @@ function TPythonInterface.PyObject_IS_GC( obj : PPyObject ) : Boolean;
42434242
(not Assigned(obj^.ob_type^.tp_is_gc) or (obj^.ob_type^.tp_is_gc(obj) = 1));
42444243
end;
42454244

4245+
function TPythonInterface.PyObject_CheckBuffer(obj: PPyObject): Boolean;
4246+
begin
4247+
Result := Assigned(obj^.ob_type^.tp_as_buffer) and
4248+
Assigned(obj^.ob_type^.tp_as_buffer.bf_getbuffer);
4249+
end;
4250+
42464251
function TPythonInterface.PyWeakref_Check( obj : PPyObject ) : Boolean;
42474252
begin
42484253
Result := Assigned( obj ) and (PyWeakref_CheckRef(obj) or PyWeakref_CheckProxy(obj));

0 commit comments

Comments
 (0)