Branch data Line data Source code
1 : : /*[clinic input] 2 : : preserve 3 : : [clinic start generated code]*/ 4 : : 5 : : static int 6 : : sock_initobj_impl(PySocketSockObject *self, int family, int type, int proto, 7 : : PyObject *fdobj); 8 : : 9 : : static int 10 : 147437 : sock_initobj(PyObject *self, PyObject *args, PyObject *kwargs) 11 : : { 12 : 147437 : int return_value = -1; 13 : : static const char * const _keywords[] = {"family", "type", "proto", "fileno", NULL}; 14 : : static _PyArg_Parser _parser = {NULL, _keywords, "socket", 0}; 15 : : PyObject *argsbuf[4]; 16 : : PyObject * const *fastargs; 17 : 147437 : Py_ssize_t nargs = PyTuple_GET_SIZE(args); 18 [ - + ]: 147437 : Py_ssize_t noptargs = nargs + (kwargs ? PyDict_GET_SIZE(kwargs) : 0) - 0; 19 : 147437 : int family = -1; 20 : 147437 : int type = -1; 21 : 147437 : int proto = -1; 22 : 147437 : PyObject *fdobj = NULL; 23 : : 24 [ + - + - : 147437 : fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 0, 4, 0, argsbuf); + - + - ] 25 [ - + ]: 147437 : if (!fastargs) { 26 : 0 : goto exit; 27 : : } 28 [ - + ]: 147437 : if (!noptargs) { 29 : 0 : goto skip_optional_pos; 30 : : } 31 [ + - ]: 147437 : if (fastargs[0]) { 32 : 147437 : family = _PyLong_AsInt(fastargs[0]); 33 [ + + + + ]: 147437 : if (family == -1 && PyErr_Occurred()) { 34 : 2 : goto exit; 35 : : } 36 [ - + ]: 147435 : if (!--noptargs) { 37 : 0 : goto skip_optional_pos; 38 : : } 39 : : } 40 [ + - ]: 147435 : if (fastargs[1]) { 41 : 147435 : type = _PyLong_AsInt(fastargs[1]); 42 [ + + - + ]: 147435 : if (type == -1 && PyErr_Occurred()) { 43 : 0 : goto exit; 44 : : } 45 [ + + ]: 147435 : if (!--noptargs) { 46 : 1 : goto skip_optional_pos; 47 : : } 48 : : } 49 [ + - ]: 147434 : if (fastargs[2]) { 50 : 147434 : proto = _PyLong_AsInt(fastargs[2]); 51 [ + + - + ]: 147434 : if (proto == -1 && PyErr_Occurred()) { 52 : 0 : goto exit; 53 : : } 54 [ - + ]: 147434 : if (!--noptargs) { 55 : 0 : goto skip_optional_pos; 56 : : } 57 : : } 58 : 147434 : fdobj = fastargs[3]; 59 : 147435 : skip_optional_pos: 60 : 147435 : return_value = sock_initobj_impl((PySocketSockObject *)self, family, type, proto, fdobj); 61 : : 62 : 147437 : exit: 63 : 147437 : return return_value; 64 : : } 65 : : /*[clinic end generated code: output=2433d6ac51bc962a input=a9049054013a1b77]*/