+42
-29
lines changedFilter options
+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