On Wed Jun 4 06:18:31 2025 +0000, Rémi Bernon wrote:
changed this line in [version 3 of the diff](/wine/wine/-/merge_requests/8061/diffs?diff_id=182623&start_sha=73da53a27018971cd508d097029ba72bab58d6d0#65bc214e6d025c53e466128853d07366b287855b_158_156)
I removed the check for object invalidation, this now assumes that window objects are not invalidated and moved somewhere else in the SHM during their lifetime, and uses a similar logic as shared desktop for instance.
The shared object pointer is not cached right now, because reading the handle entry should be lightweight enough, but we could otherwise keep it in the client-side objects array for instance.
I'm not sure it's a good idea to keep it in the WND struct because it would then require locking the user lock to access them, and we would still need to keep them somewhere for other process objects.
Also, reading from the shared memory always requires using the seq lock for data consistency, and we cannot just read the data directly from a shared object pointer.