Index: smob.c =================================================================== RCS file: /cvs/guile/guile-core/libguile/smob.c,v retrieving revision 1.32 diff -u -r1.32 smob.c --- smob.c 2000/12/07 07:10:26 1.32 +++ smob.c 2000/12/07 11:08:07 @@ -135,12 +135,6 @@ SCM_SMOB_DESCRIPTOR (SMOB).apply (SMOB, A1, A2, A3) static SCM -scm_smob_apply_0_000 (SCM smob) -{ - return SCM_SMOB_APPLY0 (smob); -} - -static SCM scm_smob_apply_0_010 (SCM smob) { return SCM_SMOB_APPLY1 (smob, SCM_UNDEFINED); @@ -183,12 +177,6 @@ } static SCM -scm_smob_apply_1_010 (SCM smob, SCM a1) -{ - return SCM_SMOB_APPLY1 (smob, a1); -} - -static SCM scm_smob_apply_1_020 (SCM smob, SCM a1) { return SCM_SMOB_APPLY2 (smob, a1, SCM_UNDEFINED); @@ -225,12 +213,6 @@ } static SCM -scm_smob_apply_2_020 (SCM smob, SCM a1, SCM a2) -{ - return SCM_SMOB_APPLY2 (smob, a1, a2); -} - -static SCM scm_smob_apply_2_030 (SCM smob, SCM a1, SCM a2) { return SCM_SMOB_APPLY3 (smob, a1, a2, SCM_UNDEFINED); @@ -240,7 +222,7 @@ scm_smob_apply_2_001 (SCM smob, SCM a1, SCM a2) { return SCM_SMOB_APPLY1 (smob, SCM_LIST2 (a1, a2)); - } +} static SCM scm_smob_apply_2_011 (SCM smob, SCM a1, SCM a2) @@ -370,16 +352,16 @@ } void -scm_set_smob_apply (long tc, SCM (*apply) (), int req, int opt, int rst) +scm_set_smob_apply (long tc, SCM (*apply) (), + unsigned int req, unsigned int opt, unsigned int rst) { SCM (*apply_0) (SCM); SCM (*apply_1) (SCM, SCM); SCM (*apply_2) (SCM, SCM, SCM); SCM (*apply_3) (SCM, SCM, SCM, SCM); - int type = SCM_GSUBR_MAKTYPE (req, opt, rst); + unsigned int type = SCM_GSUBR_MAKTYPE (req, opt, rst); - if (!(req >= 0 && opt >= 0 && (rst == 0 || rst == 1) - && req + opt + rst <= 3)) + if (rst > 1 || req + opt + rst > 3) { puts ("Unsupported smob application type"); abort (); @@ -388,7 +370,7 @@ switch (type) { case SCM_GSUBR_MAKTYPE (0, 0, 0): - apply_0 = scm_smob_apply_0_000; break; + apply_0 = apply; break; case SCM_GSUBR_MAKTYPE (0, 1, 0): apply_0 = scm_smob_apply_0_010; break; case SCM_GSUBR_MAKTYPE (0, 2, 0): @@ -409,7 +391,7 @@ { case SCM_GSUBR_MAKTYPE (1, 0, 0): case SCM_GSUBR_MAKTYPE (0, 1, 0): - apply_1 = scm_smob_apply_1_010; break; + apply_1 = apply; break; case SCM_GSUBR_MAKTYPE (1, 1, 0): case SCM_GSUBR_MAKTYPE (0, 2, 0): apply_1 = scm_smob_apply_1_020; break; @@ -433,7 +415,7 @@ case SCM_GSUBR_MAKTYPE (2, 0, 0): case SCM_GSUBR_MAKTYPE (1, 1, 0): case SCM_GSUBR_MAKTYPE (0, 2, 0): - apply_2 = scm_smob_apply_2_020; break; + apply_2 = apply; break; case SCM_GSUBR_MAKTYPE (2, 1, 0): case SCM_GSUBR_MAKTYPE (1, 2, 0): case SCM_GSUBR_MAKTYPE (0, 3, 0):