gallium: list use inline function to avoid macro shot coming
authorJerome Glisse <jglisse@redhat.com>
Mon, 28 Mar 2011 21:45:31 +0000 (17:45 -0400)
committerJerome Glisse <jglisse@redhat.com>
Wed, 30 Mar 2011 21:03:00 +0000 (17:03 -0400)
commitebe304fa540f98d047382297f448fec692a67b8b
tree6b345b9880b3f2797b382fdd899e3147e418cb90
parentdcad6fb670ccc533167d1ae360833989c1eb4823
gallium: list use inline function to avoid macro shot coming

Macro can lead to hard to debug list bugs. For instance consider
the following :
LIST_ADD(item, list->prev)
3 instruction of the macro became :
(list->prev)->next->prev = item
which is equivalent to :
list->prev = item
Thus list prev field changes and next instruction in the macro
(list->prev)->next = item
became :
item->next = item
And you endup with list corruption, other case lead to similar
list corruption. Inline function are not affected by this short
coming

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
src/gallium/auxiliary/util/u_double_list.h