1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +02:00

(SCM_VALIDATE_INUM, SCM_VALIDATE_INUM_COPY, SCM_VALIDATE_BIGINT,

SCM_VALIDATE_INUM_MIN, SCM_VALIDATE_INUM_MIN_COPY,
SCM_VALIDATE_INUM_MIN_DEF_COPY,SCM_VALIDATE_INUM_DEF,
SCM_VALIDATE_INUM_DEF_COPY, SCM_VALIDATE_INUM_RANGE,
SCM_VALIDATE_INUM_RANGE_COPY): Deprecated because they make the
fixnum/bignum distinction visible.  Changed all uses to scm_to_size_t
or similar.
This commit is contained in:
Marius Vollmer 2004-07-10 13:47:02 +00:00
parent 0f94980db9
commit 8805b77dd0
2 changed files with 74 additions and 70 deletions

View file

@ -325,6 +325,78 @@ SCM_API SCM scm_gentemp (SCM prefix, SCM obarray);
SCM_API SCM SCM_MAKINUM (scm_t_signed_bits val); SCM_API SCM SCM_MAKINUM (scm_t_signed_bits val);
/* Users shouldn't know about INUMs.
*/
#define SCM_VALIDATE_INUM(pos, k) SCM_MAKE_VALIDATE_MSG (pos, k, INUMP, "exact integer")
#define SCM_VALIDATE_INUM_COPY(pos, k, cvar) \
do { \
SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
cvar = SCM_INUM (k); \
} while (0)
#define SCM_VALIDATE_BIGINT(pos, k) SCM_MAKE_VALIDATE_MSG (pos, k, BIGP, "bignum")
#define SCM_VALIDATE_INUM_MIN(pos, k, min) \
do { \
SCM_ASSERT (SCM_INUMP(k), k, pos, FUNC_NAME); \
SCM_ASSERT_RANGE (pos, k, (SCM_INUM (k) >= min)); \
} while (0)
#define SCM_VALIDATE_INUM_MIN_COPY(pos, k, min, cvar) \
do { \
SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
SCM_ASSERT_RANGE (pos, k, (SCM_INUM (k) >= min)); \
cvar = SCM_INUM (k); \
} while (0)
#define SCM_VALIDATE_INUM_MIN_DEF_COPY(pos, k, min, default, cvar) \
do { \
if (SCM_UNBNDP (k)) \
k = SCM_I_MAKINUM (default); \
SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
SCM_ASSERT_RANGE (pos, k, (SCM_INUM (k) >= min)); \
cvar = SCM_INUM (k); \
} while (0)
#define SCM_VALIDATE_INUM_DEF(pos, k, default) \
do { \
if (SCM_UNBNDP (k)) \
k = SCM_I_MAKINUM (default); \
else SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
} while (0)
#define SCM_VALIDATE_INUM_DEF_COPY(pos, k, default, cvar) \
do { \
if (SCM_UNBNDP (k)) \
{ \
k = SCM_I_MAKINUM (default); \
cvar = default; \
} \
else \
{ \
SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
cvar = SCM_INUM (k); \
} \
} while (0)
/* [low, high) */
#define SCM_VALIDATE_INUM_RANGE(pos, k, low, high) \
do { SCM_ASSERT(SCM_INUMP(k), k, pos, FUNC_NAME); \
SCM_ASSERT_RANGE(pos, k, \
(SCM_INUM (k) >= low && \
SCM_INUM (k) < high)); \
} while (0)
#define SCM_VALIDATE_INUM_RANGE_COPY(pos, k, low, high, cvar) \
do { \
SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
SCM_ASSERT_RANGE (pos, k, low <= SCM_INUM (k) && SCM_INUM (k) < high); \
cvar = SCM_INUM (k); \
} while (0)
void scm_i_init_deprecated (void); void scm_i_init_deprecated (void);
#endif #endif

View file

