You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All right so the problem seems to be that in specifically the case of receiving an event as a client, new_id arguments inside libwayland hold a pointer (the o aka object union member) rather than an int (the n aka new_id union member).
I'm sure this made somebodies code a little simpler, but it causes all manor of problems. We are already doing some shenanigans to account for it in the GDB plugin, but the same can not be said for libwayland's internal WAYLAND_DEBUG code.
It seems to be interpreting the pointer as an int, which means when it prints the object ID it's actually printing an address inside it's own memory. Since we don't have access to it's address space (in the case of a saved log, the process may not even be running anymore), and when the object is used later we only have access to the object ID (not the memory address), there's no way to perfectly match the two.
However, usually objects are created and immediately used. We also have the type, so in most cases we should be able to match up the objects. Actually implementing that within our architecture is challenging. Left for another day.
It seems #27 may not have been solved for this case, failing test on the way.
The text was updated successfully, but these errors were encountered: