Python < 3.10 by default uses 'int' type for data+size string types
(s#), unless PY_SSIZE_T_CLEAN is defined - in which case it uses
Py_ssize_t. The former behavior was removed in Python 3.10 and now it's
required to define PY_SSIZE_T_CLEAN before including Python.h, and using
Py_ssize_t for the length argument. The PY_SSIZE_T_CLEAN behavior is
supported since Python 2.5.
Adjust bindings accordingly.
Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
* Copyright (c) 2003-2004, K A Fraser (University of Cambridge)
*/
+#define PY_SSIZE_T_CLEAN
#include <Python.h>
#define XC_WANT_COMPAT_MAP_FOREIGN_API
#include <xenctrl.h>
{
xc_interface *xc_handle;
char *policy;
- uint32_t len;
+ Py_ssize_t len;
int ret;
static char *kwd_list[] = { "policy", NULL };
* Copyright (C) 2005 XenSource Ltd.
*/
+#define PY_SSIZE_T_CLEAN
#include <Python.h>
#include <stdbool.h>
char *thstr;
char *path;
char *data;
- int data_n;
+ Py_ssize_t data_n;
bool result;
if (!xh)