X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/4c97dba58f46f9d6d6d33438958b4d8ee8b79bc4..510005210ac9f4d813c4a2cc99b2c3c11e57c055:/src/composite.c diff --git a/src/composite.c b/src/composite.c index ab9ec3f5a0..796c5a58de 100644 --- a/src/composite.c +++ b/src/composite.c @@ -285,7 +285,7 @@ get_composition_id (EMACS_INT charpos, EMACS_INT bytepos, EMACS_INT nchars, && VECTORP (AREF (components, 0))) { /* COMPONENTS is a glyph-string. */ - EMACS_UINT len = ASIZE (key); + EMACS_INT len = ASIZE (key); for (i = 1; i < len; i++) if (! VECTORP (AREF (key, i))) @@ -293,7 +293,7 @@ get_composition_id (EMACS_INT charpos, EMACS_INT bytepos, EMACS_INT nchars, } else if (VECTORP (components) || CONSP (components)) { - EMACS_UINT len = ASIZE (key); + EMACS_INT len = ASIZE (key); /* The number of elements should be odd. */ if ((len % 2) == 0) @@ -673,13 +673,14 @@ composition_gstring_put_cache (Lisp_Object gstring, EMACS_INT len) hash = h->hashfn (h, header); if (len < 0) { - EMACS_UINT j, glyph_len = LGSTRING_GLYPH_LEN (gstring); + EMACS_INT j, glyph_len = LGSTRING_GLYPH_LEN (gstring); for (j = 0; j < glyph_len; j++) if (NILP (LGSTRING_GLYPH (gstring, j))) break; len = j; } + lint_assume (len <= TYPE_MAXIMUM (EMACS_INT) - 2); copy = Fmake_vector (make_number (len + 2), Qnil); LGSTRING_SET_HEADER (copy, Fcopy_sequence (header)); for (i = 0; i < len; i++) @@ -705,7 +706,7 @@ int composition_gstring_p (Lisp_Object gstring) { Lisp_Object header; - int i; + EMACS_INT i; if (! VECTORP (gstring) || ASIZE (gstring) < 2) return 0; @@ -858,7 +859,7 @@ fill_gstring_body (Lisp_Object gstring) for (i = 0; i < len; i++) { Lisp_Object g = LGSTRING_GLYPH (gstring, i); - EMACS_INT c = XINT (AREF (header, i + 1)); + int c = XFASTINT (AREF (header, i + 1)); if (NILP (g)) { @@ -995,7 +996,8 @@ static int _work_char; void composition_compute_stop_pos (struct composition_it *cmp_it, EMACS_INT charpos, EMACS_INT bytepos, EMACS_INT endpos, Lisp_Object string) { - EMACS_INT start, end, c; + EMACS_INT start, end; + int c; Lisp_Object prop, val; /* This is from forward_to_next_line_start in xdisp.c. */ const int MAX_NEWLINE_DISTANCE = 500; @@ -1251,7 +1253,7 @@ composition_reseat_it (struct composition_it *cmp_it, EMACS_INT charpos, EMACS_I { Lisp_Object lgstring = Qnil; Lisp_Object val, elt; - int i; + EMACS_INT i; val = CHAR_TABLE_REF (Vcomposition_function_table, cmp_it->ch); for (i = 0; i < cmp_it->rule_idx; i++, val = XCDR (val)); @@ -1675,7 +1677,6 @@ find_automatic_composition (EMACS_INT pos, EMACS_INT limit, } BACKWARD_CHAR (cur, stop); } - return 0; } /* Return the adjusted point provided that point is moved from LAST_PT @@ -1684,9 +1685,8 @@ find_automatic_composition (EMACS_INT pos, EMACS_INT limit, EMACS_INT composition_adjust_point (EMACS_INT last_pt, EMACS_INT new_pt) { - EMACS_INT beg, end; + EMACS_INT i, beg, end; Lisp_Object val; - int i; if (new_pt == BEGV || new_pt == ZV) return new_pt;