fix(audit L5): unter der Sperre Divis Laufzeit-Caches verwerfen (Options-Cache-Gruppe, GlobalData-/GlobalPreset-Static, et_theme_options) vor raw() und design_rev
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
6e84138979
commit
99c7aab238
@@ -81,6 +81,19 @@ class DesignSystemWriter implements DiviAdapter
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Audit L5: GlobalPreset::get_data() keeps a static copy that can be older than another writer's finished save
|
||||
* (the option cache is dropped by DesignLock). Called under the lock, before reading.
|
||||
*/
|
||||
public function refresh(): void
|
||||
{
|
||||
try {
|
||||
(new \ReflectionProperty(GlobalPreset::class, '_data'))->setValue(null, null);
|
||||
} catch (\ReflectionException) {
|
||||
// Divi without that property: its reads are not cached this way.
|
||||
}
|
||||
}
|
||||
|
||||
/** @return array<array-key, mixed> The stored inventory (GlobalPreset::get_data(), formats §3). */
|
||||
public function presets(): array
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user