Here's mouseExited from nsterm.m:
- (void)mouseExited: (NSEvent *)theEvent
{
NSPoint p = [self convertPoint: [theEvent locationInWindow] fromView: nil];
NSRect r;
struct ns_display_info *dpyinfo
= emacsframe ? FRAME_NS_DISPLAY_INFO (emacsframe) : NULL;
NSTRACE (mouseExited);
if (dpyinfo || !emacsframe)<<<<<<<<<<<<<<<<<<<<<<<
return;
last_mouse_movement_time = EV_TIMESTAMP (theEvent);
if (emacsframe == dpyinfo->mouse_face_mouse_frame)
{
clear_mouse_face (dpyinfo);
dpyinfo->mouse_face_mouse_frame = 0;
}
}
Isn't the line marked with<<<<<<<<<<<<<<<<<<<<<<< wrong? It should
say
if (!dpyinfo || !emacsframe)
return;
right? Because if dpyinfo is NULL, we cannot dereference it two lines
after that. Am I missing something?