Commit 9d8f900d authored by Eli Zaretskii's avatar Eli Zaretskii

Fix last change in xfaces.c

* src/xfaces.c (init_xfaces): Don't rely of 'face'
property of a face to be a natural number.
parent 0c9bce3f
Pipeline #637 failed with stage
in 60 minutes
...@@ -6520,28 +6520,19 @@ init_xfaces (void) ...@@ -6520,28 +6520,19 @@ init_xfaces (void)
{ {
if (CONSP (Vface_new_frame_defaults)) if (CONSP (Vface_new_frame_defaults))
{ {
Lisp_Object lface = XCAR (Vface_new_frame_defaults); /* Allocate the lface_id_to_name[] array. */
if (CONSP (lface)) lface_id_to_name_size = next_lface_id =
XFIXNAT (Flength (Vface_new_frame_defaults));
lface_id_to_name = xnmalloc (next_lface_id, sizeof *lface_id_to_name);
/* Store the faces. */
Lisp_Object tail;
int i = next_lface_id - 1;
for (tail = Vface_new_frame_defaults; CONSP (tail); tail = XCDR (tail))
{ {
/* The first face in the list is the last face defined Lisp_Object lface = XCAR (tail);
during loadup. Compute how many faces are there, and eassert (i >= 0);
allocate the lface_id_to_name[] array. */ lface_id_to_name[i--] = XCAR (lface);
Lisp_Object lface_id = Fget (XCAR (lface), Qface);
lface_id_to_name_size = next_lface_id = XFIXNAT (lface_id) + 1;
lface_id_to_name = xnmalloc (next_lface_id, sizeof *lface_id_to_name);
/* Store the last face. */
lface_id_to_name[next_lface_id - 1] = lface;
/* Store the rest of the faces. */
Lisp_Object tail;
for (tail = XCDR (Vface_new_frame_defaults); CONSP (tail);
tail = XCDR (tail))
{
lface = XCAR (tail);
int face_id = XFIXNAT (Fget (XCAR (lface), Qface));
eassert (face_id < lface_id_to_name_size);
lface_id_to_name[face_id] = lface;
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment