1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-01 04:10:18 +02:00

* objects.c, objects.h (scm_port_class): Added.

(scm_class_of): Look up port class in scm_port_class.
(SCM_IN_PCLASS_INDEX, SCM_OUT_PCLASS_INDEX,
SCM_INOUT_PCLASS_INDEX): Added.
This commit is contained in:
Mikael Djurfeldt 1999-07-24 11:36:30 +00:00
parent 0e8a8468a3
commit d0efbe6199
2 changed files with 12 additions and 1 deletions

View file

@ -67,6 +67,7 @@ SCM scm_class_vector, scm_class_null;
SCM scm_class_integer, scm_class_real, scm_class_complex;
SCM scm_class_unknown;
SCM *scm_port_class = 0;
SCM *scm_smob_class = 0;
SCM (*scm_make_extended_class) (char *type_name);
@ -139,7 +140,11 @@ scm_class_of (SCM x)
return scm_class_procedure_with_setter;
case scm_tc7_port:
return scm_class_unknown;
return scm_port_class[(SCM_CAR (x) | SCM_WRTNG
? (SCM_CAR (x) | SCM_RDNG
? SCM_INOUT_PCLASS_INDEX | SCM_PTOBNUM (x)
: SCM_OUT_PCLASS_INDEX | SCM_PTOBNUM (x))
: SCM_IN_PCLASS_INDEX | SCM_PTOBNUM (x))];
case scm_tc7_smob:
{
SCM type = SCM_TYP16 (x);