https://bugs.winehq.org/show_bug.cgi?id=49225
--- Comment #2 from Damjan Jovanovic damjan.jov@gmail.com --- /* per-mapping protection flags */ #define VPROT_SYSTEM 0x0200 /* system view (underlying mmap not under our control) */
So Wine finds a "view", and expects it to be a system view that's been unmapped behind its back, but it isn't, thus the assertion error. What's interesting is that xul.dll is:
---snip--- .wine/drive_c/windows/system32/gecko/2.47.1/wine_gecko/xul.dll: PE32 executable (DLL) (GUI) Intel 80386 (stripped to external PDB), for MS Windows ---snip---
a Windows DLL; Wine should know about it and its memory mappings. How did it slip through the cracks?
Where do the views find_view_range() is searching come from, and where is create_view() called from that it wants the overlapping range?
find_view_range() searched the red-black tree in the "views_tree" variable for a range that neither starts after its given range, not ends before it. It correctly detects the range for xul.dll is there, and returns it. But why is it a problem that the range is there?