[PATCH vkd3d v7 5/6] vkd3d-shader/hlsl: Handle conditionals in copy propagation.

Giovanni Mascellani gmascellani at codeweavers.com
Thu Nov 18 02:58:35 CST 2021


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.

Giovanni.



More information about the wine-devel mailing list