Hi,
Sorry, but the patch is wrong. The Wine list implementation makes sure that next and prev are always valid pointers, such that the list is circular. The only way to detect the end of the list is if entry->next == start. If one of the entries is NULL then this generally indicates either a use after free or some other kind of corruption of the memory used by the list. If the memory is in the heap then HeapValidate may help find the corruption.
If you say this, I will willingly believe it. I did some debugging searching for an exception which was caused by one of my applications, and at a certain point there are four calls of HeapAlloc(). Three of them worked great, but the forth failed cause elem->next was 0. So my idea was that its cause of it's the last entry. The other pointers looked really well. So do you think the is a heap corruption caused by my application or by some other part of Wine?
One further note: on projects as big as Wine patching the ChangeLog is not practical as it would result in a lot of conflicts. Therefore, Alexandre Julliard automatically generates ChangeLog entries from CVS just before each release.
Oh, I only did it cause its requested on http://www.winehq.com/site/sending_patches:
"When submitting patches, please: Include a ChangeLog entry with your name, email address and a description of what your patch does."
Did I understand something wrong here???
Cheers
Markus Gömmel m.goemmel@compulab.de