1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-12 06:41:13 +02:00

* numbers.c: Use SCM_VALIDATE_LONG_COPY, and longs, not ints, in

various logXXX primitives.  Thanks Eric Moore!
This commit is contained in:
Greg J. Badros 2000-03-08 18:16:50 +00:00
parent 10d7b66590
commit 3dd632c9ae

View file

@ -525,15 +525,15 @@ SCM_DEFINE1 (scm_logand, "logand", scm_tc7_asubr,
" @result{} \"1000\"") " @result{} \"1000\"")
#define FUNC_NAME s_scm_logand #define FUNC_NAME s_scm_logand
{ {
int i1, i2; long i1, i2;
if (SCM_UNBNDP (n2)) if (SCM_UNBNDP (n2))
{ {
if (SCM_UNBNDP (n1)) if (SCM_UNBNDP (n1))
return SCM_MAKINUM (-1); return SCM_MAKINUM (-1);
return n1; return n1;
} }
SCM_VALIDATE_ULONG_COPY (1,n1,i1); SCM_VALIDATE_LONG_COPY (1,n1,i1);
SCM_VALIDATE_ULONG_COPY (2,n2,i2); SCM_VALIDATE_LONG_COPY (2,n2,i2);
return SCM_LOGOP_RETURN (i1 & i2); return SCM_LOGOP_RETURN (i1 & i2);
} }
#undef FUNC_NAME #undef FUNC_NAME
@ -549,15 +549,15 @@ SCM_DEFINE1 (scm_logior, "logior", scm_tc7_asubr,
"@end lisp") "@end lisp")
#define FUNC_NAME s_scm_logior #define FUNC_NAME s_scm_logior
{ {
int i1, i2; long i1, i2;
if (SCM_UNBNDP (n2)) if (SCM_UNBNDP (n2))
{ {
if (SCM_UNBNDP (n1)) if (SCM_UNBNDP (n1))
return SCM_INUM0; return SCM_INUM0;
return n1; return n1;
} }
SCM_VALIDATE_ULONG_COPY (1,n1,i1); SCM_VALIDATE_LONG_COPY (1,n1,i1);
SCM_VALIDATE_ULONG_COPY (2,n2,i2); SCM_VALIDATE_LONG_COPY (2,n2,i2);
return SCM_LOGOP_RETURN (i1 | i2); return SCM_LOGOP_RETURN (i1 | i2);
} }
#undef FUNC_NAME #undef FUNC_NAME
@ -573,15 +573,15 @@ SCM_DEFINE1 (scm_logxor, "logxor", scm_tc7_asubr,
"@end lisp") "@end lisp")
#define FUNC_NAME s_scm_logxor #define FUNC_NAME s_scm_logxor
{ {
int i1, i2; long i1, i2;
if (SCM_UNBNDP (n2)) if (SCM_UNBNDP (n2))
{ {
if (SCM_UNBNDP (n1)) if (SCM_UNBNDP (n1))
return SCM_INUM0; return SCM_INUM0;
return n1; return n1;
} }
SCM_VALIDATE_ULONG_COPY (1,n1,i1); SCM_VALIDATE_LONG_COPY (1,n1,i1);
SCM_VALIDATE_ULONG_COPY (2,n2,i2); SCM_VALIDATE_LONG_COPY (2,n2,i2);
return SCM_LOGOP_RETURN (i1 ^ i2); return SCM_LOGOP_RETURN (i1 ^ i2);
} }
#undef FUNC_NAME #undef FUNC_NAME
@ -595,9 +595,9 @@ SCM_DEFINE (scm_logtest, "logtest", 2, 0, 0,
"@end example") "@end example")
#define FUNC_NAME s_scm_logtest #define FUNC_NAME s_scm_logtest
{ {
int i1, i2; long i1, i2;
SCM_VALIDATE_ULONG_COPY (1,n1,i1); SCM_VALIDATE_LONG_COPY (1,n1,i1);
SCM_VALIDATE_ULONG_COPY (2,n2,i2); SCM_VALIDATE_LONG_COPY (2,n2,i2);
return SCM_BOOL(i1 & i2); return SCM_BOOL(i1 & i2);
} }
#undef FUNC_NAME #undef FUNC_NAME
@ -615,9 +615,9 @@ SCM_DEFINE (scm_logbit_p, "logbit?", 2, 0, 0,
"@end example") "@end example")
#define FUNC_NAME s_scm_logbit_p #define FUNC_NAME s_scm_logbit_p
{ {
int i1, i2; long i1, i2;
SCM_VALIDATE_INUM_MIN_COPY (1,index,0,i1); SCM_VALIDATE_INUM_MIN_COPY (1,index,0,i1);
SCM_VALIDATE_ULONG_COPY (2,j,i2); SCM_VALIDATE_LONG_COPY (2,j,i2);
return SCM_BOOL((1 << i1) & i2); return SCM_BOOL((1 << i1) & i2);
} }
#undef FUNC_NAME #undef FUNC_NAME