Revert "bpo-33418: Add tp_clear for function object (GH-8058)" (GH-15… · python/cpython@ccaea52 (original) (raw)

`@@ -570,31 +570,23 @@ func_new_impl(PyTypeObject *type, PyCodeObject *code, PyObject *globals,

`

570

570

`return (PyObject *)newfunc;

`

571

571

`}

`

572

572

``

573

``

`-

static int

`

574

``

`-

func_clear(PyFunctionObject *op)

`

575

``

`-

{

`

576

``

`-

Py_CLEAR(op->func_code);

`

577

``

`-

Py_CLEAR(op->func_globals);

`

578

``

`-

Py_CLEAR(op->func_module);

`

579

``

`-

Py_CLEAR(op->func_name);

`

580

``

`-

Py_CLEAR(op->func_defaults);

`

581

``

`-

Py_CLEAR(op->func_kwdefaults);

`

582

``

`-

Py_CLEAR(op->func_doc);

`

583

``

`-

Py_CLEAR(op->func_dict);

`

584

``

`-

Py_CLEAR(op->func_closure);

`

585

``

`-

Py_CLEAR(op->func_annotations);

`

586

``

`-

Py_CLEAR(op->func_qualname);

`

587

``

`-

return 0;

`

588

``

`-

}

`

589

``

-

590

573

`static void

`

591

574

`func_dealloc(PyFunctionObject *op)

`

592

575

`{

`

593

576

`_PyObject_GC_UNTRACK(op);

`

594

``

`-

if (op->func_weakreflist != NULL) {

`

``

577

`+

if (op->func_weakreflist != NULL)

`

595

578

`PyObject_ClearWeakRefs((PyObject *) op);

`

596

``

`-

}

`

597

``

`-

(void)func_clear(op);

`

``

579

`+

Py_DECREF(op->func_code);

`

``

580

`+

Py_DECREF(op->func_globals);

`

``

581

`+

Py_XDECREF(op->func_module);

`

``

582

`+

Py_DECREF(op->func_name);

`

``

583

`+

Py_XDECREF(op->func_defaults);

`

``

584

`+

Py_XDECREF(op->func_kwdefaults);

`

``

585

`+

Py_XDECREF(op->func_doc);

`

``

586

`+

Py_XDECREF(op->func_dict);

`

``

587

`+

Py_XDECREF(op->func_closure);

`

``

588

`+

Py_XDECREF(op->func_annotations);

`

``

589

`+

Py_XDECREF(op->func_qualname);

`

598

590

`PyObject_GC_Del(op);

`

599

591

`}

`

600

592

``

`@@ -669,7 +661,7 @@ PyTypeObject PyFunction_Type = {

`

669

661

`Py_TPFLAGS_METHOD_DESCRIPTOR, /* tp_flags */

`

670

662

`func_new__doc__, /* tp_doc */

`

671

663

` (traverseproc)func_traverse, /* tp_traverse */

`

672

``

`-

(inquiry)func_clear, /* tp_clear */

`

``

664

`+

0, /* tp_clear */

`

673

665

`0, /* tp_richcompare */

`

674

666

` offsetof(PyFunctionObject, func_weakreflist), /* tp_weaklistoffset */

`

675

667

`0, /* tp_iter */

`