bug19879: Fix hang on copy-area in 64-bit OS X.
The code that handles events after a copy-area used very dubious methods to communicate with a defun-foreign-callable function, which caused it to miss events on 64-bit OS X: The display pointer address was truncated to 32 bits on 64-bit platforms, but was left alone on 32-bit platforms. Rewrite get-event-matching-sequence-and-types to use a foreign structure to communicate with the foreign-callable function, and use the correct types and lengths. This change restricts the number of events we can probe/wait for to 16, but no call site uses more than 2 right now. To test: Load demos, open Flight Planner demo, click "Zoom In". Hangs without this change, works correctly with it. Tested on: 64-bit Linux & Mac OS X, 32-bit Linux & Mac OS X.
Loading
Please register or sign in to comment