| /*[clinic input] | |
| preserve | |
| [clinic start generated code]*/ | |
| #include "pycore_modsupport.h" // _PyArg_CheckPositional() | |
| PyDoc_STRVAR(_testcapi_float_pack__doc__, | |
| "float_pack($module, size, d, le, /)\n" | |
| "--\n" | |
| "\n" | |
| "Test PyFloat_Pack2(), PyFloat_Pack4() and PyFloat_Pack8()"); | |
| #define _TESTCAPI_FLOAT_PACK_METHODDEF \ | |
| {"float_pack", _PyCFunction_CAST(_testcapi_float_pack), METH_FASTCALL, _testcapi_float_pack__doc__}, | |
| static PyObject * | |
| _testcapi_float_pack_impl(PyObject *module, int size, double d, int le); | |
| static PyObject * | |
| _testcapi_float_pack(PyObject *module, PyObject *const *args, Py_ssize_t nargs) | |
| { | |
| PyObject *return_value = NULL; | |
| int size; | |
| double d; | |
| int le; | |
| if (!_PyArg_CheckPositional("float_pack", nargs, 3, 3)) { | |
| goto exit; | |
| } | |
| size = PyLong_AsInt(args[0]); | |
| if (size == -1 && PyErr_Occurred()) { | |
| goto exit; | |
| } | |
| if (PyFloat_CheckExact(args[1])) { | |
| d = PyFloat_AS_DOUBLE(args[1]); | |
| } | |
| else | |
| { | |
| d = PyFloat_AsDouble(args[1]); | |
| if (d == -1.0 && PyErr_Occurred()) { | |
| goto exit; | |
| } | |
| } | |
| le = PyLong_AsInt(args[2]); | |
| if (le == -1 && PyErr_Occurred()) { | |
| goto exit; | |
| } | |
| return_value = _testcapi_float_pack_impl(module, size, d, le); | |
| exit: | |
| return return_value; | |
| } | |
| PyDoc_STRVAR(_testcapi_float_unpack__doc__, | |
| "float_unpack($module, data, le, /)\n" | |
| "--\n" | |
| "\n" | |
| "Test PyFloat_Unpack2(), PyFloat_Unpack4() and PyFloat_Unpack8()"); | |
| #define _TESTCAPI_FLOAT_UNPACK_METHODDEF \ | |
| {"float_unpack", _PyCFunction_CAST(_testcapi_float_unpack), METH_FASTCALL, _testcapi_float_unpack__doc__}, | |
| static PyObject * | |
| _testcapi_float_unpack_impl(PyObject *module, const char *data, | |
| Py_ssize_t data_length, int le); | |
| static PyObject * | |
| _testcapi_float_unpack(PyObject *module, PyObject *const *args, Py_ssize_t nargs) | |
| { | |
| PyObject *return_value = NULL; | |
| const char *data; | |
| Py_ssize_t data_length; | |
| int le; | |
| if (!PyArg_ParseArray(args, nargs, "y#i:float_unpack", | |
| &data, &data_length, &le)) { | |
| goto exit; | |
| } | |
| return_value = _testcapi_float_unpack_impl(module, data, data_length, le); | |
| exit: | |
| return return_value; | |
| } | |
| /*[clinic end generated code: output=397689b93b97e397 input=a9049054013a1b77]*/ |