Obtained from: https://src.fedoraproject.org/rpms/libftdi/pull-request/4 --- python/ftdi1.i.orig 2020-07-07 19:32:55 UTC +++ python/ftdi1.i @@ -52,7 +52,7 @@ char * str2charp_size(PyObject* pyObj, int * size) %enddef %feature("autodoc", ftdi_usb_find_all_docstring) ftdi_usb_find_all; %typemap(in,numinputs=0) SWIGTYPE** OUTPUT ($*ltype temp) %{ $1 = &temp; %} -%typemap(argout) SWIGTYPE** OUTPUT %{ $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj((void*)*$1,$*descriptor,0)); %} +%typemap(argout,noblock=1) SWIGTYPE** OUTPUT { $result = SWIG_AppendOutput($result, SWIG_NewPointerObj((void*)*$1,$*descriptor,0)); } %apply SWIGTYPE** OUTPUT { struct ftdi_device_list **devlist }; int ftdi_usb_find_all(struct ftdi_context *ftdi, struct ftdi_device_list **devlist, int vendor, int product); @@ -92,12 +92,12 @@ char * str2charp_size(PyObject* pyObj, int * size) %enddef %feature("autodoc", ftdi_read_data_docstring) ftdi_read_data; %typemap(in,numinputs=1) (unsigned char *buf, int size) %{ $2 = PyInt_AsLong($input);$1 = (unsigned char*)malloc($2*sizeof(char)); %} -%typemap(argout) (unsigned char *buf, int size) %{ +%typemap(argout,noblock=1) (unsigned char *buf, int size) { if(result<0) $2=0; - $result = SWIG_Python_AppendOutput($result, charp2str((char*)$1, $2)); + $result = SWIG_AppendOutput($result, charp2str((char*)$1, $2)); free($1); -%} +} int ftdi_read_data(struct ftdi_context *ftdi, unsigned char *buf, int size); %clear (unsigned char *buf, int size); @@ -119,12 +119,12 @@ char * str2charp_size(PyObject* pyObj, int * size) %enddef %feature("autodoc", ftdi_read_pins_docstring) ftdi_read_pins; %typemap(in,numinputs=0) unsigned char *pins ($*ltype temp) %{ $1 = &temp; %} -%typemap(argout) (unsigned char *pins) %{ $result = SWIG_Python_AppendOutput($result, charp2str((char*)$1, 1)); %} +%typemap(argout,noblock=1) (unsigned char *pins) { $result = SWIG_AppendOutput($result, charp2str((char*)$1, 1)); } int ftdi_read_pins(struct ftdi_context *ftdi, unsigned char *pins); %clear unsigned char *pins; %typemap(in,numinputs=0) unsigned char *latency ($*ltype temp) %{ $1 = &temp; %} -%typemap(argout) (unsigned char *latency) %{ $result = SWIG_Python_AppendOutput($result, charp2str((char*)$1, 1)); %} +%typemap(argout,noblock=1) (unsigned char *latency) { $result = SWIG_AppendOutput($result, charp2str((char*)$1, 1)); } int ftdi_get_latency_timer(struct ftdi_context *ftdi, unsigned char *latency); %clear unsigned char *latency; @@ -137,12 +137,12 @@ char * str2charp_size(PyObject* pyObj, int * size) %clear int* value; %typemap(in,numinputs=1) (unsigned char *buf, int size) %{ $2 = PyInt_AsLong($input);$1 = (unsigned char*)malloc($2*sizeof(char)); %} -%typemap(argout) (unsigned char *buf, int size) %{ +%typemap(argout,noblock=1) (unsigned char *buf, int size) { if(result<0) $2=0; - $result = SWIG_Python_AppendOutput($result, charp2str((char*)$1, $2)); + $result = SWIG_AppendOutput($result, charp2str((char*)$1, $2)); free($1); -%} +} int ftdi_get_eeprom_buf(struct ftdi_context *ftdi, unsigned char * buf, int size); %clear (unsigned char *buf, int size);