xsignal3 (Qargs_out_of_range, a1, a2, a3);
}
-/* On some machines, XINT needs a temporary location.
- Here it is, in case it is needed. */
-
-int sign_extend_temp;
-
-/* On a few machines, XINT can only be done by calling this. */
-
-int
-sign_extend_lisp_int (EMACS_INT num)
-{
- if (num & (((EMACS_INT) 1) << (VALBITS - 1)))
- return num | (((EMACS_INT) (-1)) << VALBITS);
- else
- return num & ((((EMACS_INT) 1) << VALBITS) - 1);
-}
\f
/* Data type predicates */
or a byte-code object. IDX starts at 0. */)
(register Lisp_Object array, Lisp_Object idx)
{
- register int idxval;
+ register EMACS_INT idxval;
CHECK_NUMBER (idx);
idxval = XINT (idx);
if (STRINGP (array))
{
- int c, idxval_byte;
+ int c;
+ EMACS_INT idxval_byte;
if (idxval < 0 || idxval >= SCHARS (array))
args_out_of_range (array, idx);
bool-vector. IDX starts at 0. */)
(register Lisp_Object array, Lisp_Object idx, Lisp_Object newelt)
{
- register int idxval;
+ register EMACS_INT idxval;
CHECK_NUMBER (idx);
idxval = XINT (idx);
}
else if (STRING_MULTIBYTE (array))
{
- int idxval_byte, prev_bytes, new_bytes, nbytes;
+ EMACS_INT idxval_byte, prev_bytes, new_bytes, nbytes;
unsigned char workbuf[MAX_MULTIBYTE_LENGTH], *p0 = workbuf, *p1;
if (idxval < 0 || idxval >= SCHARS (array))
if (prev_bytes != new_bytes)
{
/* We must relocate the string data. */
- int nchars = SCHARS (array);
+ EMACS_INT nchars = SCHARS (array);
unsigned char *str;
USE_SAFE_ALLOCA;