@@ -40,26 +40,26 @@ PyStackRef_IsDeferred(_PyStackRef ref)
40
40
41
41
// Gets a PyObject * from a _PyStackRef
42
42
static inline PyObject *
43
- PyStackRef_To_PyObject_Borrow (_PyStackRef tagged )
43
+ PyStackRef_AsPyObjectBorrow (_PyStackRef tagged )
44
44
{
45
45
PyObject * cleared = ((PyObject * )((tagged ).bits & (~Py_TAG )));
46
46
return cleared ;
47
47
}
48
48
49
49
// Converts a PyObject * to a PyStackRef, stealing the reference
50
50
static inline _PyStackRef
51
- _PyObject_To_StackRef_Steal (PyObject * obj )
51
+ _PyStackRef_FromPyObjectSteal (PyObject * obj )
52
52
{
53
53
// Make sure we don't take an already tagged value.
54
54
assert (((uintptr_t )obj & Py_TAG ) == 0 );
55
55
int tag = (obj == NULL || _Py_IsImmortal (obj )) ? (Py_TAG_DEFERRED ) : Py_TAG_PTR ;
56
56
return ((_PyStackRef ){.bits = ((uintptr_t )(obj )) | tag });
57
57
}
58
- #define PyObject_To_StackRef_Steal (obj ) _PyObject_To_StackRef_Steal (_PyObject_CAST(obj))
58
+ #define PyStackRef_FromPyObjectSteal (obj ) _PyStackRef_FromPyObjectSteal (_PyObject_CAST(obj))
59
59
60
60
// Converts a PyObject * to a PyStackRef, with a new reference
61
61
static inline _PyStackRef
62
- PyObject_To_StackRef_New (PyObject * obj )
62
+ PyStackRef_FromPyObjectNew (PyObject * obj )
63
63
{
64
64
// Make sure we don't take an already tagged value.
65
65
assert (((uintptr_t )obj & Py_TAG ) == 0 );
@@ -72,53 +72,44 @@ PyObject_To_StackRef_New(PyObject *obj)
72
72
return (_PyStackRef ){ .bits = (uintptr_t )(Py_NewRef (obj )) | Py_TAG_PTR };
73
73
}
74
74
}
75
- #define PyObject_To_StackRef_New (obj ) PyObject_To_StackRef_New (_PyObject_CAST(obj))
75
+ #define PyStackRef_FromPyObjectNew (obj ) PyStackRef_FromPyObjectNew (_PyObject_CAST(obj))
76
76
77
77
78
78
// Converts a PyStackRef back to a PyObject *, converting deferred references
79
79
// to new references.
80
80
static inline PyObject *
81
- PyStackRef_To_PyObject_New (_PyStackRef tagged )
81
+ PyStackRef_AsPyObjectNew (_PyStackRef tagged )
82
82
{
83
83
if (!PyStackRef_IsNull (tagged ) && PyStackRef_IsDeferred (tagged )) {
84
84
assert (PyStackRef_IsNull (tagged ) ||
85
- _Py_IsImmortal (PyStackRef_To_PyObject_Borrow (tagged )));
86
- return Py_NewRef (PyStackRef_To_PyObject_Borrow (tagged ));
85
+ _Py_IsImmortal (PyStackRef_AsPyObjectBorrow (tagged )));
86
+ return Py_NewRef (PyStackRef_AsPyObjectBorrow (tagged ));
87
87
}
88
- return PyStackRef_To_PyObject_Borrow (tagged );
88
+ return PyStackRef_AsPyObjectBorrow (tagged );
89
89
}
90
90
91
91
static inline void
92
92
_Py_untag_stack_borrowed (PyObject * * dst , const _PyStackRef * src , size_t length )
93
93
{
94
94
for (size_t i = 0 ; i < length ; i ++ ) {
95
- dst [i ] = PyStackRef_To_PyObject_Borrow (src [i ]);
95
+ dst [i ] = PyStackRef_AsPyObjectBorrow (src [i ]);
96
96
}
97
97
}
98
98
99
99
static inline void
100
100
_Py_untag_stack_steal (PyObject * * dst , const _PyStackRef * src , size_t length )
101
101
{
102
102
for (size_t i = 0 ; i < length ; i ++ ) {
103
- dst [i ] = PyStackRef_To_PyObject_New (src [i ]);
103
+ dst [i ] = PyStackRef_AsPyObjectNew (src [i ]);
104
104
}
105
105
}
106
106
107
-
108
- #define PyStackRef_XSETREF (dst , src ) \
107
+ #define PyStackRef_SET (dst , src ) \
109
108
do { \
110
109
_PyStackRef *_tmp_dst_ptr = &(dst); \
111
110
_PyStackRef _tmp_old_dst = (*_tmp_dst_ptr); \
112
111
*_tmp_dst_ptr = (src); \
113
- PyStackRef_DECREF(_tmp_old_dst); \
114
- } while (0)
115
-
116
- #define PyStackRef_SETREF (dst , src ) \
117
- do { \
118
- _PyStackRef *_tmp_dst_ptr = &(dst); \
119
- _PyStackRef _tmp_old_dst = (*_tmp_dst_ptr); \
120
- *_tmp_dst_ptr = (src); \
121
- PyStackRef_DECREF(_tmp_old_dst); \
112
+ PyStackRef_CLOSE(_tmp_old_dst); \
122
113
} while (0)
123
114
124
115
#define PyStackRef_CLEAR (op ) \
@@ -127,48 +118,40 @@ _Py_untag_stack_steal(PyObject **dst, const _PyStackRef *src, size_t length)
127
118
_PyStackRef _tmp_old_op = (*_tmp_op_ptr); \
128
119
if (!PyStackRef_IsNull(_tmp_old_op)) { \
129
120
*_tmp_op_ptr = Py_STACKREF_NULL; \
130
- PyStackRef_DECREF (_tmp_old_op); \
121
+ PyStackRef_CLOSE (_tmp_old_op); \
131
122
} \
132
123
} while (0)
133
124
134
125
static inline void
135
- PyStackRef_DECREF (_PyStackRef tagged )
126
+ PyStackRef_CLOSE (_PyStackRef tagged )
136
127
{
137
128
if (PyStackRef_IsDeferred (tagged )) {
138
129
// No assert for being immortal or deferred here.
139
130
// The GC unsets deferred objects right before clearing.
140
131
return ;
141
132
}
142
- Py_DECREF (PyStackRef_To_PyObject_Borrow (tagged ));
133
+ Py_DECREF (PyStackRef_AsPyObjectBorrow (tagged ));
143
134
}
144
135
145
136
static inline void
146
- PyStackRef_INCREF (_PyStackRef tagged )
137
+ PyStackRef_DUP (_PyStackRef tagged )
147
138
{
148
139
if (PyStackRef_IsDeferred (tagged )) {
149
140
assert (PyStackRef_IsNull (tagged ) ||
150
- _Py_IsImmortal (PyStackRef_To_PyObject_Borrow (tagged )));
141
+ _Py_IsImmortal (PyStackRef_AsPyObjectBorrow (tagged )));
151
142
return ;
152
143
}
153
- Py_INCREF (PyStackRef_To_PyObject_Borrow (tagged ));
144
+ Py_INCREF (PyStackRef_AsPyObjectBorrow (tagged ));
154
145
}
155
146
156
147
157
148
static inline _PyStackRef
158
- PyStackRef_NewRef (_PyStackRef obj )
149
+ PyStackRef_DUPNEW (_PyStackRef obj )
159
150
{
160
- PyStackRef_INCREF (obj );
151
+ PyStackRef_DUP (obj );
161
152
return obj ;
162
153
}
163
154
164
- static inline _PyStackRef
165
- PyStackRef_XNewRef (_PyStackRef obj )
166
- {
167
- if (PyStackRef_IsNull (obj )) {
168
- return obj ;
169
- }
170
- return PyStackRef_NewRef (obj );
171
- }
172
155
173
156
#ifdef __cplusplus
174
157
}
0 commit comments