On Mon Sep 2 06:13:48 2024 +0000, Rémi Bernon wrote:
> I don't know what @DodoGTA meant but it's actually **not** considered
> good practice to push changes unnecessarily.
> Rebasing MRs should only be done when they actually conflict (the Gitlab
> indication on top is often misleading), as rebasing makes Gitlab
> "Compare with previous version" feature much less useful.
I meant only doing that when an MR update is actually needed (because merge commits aren't a good idea)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6352#note_80667
I don't know what @DodoGTA meant but it's actually **not** considered good practice to push changes unnecessarily.
Rebasing MRs should only be done when they actually conflict (the Gitlab indication on top is often misleading), as rebasing makes Gitlab "Compare with previous version" feature much less useful.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6352#note_80661
> If you're referring to the new RPC structs, I understand. That being said, my one concern is whether stuffing the file path into `dbch_data` could potentially break some code out there that uses `dbch_size` to guess which event is being sent (something like `if (n->dbch_size == (sizeof(DEV_BROADCAST_HANDLE) + sizeof(BTH_RADIO_IN_RANGE)`). It is an extremely stupid way to check for the event, but I'm not sure whether someone doing this can be safely discounted. I'll write some test code to see if this can be done on Windows to begin with.
But as far as I understand, as `plugplay_send_event` is completely non-standard, these structs are only ever sent internally? So you don't really need to bother about abusing some fields or size for the internal notification, you even considered using custom structs which you would convert back and forth on both sides.
Simply put whatever you need in the DEV_BROADCAST_HANDLE struct you send, using any unused field, or some other way, to put the device path in it if you need that, and just make sure you fix it up to a correct DEV_BROADCAST_HANDLE struct before calling the notification callback?
Although I don't feel like it's even worth it you could even use a custom DEV_BROADCAST_HDR based struct, or extend DEV_BROADCAST_HANDLE with a custom derived struct which has an explicit device path, for the internal messages. I just don't think you need to change the DEV_BROADCAST_HDR base, or change the DEV_BROADCAST_DEVICEINTERFACE code in any significant way for this.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6315#note_80622
On Sat Aug 31 16:30:43 2024 +0000, Elizabeth Figura wrote:
> Sorry it's taken me so long to get to this, but 3/4 seems suspicious.
> I'd think BroadcastDeviceNotification() [or SendMessageNotify() or
> whatever it calls internally] should be making a copy of the message
> data itself. Are we not doing that? Should we be doing that instead?
Yeah, I might be wrong here. A quick inspection of the code does suggest that we do make copies in `(un)pack_message`. MSDN's documentation for `SendNotifyMessageW`\[1\] warned that messages containing pointers could not be sent as they would result in access to a dangling reference, which is what prompted me to write 3/4. However, `DEV_BROADCAST_DEVICEINTERFACE` messages don't contain any pointers, so this doesn't apply here.
\[1\] https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-send…
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6315#note_80621