From: Dmitry Timoshkov [mailto:dmitry@codeweavers.com]
What exactly size is required then to avoid an assert?
This is the assert:
assert( sizeof(union generic_request) == sizeof(struct request_max_size) );
So the way the assert is written now "struct request_max_size" should have a size exactly equal to the largest of any of the individual request_* structures. Each of these request_* structures can contain a mix of 32-bit and 64-bit (on Wine64) members.
Perhaps. It would become
struct request_max_size { long pad[10]; int pad1[6]; };
then, which seems just as arbitrary.
No, I meant to make it irrespective to 32 or 64-bit compilation, i.e. look like:
struct request_max_size { long pad[16]; };
That won't work, it will be too large for Wine64 (the largest request_* is currently 104 bytes for Wine64, 64 bytes for Wine32) so the assert will still fail.
Gé van Geldorp.