@ -170,8 +170,8 @@
pos_end, end, c_end) \ pos_end, end, c_end) \
do {\ do {\
SCM_VALIDATE_STRING_COPY (pos_str, str, c_str);\ SCM_VALIDATE_STRING_COPY (pos_str, str, c_str);\
SCM_VALIDATE_INUM_DEF_COPY (pos_start, start, 0, c_start);\ c_start = SCM_UNBNDP(start)? 0 : scm_to_size_t (start);\
SCM_VALIDATE_INUM_DEF_COPY (pos_end, end, SCM_STRING_LENGTH (str), c_end);\ c_end = SCM_UNBNDP(end)? SCM_STRING_LENGTH(str) : scm_to_size_t (end);\
SCM_ASSERT_RANGE (pos_start, start,\ SCM_ASSERT_RANGE (pos_start, start,\
0 <= c_start \ 0 <= c_start \
&& (size_t) c_start <= SCM_STRING_LENGTH (str));\ && (size_t) c_start <= SCM_STRING_LENGTH (str));\
@ -184,14 +184,6 @@
#define SCM_VALIDATE_NUMBER(pos, z) SCM_MAKE_VALIDATE_MSG (pos, z, NUMBERP, "number") #define SCM_VALIDATE_NUMBER(pos, z) SCM_MAKE_VALIDATE_MSG (pos, z, NUMBERP, "number")
#define SCM_VALIDATE_INUM(pos, k) SCM_MAKE_VALIDATE_MSG (pos, k, INUMP, "exact integer")
#define SCM_VALIDATE_INUM_COPY(pos, k, cvar) \
do { \
SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
cvar = SCM_INUM (k); \
} while (0)
#define SCM_VALIDATE_USHORT_COPY(pos, k, cvar) \ #define SCM_VALIDATE_USHORT_COPY(pos, k, cvar) \
do { \ do { \
cvar = SCM_NUM2USHORT (pos, k); \ cvar = SCM_NUM2USHORT (pos, k); \
@ -232,51 +224,6 @@
cvar = SCM_NUM2DOUBLE (pos, k); \ cvar = SCM_NUM2DOUBLE (pos, k); \
} while (0) } while (0)
#define SCM_VALIDATE_BIGINT(pos, k) SCM_MAKE_VALIDATE_MSG (pos, k, BIGP, "bignum")
#define SCM_VALIDATE_INUM_MIN(pos, k, min) \
do { \
SCM_ASSERT (SCM_INUMP(k), k, pos, FUNC_NAME); \
SCM_ASSERT_RANGE (pos, k, (SCM_INUM (k) >= min)); \
} while (0)
#define SCM_VALIDATE_INUM_MIN_COPY(pos, k, min, cvar) \
do { \
SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
SCM_ASSERT_RANGE (pos, k, (SCM_INUM (k) >= min)); \
cvar = SCM_INUM (k); \
} while (0)
#define SCM_VALIDATE_INUM_MIN_DEF_COPY(pos, k, min, default, cvar) \
do { \
if (SCM_UNBNDP (k)) \
k = SCM_I_MAKINUM (default); \
SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
SCM_ASSERT_RANGE (pos, k, (SCM_INUM (k) >= min)); \
cvar = SCM_INUM (k); \
} while (0)
#define SCM_VALIDATE_INUM_DEF(pos, k, default) \
do { \
if (SCM_UNBNDP (k)) \
k = SCM_I_MAKINUM (default); \
else SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
} while (0)
#define SCM_VALIDATE_INUM_DEF_COPY(pos, k, default, cvar) \
do { \
if (SCM_UNBNDP (k)) \
{ \
k = SCM_I_MAKINUM (default); \
cvar = default; \
} \
else \
{ \
SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
cvar = SCM_INUM (k); \
} \
} while (0)
#define SCM_VALIDATE_DOUBLE_DEF_COPY(pos, k, default, cvar) \ #define SCM_VALIDATE_DOUBLE_DEF_COPY(pos, k, default, cvar) \
do { \ do { \
if (SCM_UNBNDP (k)) \ if (SCM_UNBNDP (k)) \
@ -290,21 +237,6 @@
} \ } \
} while (0) } while (0)
/* [low, high) */
#define SCM_VALIDATE_INUM_RANGE(pos, k, low, high) \
do { SCM_ASSERT(SCM_INUMP(k), k, pos, FUNC_NAME); \
SCM_ASSERT_RANGE(pos, k, \
(SCM_INUM (k) >= low && \
SCM_INUM (k) < high)); \
} while (0)
#define SCM_VALIDATE_INUM_RANGE_COPY(pos, k, low, high, cvar) \
do { \
SCM_ASSERT (SCM_INUMP (k), k, pos, FUNC_NAME); \
SCM_ASSERT_RANGE (pos, k, low <= SCM_INUM (k) && SCM_INUM (k) < high); \
cvar = SCM_INUM (k); \
} while (0)
#define SCM_VALIDATE_NULL(pos, scm) SCM_MAKE_VALIDATE_MSG (pos, scm, NULLP, "null") #define SCM_VALIDATE_NULL(pos, scm) SCM_MAKE_VALIDATE_MSG (pos, scm, NULLP, "null")
#define SCM_VALIDATE_NULL_OR_NIL(pos, scm) SCM_MAKE_VALIDATE_MSG (pos, scm, NULL_OR_NIL_P, "null") #define SCM_VALIDATE_NULL_OR_NIL(pos, scm) SCM_MAKE_VALIDATE_MSG (pos, scm, NULL_OR_NIL_P, "null")