mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-01 20:30:28 +02:00
Fixed some goto-related initialization bugs.
This commit is contained in:
parent
7eea529607
commit
9a00c9fc85
2 changed files with 21 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2000-05-05 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
||||||
|
|
||||||
|
* numbers.c (scm_logand, scm_logior, scm_logxor, scm_logtest):
|
||||||
|
Fixed some goto-related initialization bugs (introduced by me).
|
||||||
|
|
||||||
2000-05-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
2000-05-04 Dirk Herrmann <D.Herrmann@tu-bs.de>
|
||||||
|
|
||||||
* numbers.h (SCM_INUM0): Uses SCM_MAKINUM instead of SCM_PACK.
|
* numbers.h (SCM_INUM0): Uses SCM_MAKINUM instead of SCM_PACK.
|
||||||
|
|
|
@ -711,6 +711,8 @@ SCM_DEFINE1 (scm_logand, "logand", scm_tc7_asubr,
|
||||||
" @result{} \"1000\"")
|
" @result{} \"1000\"")
|
||||||
#define FUNC_NAME s_scm_logand
|
#define FUNC_NAME s_scm_logand
|
||||||
{
|
{
|
||||||
|
long int nn1;
|
||||||
|
|
||||||
if (SCM_UNBNDP (n2)) {
|
if (SCM_UNBNDP (n2)) {
|
||||||
if (SCM_UNBNDP (n1)) {
|
if (SCM_UNBNDP (n1)) {
|
||||||
return SCM_MAKINUM (-1);
|
return SCM_MAKINUM (-1);
|
||||||
|
@ -729,7 +731,7 @@ SCM_DEFINE1 (scm_logand, "logand", scm_tc7_asubr,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SCM_INUMP (n1)) {
|
if (SCM_INUMP (n1)) {
|
||||||
long nn1 = SCM_INUM (n1);
|
nn1 = SCM_INUM (n1);
|
||||||
if (SCM_INUMP (n2)) {
|
if (SCM_INUMP (n2)) {
|
||||||
long nn2 = SCM_INUM (n2);
|
long nn2 = SCM_INUM (n2);
|
||||||
return SCM_MAKINUM (nn1 & nn2);
|
return SCM_MAKINUM (nn1 & nn2);
|
||||||
|
@ -762,6 +764,7 @@ SCM_DEFINE1 (scm_logand, "logand", scm_tc7_asubr,
|
||||||
} else if (SCM_BIGP (n1)) {
|
} else if (SCM_BIGP (n1)) {
|
||||||
if (SCM_INUMP (n2)) {
|
if (SCM_INUMP (n2)) {
|
||||||
SCM_SWAP (n1, n2);
|
SCM_SWAP (n1, n2);
|
||||||
|
nn1 = SCM_INUM (n1);
|
||||||
goto intbig;
|
goto intbig;
|
||||||
} else if (SCM_BIGP (n2)) {
|
} else if (SCM_BIGP (n2)) {
|
||||||
if (SCM_NUMDIGS (n1) > SCM_NUMDIGS (n2)) {
|
if (SCM_NUMDIGS (n1) > SCM_NUMDIGS (n2)) {
|
||||||
|
@ -795,6 +798,8 @@ SCM_DEFINE1 (scm_logior, "logior", scm_tc7_asubr,
|
||||||
"@end lisp")
|
"@end lisp")
|
||||||
#define FUNC_NAME s_scm_logior
|
#define FUNC_NAME s_scm_logior
|
||||||
{
|
{
|
||||||
|
long int nn1;
|
||||||
|
|
||||||
if (SCM_UNBNDP (n2)) {
|
if (SCM_UNBNDP (n2)) {
|
||||||
if (SCM_UNBNDP (n1)) {
|
if (SCM_UNBNDP (n1)) {
|
||||||
return SCM_INUM0;
|
return SCM_INUM0;
|
||||||
|
@ -811,7 +816,7 @@ SCM_DEFINE1 (scm_logior, "logior", scm_tc7_asubr,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SCM_INUMP (n1)) {
|
if (SCM_INUMP (n1)) {
|
||||||
long nn1 = SCM_INUM (n1);
|
nn1 = SCM_INUM (n1);
|
||||||
if (SCM_INUMP (n2)) {
|
if (SCM_INUMP (n2)) {
|
||||||
long nn2 = SCM_INUM (n2);
|
long nn2 = SCM_INUM (n2);
|
||||||
return SCM_MAKINUM (nn1 | nn2);
|
return SCM_MAKINUM (nn1 | nn2);
|
||||||
|
@ -845,6 +850,7 @@ SCM_DEFINE1 (scm_logior, "logior", scm_tc7_asubr,
|
||||||
} else if (SCM_BIGP (n1)) {
|
} else if (SCM_BIGP (n1)) {
|
||||||
if (SCM_INUMP (n2)) {
|
if (SCM_INUMP (n2)) {
|
||||||
SCM_SWAP (n1, n2);
|
SCM_SWAP (n1, n2);
|
||||||
|
nn1 = SCM_INUM (n1);
|
||||||
goto intbig;
|
goto intbig;
|
||||||
} else if (SCM_BIGP (n2)) {
|
} else if (SCM_BIGP (n2)) {
|
||||||
if (SCM_NUMDIGS (n1) > SCM_NUMDIGS (n2)) {
|
if (SCM_NUMDIGS (n1) > SCM_NUMDIGS (n2)) {
|
||||||
|
@ -878,6 +884,8 @@ SCM_DEFINE1 (scm_logxor, "logxor", scm_tc7_asubr,
|
||||||
"@end lisp")
|
"@end lisp")
|
||||||
#define FUNC_NAME s_scm_logxor
|
#define FUNC_NAME s_scm_logxor
|
||||||
{
|
{
|
||||||
|
long int nn1;
|
||||||
|
|
||||||
if (SCM_UNBNDP (n2)) {
|
if (SCM_UNBNDP (n2)) {
|
||||||
if (SCM_UNBNDP (n1)) {
|
if (SCM_UNBNDP (n1)) {
|
||||||
return SCM_INUM0;
|
return SCM_INUM0;
|
||||||
|
@ -894,7 +902,7 @@ SCM_DEFINE1 (scm_logxor, "logxor", scm_tc7_asubr,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SCM_INUMP (n1)) {
|
if (SCM_INUMP (n1)) {
|
||||||
long nn1 = SCM_INUM (n1);
|
nn1 = SCM_INUM (n1);
|
||||||
if (SCM_INUMP (n2)) {
|
if (SCM_INUMP (n2)) {
|
||||||
long nn2 = SCM_INUM (n2);
|
long nn2 = SCM_INUM (n2);
|
||||||
return SCM_MAKINUM (nn1 ^ nn2);
|
return SCM_MAKINUM (nn1 ^ nn2);
|
||||||
|
@ -918,6 +926,7 @@ SCM_DEFINE1 (scm_logxor, "logxor", scm_tc7_asubr,
|
||||||
} else if (SCM_BIGP (n1)) {
|
} else if (SCM_BIGP (n1)) {
|
||||||
if (SCM_INUMP (n2)) {
|
if (SCM_INUMP (n2)) {
|
||||||
SCM_SWAP (n1, n2);
|
SCM_SWAP (n1, n2);
|
||||||
|
nn1 = SCM_INUM (n1);
|
||||||
goto intbig;
|
goto intbig;
|
||||||
} else if (SCM_BIGP (n2)) {
|
} else if (SCM_BIGP (n2)) {
|
||||||
if (SCM_NUMDIGS(n1) > SCM_NUMDIGS(n2)) {
|
if (SCM_NUMDIGS(n1) > SCM_NUMDIGS(n2)) {
|
||||||
|
@ -944,8 +953,10 @@ SCM_DEFINE (scm_logtest, "logtest", 2, 0, 0,
|
||||||
"@end example")
|
"@end example")
|
||||||
#define FUNC_NAME s_scm_logtest
|
#define FUNC_NAME s_scm_logtest
|
||||||
{
|
{
|
||||||
|
long int nn1;
|
||||||
|
|
||||||
if (SCM_INUMP (n1)) {
|
if (SCM_INUMP (n1)) {
|
||||||
long nn1 = SCM_INUM (n1);
|
nn1 = SCM_INUM (n1);
|
||||||
if (SCM_INUMP (n2)) {
|
if (SCM_INUMP (n2)) {
|
||||||
long nn2 = SCM_INUM (n2);
|
long nn2 = SCM_INUM (n2);
|
||||||
return SCM_BOOL (nn1 & nn2);
|
return SCM_BOOL (nn1 & nn2);
|
||||||
|
@ -969,6 +980,7 @@ SCM_DEFINE (scm_logtest, "logtest", 2, 0, 0,
|
||||||
} else if (SCM_BIGP (n1)) {
|
} else if (SCM_BIGP (n1)) {
|
||||||
if (SCM_INUMP (n2)) {
|
if (SCM_INUMP (n2)) {
|
||||||
SCM_SWAP (n1, n2);
|
SCM_SWAP (n1, n2);
|
||||||
|
nn1 = SCM_INUM (n1);
|
||||||
goto intbig;
|
goto intbig;
|
||||||
} else if (SCM_BIGP (n2)) {
|
} else if (SCM_BIGP (n2)) {
|
||||||
if (SCM_NUMDIGS (n1) > SCM_NUMDIGS (n2)) {
|
if (SCM_NUMDIGS (n1) > SCM_NUMDIGS (n2)) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue