17db96d56Sopenharmony_ci/*[clinic input] 27db96d56Sopenharmony_cipreserve 37db96d56Sopenharmony_ci[clinic start generated code]*/ 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciPyDoc_STRVAR(tb_new__doc__, 67db96d56Sopenharmony_ci"TracebackType(tb_next, tb_frame, tb_lasti, tb_lineno)\n" 77db96d56Sopenharmony_ci"--\n" 87db96d56Sopenharmony_ci"\n" 97db96d56Sopenharmony_ci"Create a new traceback object."); 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_cistatic PyObject * 127db96d56Sopenharmony_citb_new_impl(PyTypeObject *type, PyObject *tb_next, PyFrameObject *tb_frame, 137db96d56Sopenharmony_ci int tb_lasti, int tb_lineno); 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_cistatic PyObject * 167db96d56Sopenharmony_citb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) 177db96d56Sopenharmony_ci{ 187db96d56Sopenharmony_ci PyObject *return_value = NULL; 197db96d56Sopenharmony_ci static const char * const _keywords[] = {"tb_next", "tb_frame", "tb_lasti", "tb_lineno", NULL}; 207db96d56Sopenharmony_ci static _PyArg_Parser _parser = {NULL, _keywords, "TracebackType", 0}; 217db96d56Sopenharmony_ci PyObject *argsbuf[4]; 227db96d56Sopenharmony_ci PyObject * const *fastargs; 237db96d56Sopenharmony_ci Py_ssize_t nargs = PyTuple_GET_SIZE(args); 247db96d56Sopenharmony_ci PyObject *tb_next; 257db96d56Sopenharmony_ci PyFrameObject *tb_frame; 267db96d56Sopenharmony_ci int tb_lasti; 277db96d56Sopenharmony_ci int tb_lineno; 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ci fastargs = _PyArg_UnpackKeywords(_PyTuple_CAST(args)->ob_item, nargs, kwargs, NULL, &_parser, 4, 4, 0, argsbuf); 307db96d56Sopenharmony_ci if (!fastargs) { 317db96d56Sopenharmony_ci goto exit; 327db96d56Sopenharmony_ci } 337db96d56Sopenharmony_ci tb_next = fastargs[0]; 347db96d56Sopenharmony_ci if (!PyObject_TypeCheck(fastargs[1], &PyFrame_Type)) { 357db96d56Sopenharmony_ci _PyArg_BadArgument("TracebackType", "argument 'tb_frame'", (&PyFrame_Type)->tp_name, fastargs[1]); 367db96d56Sopenharmony_ci goto exit; 377db96d56Sopenharmony_ci } 387db96d56Sopenharmony_ci tb_frame = (PyFrameObject *)fastargs[1]; 397db96d56Sopenharmony_ci tb_lasti = _PyLong_AsInt(fastargs[2]); 407db96d56Sopenharmony_ci if (tb_lasti == -1 && PyErr_Occurred()) { 417db96d56Sopenharmony_ci goto exit; 427db96d56Sopenharmony_ci } 437db96d56Sopenharmony_ci tb_lineno = _PyLong_AsInt(fastargs[3]); 447db96d56Sopenharmony_ci if (tb_lineno == -1 && PyErr_Occurred()) { 457db96d56Sopenharmony_ci goto exit; 467db96d56Sopenharmony_ci } 477db96d56Sopenharmony_ci return_value = tb_new_impl(type, tb_next, tb_frame, tb_lasti, tb_lineno); 487db96d56Sopenharmony_ci 497db96d56Sopenharmony_ciexit: 507db96d56Sopenharmony_ci return return_value; 517db96d56Sopenharmony_ci} 527db96d56Sopenharmony_ci/*[clinic end generated code: output=403778d7af5ebef9 input=a9049054013a1b77]*/ 53