File tree Expand file tree Collapse file tree 1 file changed +5
-3
lines changed Expand file tree Collapse file tree 1 file changed +5
-3
lines changed Original file line number Diff line number Diff line change @@ -163,15 +163,17 @@ _PyFrame_GetLocalsArray(_PyInterpreterFrame *frame)
163163 return frame -> localsplus ;
164164}
165165
166- /* Fetches the stack pointer, and sets stackpointer to NULL.
167- Having stackpointer == NULL ensures that invalid
168- values are not visible to the cycle GC. */
166+ // Fetches the stack pointer, and (on debug builds) sets stackpointer to NULL.
167+ // Having stackpointer == NULL makes it easier to catch missing stack pointer
168+ // spills/restores (which could expose invalid values to the GC) using asserts.
169169static inline _PyStackRef *
170170_PyFrame_GetStackPointer (_PyInterpreterFrame * frame )
171171{
172172 assert (frame -> stackpointer != NULL );
173173 _PyStackRef * sp = frame -> stackpointer ;
174+ #ifndef NDEBUG
174175 frame -> stackpointer = NULL ;
176+ #endif
175177 return sp ;
176178}
177179
You can’t perform that action at this time.
0 commit comments