* xfaces.c (compute_char_face): When merging the overlays,
traverse sortvec, not overlay_vec; the latter isn't the one we
sorted.
* xfaces.c (intern_face): If the face has a GC, but it's not the
default or modeline face, abort. Nothing but those two faces
should have a GC *and* be passed to intern_face.
(compute_char_face, compute_glyph_face): After copying
the frame's default face into face, to use as a base case for
calculation, set the `gc' member to zero; that way we don't have
things lying around that look like display faces but aren't.
* xfaces.c (intern_frame_face): When copying the new face into the
frame's face array, remember that the number of bytes to copy is
sizeof (*new_face), not sizeof (new_face).
* xfaces.c (compute_char_face): Assume that W is displaying the
current buffer. Abort if it isn't.