Use PyBytes_* Python CAPI functions
This removes any doubts about what type of string is in use.
This commit is contained in:
parent
c82390941d
commit
8b4b8ddc57
1 changed files with 6 additions and 3 deletions
|
|
@ -1,4 +1,7 @@
|
||||||
%module hammer
|
%module hammer
|
||||||
|
%begin %{
|
||||||
|
#define SWIG_PYTHON_STRICT_BYTE_CHAR
|
||||||
|
%}
|
||||||
|
|
||||||
%nodefaultctor;
|
%nodefaultctor;
|
||||||
|
|
||||||
|
|
@ -83,11 +86,11 @@
|
||||||
PyErr_SetString(PyExc_ValueError, "Expecting a string");
|
PyErr_SetString(PyExc_ValueError, "Expecting a string");
|
||||||
return NULL;
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
$1 = *(uint8_t*)PyString_AsString($input);
|
$1 = *(uint8_t*)PyBytes_AsString($input);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
%typemap(out) HBytes* {
|
%typemap(out) HBytes* {
|
||||||
$result = PyString_FromStringAndSize((char*)$1->token, $1->len);
|
$result = PyBytes_FromStringAndSize((char*)$1->token, $1->len);
|
||||||
}
|
}
|
||||||
%typemap(out) struct HCountedArray_* {
|
%typemap(out) struct HCountedArray_* {
|
||||||
int i;
|
int i;
|
||||||
|
|
@ -187,7 +190,7 @@
|
||||||
return PyObject_CallFunctionObjArgs(_helper_Placeholder, NULL);
|
return PyObject_CallFunctionObjArgs(_helper_Placeholder, NULL);
|
||||||
break;
|
break;
|
||||||
case TT_BYTES:
|
case TT_BYTES:
|
||||||
return PyString_FromStringAndSize((char*)token->token_data.bytes.token, token->token_data.bytes.len);
|
return PyBytes_FromStringAndSize((char*)token->token_data.bytes.token, token->token_data.bytes.len);
|
||||||
case TT_SINT:
|
case TT_SINT:
|
||||||
// TODO: return PyINT if appropriate
|
// TODO: return PyINT if appropriate
|
||||||
return PyLong_FromLong(token->token_data.sint);
|
return PyLong_FromLong(token->token_data.sint);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue