typelib has an array size of 2 (eg LibXml_Last), so a lookup
of IID_NULL will result in a lookup of the third index.
--
v4: msxml3: Free IBindCtx on error paths (Coverity)
https://gitlab.winehq.org/wine/wine/-/merge_requests/4073
On Fri Oct 27 00:52:11 2023 +0000, Nikolay Sivov wrote:
> If it's a matter of silencing typelib[LibXml_Last] access warning, just
> change it to LibXml2, and add an assert for tid range in get_typeinfo().
Or maybe just change Last -> LibXml2, without asserts. All the calls are internal, there is more value in keeping this looking close to other modules using the same logic, than trying to fix what can't happen.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4073#note_49942
Nikolay Sivov (@nsivov) commented about dlls/msxml3/httprequest.c:
> if (!(ptr = heap_alloc(size)))
> {
> heap_free(bsc);
> + IBindCtx_Release(pbc);
> return E_OUTOFMEMORY;
> }
It will be a smaller change to move context creation right before it's used.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4073#note_49937
On Thu Oct 19 03:42:38 2023 +0000, Alex Henrie wrote:
> You could change the first element of tid_ids from { &IID_NULL,
> LibXml_Last } to { NULL } to make it more clear that it is never used.
> Or, if we can't come to a consensus, you could mark the warning as a
> false positive in Coverity with a link to this discussion.
If it's a matter of silencing typelib[LibXml_Last] access warning, just change it to LibXml2, and add an assert for tid range in get_typeinfo().
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4073#note_49936
First part of the continuation of the implementation of non-constant offset dereferences (a.k.a. relative addressing) for SM4, now that we use vsir registers in tpf.c.
As a quick recap: while parsing HLSL we are expressing derefs as paths, and then we are lowering these paths into a single offset node (which is closer to the bytecode) using the replace_deref_path_with_offset() pass, right before register allocation.
This first part of the series splits this offset node into 2 parts:
- A constant uint, which will be called hlsl_deref.offset_const.
- A non-hlsl_ir_constant offset node that will only be present when we need relative addressing, that we will end up calling hlsl_deref.offset_rel.
Both these fields will be analog to the ones used in vsir register indexes, vkd3d_shader_register_index.rel_addr and vkd3d_shader_register_index.offset respectively, which is something we need for the second part of this series.
The following patches are in my [nonconst-offsets-8](https://gitlab.winehq.org/fcasas/vkd3d/-/commits/noncon… branch, if something is not clear in this series, it may be worth skimming through them.
Supersedes !229.
--
v3: vkd3d-shader/tpf: Declare indexable temps.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/396
Indeed looks like it may be breaking some of those tests - they depend on the de-synchronizing state via sending faux keyboard events.
I'm able to repro [the line 2238 failure](https://gitlab.winehq.org/wine/wine/-/blob/d9ad68a1ef1bb9288f5f391…. It happens because of EnterNotify + KeymapNotify pair - the child window is destroyed right before setting up state. This creates the EnterNotify message on the parrent and it's racing with our faux keypreses / key state.
While the tests work on Windows but I believe that this change is still valuable as it creates much better experience for the users and we shouldn't just give up on it. We could get rid of the sync on EnterNotify or change the tests to make sure that the other events are flushed and window state has stabilized before we attempt testing.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4126#note_49930
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v24: vkd3d-shader/tpf: Write out 'switch' statements.
vkd3d-shader/hlsl: Add a pass to normalize switch cases blocks.
vkd3d-shader/hlsl: Add a pass to remove unreachable code.
vkd3d-shader/hlsl: Add copy propagation logic for switches.
vkd3d-shader/hlsl: Validate break/continue context.
vkd3d-shader/hlsl: Check for duplicate case statements.
vkd3d-shader/hlsl: Add initial support for parsing 'switch' statements.
tests: Add some tests for the 'switch' statements.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/361