X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/1be8532fdb7715451b939571f9a147635df9cd65..f39448c5a3804f823e367d97cd5e862b016cb8aa:/libguile/goops.c diff --git a/libguile/goops.c b/libguile/goops.c index 18332168f..f3a28d93d 100644 --- a/libguile/goops.c +++ b/libguile/goops.c @@ -879,9 +879,7 @@ create_basic_classes (void) /**** ****/ SCM cs = scm_from_locale_string (SCM_CLASS_CLASS_LAYOUT); SCM name = scm_from_locale_symbol (""); - scm_class_class = scm_permanent_object (scm_make_vtable_vtable (cs, - SCM_INUM0, - SCM_EOL)); + scm_class_class = scm_make_vtable_vtable (cs, SCM_INUM0, SCM_EOL); SCM_SET_CLASS_FLAGS (scm_class_class, (SCM_CLASSF_GOOPS_OR_VALID | SCM_CLASSF_METACLASS)); @@ -903,19 +901,15 @@ create_basic_classes (void) /**** ****/ name = scm_from_locale_symbol (""); - scm_class_top = scm_permanent_object (scm_basic_make_class (scm_class_class, - name, - SCM_EOL, - SCM_EOL)); + scm_class_top = scm_basic_make_class (scm_class_class, name, + SCM_EOL, SCM_EOL); DEFVAR(name, scm_class_top); /**** ****/ name = scm_from_locale_symbol (""); - scm_class_object = scm_permanent_object (scm_basic_make_class (scm_class_class, - name, - scm_list_1 (scm_class_top), - SCM_EOL)); + scm_class_object = scm_basic_make_class (scm_class_class, name, + scm_list_1 (scm_class_top), SCM_EOL); DEFVAR (name, scm_class_object); @@ -1630,10 +1624,6 @@ scm_change_object_class (SCM obj, SCM old_class SCM_UNUSED, SCM new_class) SCM_KEYWORD (k_name, "name"); -SCM_SYMBOL (sym_no_method, "no-method"); - -static SCM list_of_no_method; - SCM_GLOBAL_SYMBOL (scm_sym_args, "args"); @@ -2268,12 +2258,9 @@ make_stdcls (SCM *var, char *name, SCM meta, SCM super, SCM slots) { SCM tmp = scm_from_locale_symbol (name); - *var = scm_permanent_object (scm_basic_make_class (meta, - tmp, - scm_is_pair (super) - ? super - : scm_list_1 (super), - slots)); + *var = scm_basic_make_class (meta, tmp, + scm_is_pair (super) ? super : scm_list_1 (super), + slots); DEFVAR(tmp, *var); } @@ -2467,12 +2454,8 @@ make_class_from_template (char const *template, char const *type_name, SCM super else name = SCM_GOOPS_UNBOUND; - class = scm_permanent_object (scm_basic_make_class (applicablep - ? scm_class_procedure_class - : scm_class_class, - name, - supers, - SCM_EOL)); + class = scm_basic_make_class (applicablep ? scm_class_procedure_class : scm_class_class, + name, supers, SCM_EOL); /* Only define name if doesn't already exist. */ if (!SCM_GOOPS_UNBOUNDP (name) @@ -2495,12 +2478,8 @@ make_class_from_symbol (SCM type_name_sym, SCM supers, int applicablep) else name = SCM_GOOPS_UNBOUND; - class = scm_permanent_object (scm_basic_make_class (applicablep - ? scm_class_procedure_class - : scm_class_class, - name, - supers, - SCM_EOL)); + class = scm_basic_make_class (applicablep ? scm_class_procedure_class : scm_class_class, + name, supers, SCM_EOL); /* Only define name if doesn't already exist. */ if (!SCM_GOOPS_UNBOUNDP (name) @@ -2710,23 +2689,17 @@ SCM_DEFINE (scm_sys_goops_loaded, "%goops-loaded", 0, 0, 0, { goops_loaded_p = 1; var_compute_applicable_methods = - scm_permanent_object - (scm_module_variable (scm_module_goops, sym_compute_applicable_methods)); + scm_module_variable (scm_module_goops, sym_compute_applicable_methods); var_slot_unbound = - scm_permanent_object - (scm_module_variable (scm_module_goops, sym_slot_unbound)); + scm_module_variable (scm_module_goops, sym_slot_unbound); var_slot_missing = - scm_permanent_object - (scm_module_variable (scm_module_goops, sym_slot_missing)); + scm_module_variable (scm_module_goops, sym_slot_missing); var_compute_cpl = - scm_permanent_object - (scm_module_variable (scm_module_goops, sym_compute_cpl)); + scm_module_variable (scm_module_goops, sym_compute_cpl); var_no_applicable_method = - scm_permanent_object - (scm_module_variable (scm_module_goops, sym_no_applicable_method)); + scm_module_variable (scm_module_goops, sym_no_applicable_method); var_change_class = - scm_permanent_object - (scm_module_variable (scm_module_goops, sym_change_class)); + scm_module_variable (scm_module_goops, sym_change_class); setup_extended_primitive_generics (); return SCM_UNSPECIFIED; } @@ -2739,18 +2712,12 @@ scm_init_goops_builtins (void) { scm_module_goops = scm_current_module (); - /* Not really necessary right now, but who knows... - */ - scm_permanent_object (scm_module_goops); - goops_rstate = scm_c_make_rstate ("GOOPS", 5); #include "libguile/goops.x" - list_of_no_method = scm_permanent_object (scm_list_1 (sym_no_method)); - hell = scm_calloc (hell_size * sizeof (*hell)); - hell_mutex = scm_permanent_object (scm_make_mutex ()); + hell_mutex = scm_make_mutex (); create_basic_classes (); create_standard_classes (); @@ -2760,10 +2727,8 @@ scm_init_goops_builtins (void) { SCM name = scm_from_locale_symbol ("no-applicable-method"); - scm_no_applicable_method - = scm_permanent_object (scm_make (scm_list_3 (scm_class_generic, - k_name, - name))); + scm_no_applicable_method = + scm_make (scm_list_3 (scm_class_generic, k_name, name)); DEFVAR (name, scm_no_applicable_method); }