@@ -153,3 +153,48 @@ PyCapsule_SetContext:distinct:
153153# Import - looks up a capsule from a module attribute and
154154# calls PyCapsule_GetPointer; may call arbitrary code
155155PyCapsule_Import:compatible:
156+
157+ # Tuple objects
158+
159+ # Creation - pure allocation, no shared state
160+ PyTuple_New:atomic:
161+ PyTuple_FromArray:atomic:
162+ PyTuple_Pack:atomic:
163+
164+ # Size - tuples are immutable so size never changes
165+ PyTuple_Size:atomic:
166+ PyTuple_GET_SIZE:atomic:
167+
168+ # Borrowed-reference lookups - tuples are immutable so items
169+ # never change, however the tuple must be kept alive while using the borrowed reference
170+ PyTuple_GetItem:compatible:
171+ PyTuple_GET_ITEM:compatible:
172+
173+ # Slice - creates a new tuple from an existing tuple
174+ PyTuple_GetSlice:atomic:
175+
176+ # SetItem - only usable on tuples with refcount 1
177+ PyTuple_SetItem:compatible:
178+ PyTuple_SET_ITEM:compatible:
179+
180+ # Resize - only usable on tuples with refcount 1
181+ _PyTuple_Resize:compatible:
182+
183+ # Struct Sequence objects
184+
185+ # Creation
186+ PyStructSequence_NewType:atomic:
187+ PyStructSequence_New:atomic:
188+
189+ # Initialization - modifies the type object in place
190+ PyStructSequence_InitType:distinct:
191+ PyStructSequence_InitType2:distinct:
192+
193+ # Borrowed-reference lookups - same as tuple items
194+ PyStructSequence_GetItem:compatible:
195+ PyStructSequence_GET_ITEM:compatible:
196+
197+ # SetItem - only for filling in brand new instances
198+ PyStructSequence_SetItem:compatible:
199+ PyStructSequence_SET_ITEM:compatible:
200+
0 commit comments