[PATCH vkd3d v7 5/6] vkd3d-shader/hlsl: Handle conditionals in copy propagation.
Zebediah Figura
zfigura at codeweavers.com
Thu Nov 18 10:47:26 CST 2021
On 11/18/21 2:58 AM, Giovanni Mascellani wrote:
> Hi,
>
> On 18/11/21 05:09, Zebediah Figura (she/her) wrote:
>> I didn't notice this last time, but since IIUC rbtree entries can hold a
>> pointer to the head of the list (much like linked list entries), this
>> isn't safe. You'll need to individually allocate list heads.
>
> It doesn't look so:
>
> struct rb_entry
> {
> struct rb_entry *parent;
> struct rb_entry *left;
> struct rb_entry *right;
> unsigned int flags;
> };
>
> struct rb_tree
> {
> rb_compare_func compare;
> struct rb_entry *root;
> };
>
> The entries have pointers between themselves, but none of them points to
> the tree itself. Just the other way around. In other words, struct
> rb_tree already provides the level of indirection that you rightly say
> it is needed.
Eh, never mind, you're right, I thought the top-level entries had the
tree as a parent, but they don't.
More information about the wine-devel
mailing list