PyObject_AsReadBuffer porting

PyObject_AsReadBuffer porting

本文关键字:porting AsReadBuffer PyObject      更新时间:2023-10-16

众所周知,int PyObject_AsReadBuffer(PyObject *obj, const void **buffer, Py_ssize_t *buffer_len)已从v2.5更改,v2.5使用int*类型进行buffer_len。如果我想将程序从 v2.4 移植到 v2.7,如果我只是用 Py_ssize_t 替换int有任何问题吗?

样本:2.4 版

    int bufferLength = 0;
    const void* buffer = NULL;
    PyObject_AsReadBuffer(pyObj, &buffer, &buffer_len);  //pyObj is assigned in somewhere

2.7 版

    Py_ssize_t bufferLength = 0;
    const void* buffer = NULL;
    PyObject_AsReadBuffer(pyObj, &buffer, &buffer_len);  //pyObj is assigned in somewhere

在哪里可以找到此函数的源代码?

没问题,只需将int替换为Py_ssize_t即可。