Repository navigation
Commit b4a63ec
ext/standard: Don't share the unserialize() context with enum autoloaders
Unlike the O: branch, the E: branch looked the class up and evaluated the
case value without BG(serialize_lock). An unserialize() call made by the
autoloader then reused the outer context: the back-references of the outer
payload resolved to the values it created, and its __unserialize() calls
were delayed until the outer call returned.
Closes GH-23981.1 parent e31268f commit b4a63ec
3 files changed
Lines changed: 46 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
| 111 | + | |
| 112 | + | |
111 | 113 | | |
112 | 114 | | |
113 | 115 | | |
| |||
360 | 362 | | |
361 | 363 | | |
362 | 364 | | |
| 365 | + | |
| 366 | + | |
363 | 367 | | |
364 | 368 | | |
365 | 369 | | |
| |||
| 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 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1384 | 1384 | | |
1385 | 1385 | | |
1386 | 1386 | | |
| 1387 | + | |
1387 | 1388 | | |
| 1389 | + | |
1388 | 1390 | | |
1389 | 1391 | | |
1390 | 1392 | | |
| |||
1413 | 1415 | | |
1414 | 1416 | | |
1415 | 1417 | | |
1416 | | - | |
| 1418 | + | |
| 1419 | + | |
| 1420 | + | |
| 1421 | + | |
1417 | 1422 | | |
1418 | 1423 | | |
1419 | 1424 | | |
| |||
0 commit comments