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

* objects.h: Removed slots direct_supers and direct_slots from the

definitions of the rudimentary classes described by objects.h.
* objects.c, objects.h (scm_entity_p): New procedure.  Together
with the predicates scm_procedure_p and scm_struct_p, this
predicate makes it possible to differ between structs, entities
and operators.
This commit is contained in:
Mikael Djurfeldt 1998-11-26 18:04:33 +00:00
parent 19c0dec231
commit aa3bdf59ac

View file

@ -130,24 +130,20 @@
* *
* An example of an operator class is the class <tk-command>. * An example of an operator class is the class <tk-command>.
*/ */
#define SCM_METACLASS_STANDARD_LAYOUT "pwpw" #define SCM_METACLASS_STANDARD_LAYOUT ""
struct scm_metaclass_standard { struct scm_metaclass_standard {
SCM layout; SCM layout;
SCM vcell; SCM vcell;
SCM vtable; SCM vtable;
SCM print; SCM print;
SCM direct_supers;
SCM direct_slots;
}; };
#define SCM_METACLASS_OPERATOR_LAYOUT "pwpwpopopopo" #define SCM_METACLASS_OPERATOR_LAYOUT "popopopo"
struct scm_metaclass_operator { struct scm_metaclass_operator {
SCM layout; SCM layout;
SCM vcell; SCM vcell;
SCM vtable; SCM vtable;
SCM print; SCM print;
SCM direct_supers;
SCM direct_slots;
SCM proc0; SCM proc0;
SCM proc1; SCM proc1;
SCM proc2; SCM proc2;
@ -173,6 +169,7 @@ typedef struct scm_entity {
extern SCM scm_metaclass_standard; extern SCM scm_metaclass_standard;
extern SCM scm_metaclass_operator; extern SCM scm_metaclass_operator;
extern SCM scm_entity_p (SCM obj);
extern SCM scm_set_object_procedure_x (SCM obj, SCM procs); extern SCM scm_set_object_procedure_x (SCM obj, SCM procs);
extern SCM scm_make_class_object (SCM metaclass, SCM layout); extern SCM scm_make_class_object (SCM metaclass, SCM layout);
extern SCM scm_make_subclass_object (SCM class, SCM layout); extern SCM scm_make_subclass_object (SCM class, SCM layout);