A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/python/cpython/commit/2aaf0c12041bcaadd7f2cc5a54450eefd7a6ff12 below:

Convert Py_INCREF() to static inline function (GH-10079) · python/cpython@2aaf0c1 · GitHub

File tree Expand file treeCollapse file tree 1 file changed

+42

-29

lines changed

Filter options

Expand file treeCollapse file tree 1 file changed

+42

-29

lines changed Original file line number Diff line number Diff line change

@@ -735,11 +735,7 @@ PyAPI_FUNC(Py_ssize_t) _Py_GetRefTotal(void);

735 735

#define _Py_INC_REFTOTAL _Py_RefTotal++

736 736

#define _Py_DEC_REFTOTAL _Py_RefTotal--

737 737

#define _Py_REF_DEBUG_COMMA ,

738 -

#define _Py_CHECK_REFCNT(OP) \

739 -

{ if (((PyObject*)OP)->ob_refcnt < 0) \

740 -

_Py_NegativeRefcount(__FILE__, __LINE__, \

741 -

(PyObject *)(OP)); \

742 -

}

738 + 743 739

/* Py_REF_DEBUG also controls the display of refcounts and memory block

744 740

* allocations at the interactive prompt and at interpreter shutdown

745 741

*/

@@ -748,7 +744,6 @@ PyAPI_FUNC(void) _PyDebug_PrintTotalRefs(void);

748 744

#define _Py_INC_REFTOTAL

749 745

#define _Py_DEC_REFTOTAL

750 746

#define _Py_REF_DEBUG_COMMA

751 -

#define _Py_CHECK_REFCNT(OP) /* a semicolon */;

752 747

#endif /* Py_REF_DEBUG */

753 748 754 749

#ifdef COUNT_ALLOCS

@@ -780,17 +775,21 @@ PyAPI_FUNC(void) _Py_AddToAllObjects(PyObject *, int force);

780 775 781 776

#else

782 777

/* Without Py_TRACE_REFS, there's little enough to do that we expand code

783 -

* inline.

784 -

*/

785 -

#define _Py_NewReference(op) ( \

786 -

(_Py_tracemalloc_config.tracing \

787 -

? _PyTraceMalloc_NewReference(op) \

788 -

: 0), \

789 -

_Py_INC_TPALLOCS(op) _Py_COUNT_ALLOCS_COMMA \

790 -

_Py_INC_REFTOTAL _Py_REF_DEBUG_COMMA \

791 -

Py_REFCNT(op) = 1)

778 +

inline. */

779 +

static inline void _Py_NewReference(PyObject *op)

780 +

{

781 +

if (_Py_tracemalloc_config.tracing) {

782 +

_PyTraceMalloc_NewReference(op);

783 +

}

784 +

_Py_INC_TPALLOCS(op);

785 +

_Py_INC_REFTOTAL;

786 +

Py_REFCNT(op) = 1;

787 +

}

792 788 793 -

#define _Py_ForgetReference(op) _Py_INC_TPFREES(op)

789 +

static inline void _Py_ForgetReference(PyObject *op)

790 +

{

791 +

_Py_INC_TPFREES(op);

792 +

}

794 793 795 794

#ifdef Py_LIMITED_API

796 795

PyAPI_FUNC(void) _Py_Dealloc(PyObject *);

@@ -801,19 +800,33 @@ PyAPI_FUNC(void) _Py_Dealloc(PyObject *);

801 800

#endif

802 801

#endif /* !Py_TRACE_REFS */

803 802 804 -

#define Py_INCREF(op) ( \

805 -

_Py_INC_REFTOTAL _Py_REF_DEBUG_COMMA \

806 -

((PyObject *)(op))->ob_refcnt++)

807 - 808 -

#define Py_DECREF(op) \

809 -

do { \

810 -

PyObject *_py_decref_tmp = (PyObject *)(op); \

811 -

if (_Py_DEC_REFTOTAL _Py_REF_DEBUG_COMMA \

812 -

--(_py_decref_tmp)->ob_refcnt != 0) \

813 -

_Py_CHECK_REFCNT(_py_decref_tmp) \

814 -

else \

815 -

_Py_Dealloc(_py_decref_tmp); \

816 -

} while (0)

803 + 804 +

static inline void _Py_INCREF(PyObject *op)

805 +

{

806 +

_Py_INC_REFTOTAL;

807 +

op->ob_refcnt++;

808 +

}

809 + 810 +

#define Py_INCREF(op) _Py_INCREF((PyObject *)(op))

811 + 812 +

static inline void _Py_DECREF(const char *filename, int lineno,

813 +

PyObject *op)

814 +

{

815 +

_Py_DEC_REFTOTAL;

816 +

if (--op->ob_refcnt != 0) {

817 +

#ifdef Py_REF_DEBUG

818 +

if (op->ob_refcnt < 0) {

819 +

_Py_NegativeRefcount(filename, lineno, op);

820 +

}

821 +

#endif

822 +

}

823 +

else {

824 +

_Py_Dealloc(op);

825 +

}

826 +

}

827 + 828 +

#define Py_DECREF(op) _Py_DECREF(__FILE__, __LINE__, (PyObject *)(op))

829 + 817 830 818 831

/* Safely decref `op` and set `op` to NULL, especially useful in tp_clear

819 832

* and tp_dealloc implementations.

You can’t perform that action at this time.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4