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