Commit b593d91
committed
Restore _GUARD_KEYS_VERSION in LOAD_ATTR specializations
The 3.14 and 3.15 interpreters were missing the shared-keys version
check in LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES and
LOAD_ATTR_METHOD_WITH_VALUES, so a warmed load site kept returning the
cached class attribute after an instance stored the attribute through
the type's shared keys. This is what breaks SQLAlchemy's deferred
column loads in gh-115.
The restored blocks match what CPython's case generator emits for
these opcodes on 3.14, and the cache entry they read is already
populated: specialize_attr_loadclassattr writes the keys version
whenever META_PYTHON is not defined.1 parent 5f1996a commit b593d91
3 files changed
Lines changed: 157 additions & 4 deletions
File tree
- cinderx
- Interpreter
- 3.14/Includes
- 3.15/Includes
- PythonLib/test_cinderx
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10059 | 10059 | | |
10060 | 10060 | | |
10061 | 10061 | | |
10062 | | - | |
| 10062 | + | |
| 10063 | + | |
| 10064 | + | |
| 10065 | + | |
| 10066 | + | |
| 10067 | + | |
| 10068 | + | |
| 10069 | + | |
| 10070 | + | |
| 10071 | + | |
| 10072 | + | |
| 10073 | + | |
10063 | 10074 | | |
10064 | 10075 | | |
10065 | 10076 | | |
| |||
10242 | 10253 | | |
10243 | 10254 | | |
10244 | 10255 | | |
10245 | | - | |
| 10256 | + | |
| 10257 | + | |
| 10258 | + | |
| 10259 | + | |
| 10260 | + | |
| 10261 | + | |
| 10262 | + | |
| 10263 | + | |
| 10264 | + | |
| 10265 | + | |
| 10266 | + | |
| 10267 | + | |
10246 | 10268 | | |
10247 | 10269 | | |
10248 | 10270 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10240 | 10240 | | |
10241 | 10241 | | |
10242 | 10242 | | |
10243 | | - | |
| 10243 | + | |
| 10244 | + | |
| 10245 | + | |
| 10246 | + | |
| 10247 | + | |
| 10248 | + | |
| 10249 | + | |
| 10250 | + | |
| 10251 | + | |
| 10252 | + | |
| 10253 | + | |
| 10254 | + | |
10244 | 10255 | | |
10245 | 10256 | | |
10246 | 10257 | | |
| |||
10423 | 10434 | | |
10424 | 10435 | | |
10425 | 10436 | | |
10426 | | - | |
| 10437 | + | |
| 10438 | + | |
| 10439 | + | |
| 10440 | + | |
| 10441 | + | |
| 10442 | + | |
| 10443 | + | |
| 10444 | + | |
| 10445 | + | |
| 10446 | + | |
| 10447 | + | |
| 10448 | + | |
10427 | 10449 | | |
10428 | 10450 | | |
10429 | 10451 | | |
| |||
Lines changed: 109 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
0 commit comments