--- /mdkhome/sirian/src/guile/guile-core/libguile/objects.c.~1.76.~ 2003-11-19 07:30:56.000000000 -0600 +++ /mdkhome/sirian/src/guile/guile-core/libguile/objects.c 2004-01-23 23:09:43.000000000 -0600 @@ -44,7 +44,8 @@ SCM scm_metaclass_operator; /* These variables are filled in by the object system when loaded. */ -SCM scm_class_boolean, scm_class_char, scm_class_pair; +/* scm_class_boolean guaranteed to be 0 until that has happened. */ +SCM scm_class_boolean = 0, scm_class_char, scm_class_pair; SCM scm_class_procedure, scm_class_string, scm_class_symbol; SCM scm_class_procedure_with_setter, scm_class_primitive_generic; SCM scm_class_vector, scm_class_null; @@ -62,6 +63,9 @@ "Return the class of @var{x}.") #define FUNC_NAME s_scm_class_of { + if (!scm_class_boolean) /* goops not loaded? */ + scm_error (scm_str2symbol ("goops-error"), FUNC_NAME, + "GOOPS has not been loaded", SCM_EOL, SCM_BOOL_F); switch (SCM_ITAG3 (x)) { case scm_tc3_int_1: