• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef Py_INTERNAL_DICT_STATE_H
2 #define Py_INTERNAL_DICT_STATE_H
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
6 
7 #ifndef Py_BUILD_CORE
8 #  error "this header requires Py_BUILD_CORE define"
9 #endif
10 
11 #define DICT_MAX_WATCHERS 8
12 #define DICT_WATCHED_MUTATION_BITS 4
13 
14 struct _Py_dict_state {
15     /*Global counter used to set ma_version_tag field of dictionary.
16      * It is incremented each time that a dictionary is created and each
17      * time that a dictionary is modified. */
18     uint64_t global_version;
19     uint32_t next_keys_version;
20     PyDict_WatchCallback watchers[DICT_MAX_WATCHERS];
21 };
22 
23 #define _dict_state_INIT \
24     { \
25         .next_keys_version = 2, \
26     }
27 
28 
29 #ifdef __cplusplus
30 }
31 #endif
32 #endif   /* !Py_INTERNAL_DICT_STATE_H */
33