Skip to content

Fix MFR registration and shared plugin state#110

Merged
virtualritz merged 2 commits into
virtualritz:masterfrom
Dragoy:dragoy/mfr-shared-global-state
Jul 12, 2026
Merged

Fix MFR registration and shared plugin state#110
virtualritz merged 2 commits into
virtualritz:masterfrom
Dragoy:dragoy/mfr-shared-global-state

Conversation

@Dragoy

@Dragoy Dragoy commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • pass Adobe's callback registration reserved value 8 without changing the embedded PiPL AE_Reserved_Info value
  • expose shared global state to MFR callbacks instead of manufacturing concurrent mutable references
  • remove the redundant sequence reference from PluginState, which could alias the mutable instance passed to instance callbacks
  • publish parameter metadata safely and require the complete shared GlobalData to be Sync
  • require MFR sequence state to be Send + Sync and update all threaded examples

Migration note

For effects that set SupportsThreadedRendering, AdobePluginGlobal::handle_command now receives &self. Mutable global fields must use interior synchronization. PluginState no longer contains sequence; instance callbacks already receive the sequence instance as self.

Verification

  • cargo check --workspace
  • cargo test --workspace
  • regression test separating PluginDataEntryFunction2 reserved metadata from the PiPL property
  • downstream Tracery MFR build and all-feature checks

The callback value and PiPL property are separate Adobe SDK fields: the callback uses AE_RESERVED_INFO = 8, while AE_Reserved_Info in the PiPL may remain 0.

@Dragoy Dragoy force-pushed the dragoy/mfr-shared-global-state branch from cc33e39 to 29e70db Compare July 11, 2026 09:08
@Dragoy Dragoy changed the title Make MFR plugin state thread-safe Fix MFR registration and shared plugin state Jul 11, 2026
@Dragoy

Dragoy commented Jul 11, 2026

Copy link
Copy Markdown
Contributor Author

@AdrianEddy

@virtualritz virtualritz merged commit d628aca into virtualritz:master Jul 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants