Skip to content

Commit 474a587

Browse files
committed
Update commented out assertion
1 parent bf68eb9 commit 474a587

File tree

6 files changed

+20
-12
lines changed

6 files changed

+20
-12
lines changed

Include/internal/pycore_stackref.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,12 @@ PyStackRef_IsNone(_PyStackRef ref)
101101
return _Py_stackref_get_object(ref) == Py_None;
102102
}
103103

104+
static inline bool
105+
PyStackRef_IsBorrowed(_PyStackRef ref)
106+
{
107+
return false;
108+
}
109+
104110
static inline PyObject *
105111
_PyStackRef_AsPyObjectBorrow(_PyStackRef ref, const char *filename, int linenumber)
106112
{
@@ -220,7 +226,7 @@ _PyStackRef_FromPyObjectSteal(PyObject *obj)
220226
# define PyStackRef_FromPyObjectSteal(obj) _PyStackRef_FromPyObjectSteal(_PyObject_CAST(obj))
221227

222228
static inline bool
223-
_PyStackRef_IsBorrowed(_PyStackRef stackref)
229+
PyStackRef_IsBorrowed(_PyStackRef stackref)
224230
{
225231
if (PyStackRef_IsNull(stackref) || !PyStackRef_IsDeferred(stackref)) {
226232
return false;
@@ -233,7 +239,7 @@ _PyStackRef_IsBorrowed(_PyStackRef stackref)
233239
static inline _PyStackRef
234240
_PyStackRef_NewIfBorrowedOrSteal(_PyStackRef stackref)
235241
{
236-
if (_PyStackRef_IsBorrowed(stackref)) {
242+
if (PyStackRef_IsBorrowed(stackref)) {
237243
PyObject *obj = PyStackRef_AsPyObjectBorrow(stackref);
238244
return (_PyStackRef){ .bits = (uintptr_t)(Py_NewRef(obj)) | Py_TAG_PTR };
239245
}
@@ -310,6 +316,7 @@ static const _PyStackRef PyStackRef_NULL = { .bits = 0 };
310316
#define PyStackRef_True ((_PyStackRef){.bits = (uintptr_t)&_Py_TrueStruct })
311317
#define PyStackRef_False ((_PyStackRef){.bits = ((uintptr_t)&_Py_FalseStruct) })
312318
#define PyStackRef_None ((_PyStackRef){.bits = ((uintptr_t)&_Py_NoneStruct) })
319+
#define PyStackRef_IsBorrowed(stackref) false
313320

314321
#define PyStackRef_AsPyObjectBorrow(stackref) ((PyObject *)(stackref).bits)
315322

Programs/test_frozenmain.h

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python/bytecodes.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -766,7 +766,7 @@ dummy_func(
766766
* only the locals reference, so PyUnicode_Append knows
767767
* that the string is safe to mutate.
768768
*/
769-
// assert(Py_REFCNT(left_o) >= 2);
769+
assert(Py_REFCNT(left_o) >= 2 || PyStackRef_IsBorrowed(left));
770770
PyStackRef_CLOSE_SPECIALIZED(left, _PyUnicode_ExactDealloc);
771771
DEAD(left);
772772
PyObject *temp = PyStackRef_AsPyObjectSteal(*target_local);

Python/executor_cases.c.h

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python/generated_cases.c.h

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Tools/cases_generator/analyzer.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -595,6 +595,7 @@ def has_error_without_pop(op: parser.CodeDef) -> bool:
595595
"PyStackRef_FromPyObjectImmortal",
596596
"PyStackRef_FromPyObjectNew",
597597
"PyStackRef_FromPyObjectSteal",
598+
"PyStackRef_IsBorrowed",
598599
"PyStackRef_IsExactly",
599600
"PyStackRef_IsNone",
600601
"PyStackRef_IsTrue",

0 commit comments

Comments
 (0)