diff options
author | Andy Wingo <wingo@pobox.com> | 2011-05-13 12:51:56 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2011-05-13 15:28:08 +0200 |
commit | b2b33168b18c6c4fd65b0e77becba1a66a00dae1 (patch) | |
tree | ca47dc70a7a4f2f7d59b78cb9db2435cd3d98640 /libguile/goops.c | |
parent | d223c3fcdde81280ea8fb9a4b05897786014bbce (diff) | |
download | guile-b2b33168b18c6c4fd65b0e77becba1a66a00dae1.tar.gz |
more care regarding SCM_PACK and SCM_UNPACK
* libguile/control.c (reify_partial_continuation):
* libguile/eval.c (RETURN_BOOT_CLOSURE):
* libguile/frames.c (scm_frame_num_locals, scm_frame_local_ref)
(scm_frame_local_set_x)
* libguile/frames.h (SCM_FRAME_SET_RETURN_ADDRESS):
(SCM_FRAME_SET_MV_RETURN_ADDRESS, SCM_FRAME_SET_DYNAMIC_LINK):
* libguile/goops.c (scm_class_of, scm_primitive_generic_generic)
(scm_c_extend_primitive_generic, compute_getters_n_setters)
(scm_sys_initialize_object):
* libguile/guardians.c (finalize_guarded):
* libguile/list.c (SCM_I_CONS):
* libguile/macros.c (scm_i_make_primitive_macro)
(scm_make_syntax_transformer):
* libguile/memoize.c (MAKMEMO, SCM_MAKE_MEMOIZER)
(SCM_MAKE_REST_MEMOIZER):
* libguile/modules.c (scm_module_reverse_lookup)
* libguile/print.c (iprin1):
* libguile/promises.c (scm_make_promise)
* libguile/srcprop.c (scm_make_srcprops):
* libguile/vectors.c (scm_c_vector_ref):
* libguile/vm-engine.c (vm_engine)
* libguile/vm-i-scheme.c (REL, add1, sub1):
* libguile/vm-i-system.c (new_frame, call_cc)
* libguile/weaks.h (SCM_WEAK_PAIR_WORD_DELETED_P): Be more careful about
SCM_PACK / SCM_UNPACK.
Diffstat (limited to 'libguile/goops.c')
-rw-r--r-- | libguile/goops.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/libguile/goops.c b/libguile/goops.c index 1fca49150..33933965c 100644 --- a/libguile/goops.c +++ b/libguile/goops.c @@ -293,7 +293,8 @@ SCM_DEFINE (scm_class_of, "class-of", 1, 0, 0, return scm_class_fraction; } case scm_tc7_program: - if (SCM_PROGRAM_IS_PRIMITIVE_GENERIC (x) && *SCM_SUBR_GENERIC (x)) + if (SCM_PROGRAM_IS_PRIMITIVE_GENERIC (x) + && SCM_UNPACK (*SCM_SUBR_GENERIC (x))) return scm_class_primitive_generic; else return scm_class_procedure; @@ -494,8 +495,8 @@ compute_getters_n_setters (SCM slots) SCM options = SCM_CDAR (slots); if (!scm_is_null (options)) { - init = scm_get_keyword (k_init_value, options, 0); - if (init) + init = scm_get_keyword (k_init_value, options, SCM_PACK (0)); + if (SCM_UNPACK (init)) { init = scm_primitive_eval (scm_list_3 (scm_sym_lambda, SCM_EOL, @@ -592,7 +593,7 @@ SCM_DEFINE (scm_sys_initialize_object, "%initialize-object", 2, 0, 0, get_n_set = SCM_CDR (get_n_set), slots = SCM_CDR (slots)) { SCM slot_name = SCM_CAR (slots); - SCM slot_value = 0; + SCM slot_value = SCM_PACK (0); if (!scm_is_null (SCM_CDR (slot_name))) { @@ -604,10 +605,10 @@ SCM_DEFINE (scm_sys_initialize_object, "%initialize-object", 2, 0, 0, tmp = scm_i_get_keyword (k_init_keyword, SCM_CDR (slot_name), n, - 0, + SCM_PACK (0), FUNC_NAME); slot_name = SCM_CAR (slot_name); - if (tmp) + if (SCM_UNPACK (tmp)) { /* an initarg was provided for this slot */ if (!scm_is_keyword (tmp)) @@ -616,12 +617,12 @@ SCM_DEFINE (scm_sys_initialize_object, "%initialize-object", 2, 0, 0, slot_value = scm_i_get_keyword (tmp, initargs, n_initargs, - 0, + SCM_PACK (0), FUNC_NAME); } } - if (slot_value) + if (SCM_UNPACK (slot_value)) /* set slot to provided value */ set_slot_value (class, obj, SCM_CAR (get_n_set), slot_value); else @@ -1775,7 +1776,7 @@ SCM_DEFINE (scm_primitive_generic_generic, "primitive-generic-generic", 1, 0, 0, { if (SCM_PRIMITIVE_GENERIC_P (subr)) { - if (!*SCM_SUBR_GENERIC (subr)) + if (!SCM_UNPACK (*SCM_SUBR_GENERIC (subr))) scm_enable_primitive_generic_x (scm_list_1 (subr)); return *SCM_SUBR_GENERIC (subr); } @@ -1802,7 +1803,7 @@ scm_c_extend_primitive_generic (SCM extended, SCM extension) if (goops_loaded_p) { SCM gf, gext; - if (!*SCM_SUBR_GENERIC (extended)) + if (!SCM_UNPACK (*SCM_SUBR_GENERIC (extended))) scm_enable_primitive_generic_x (scm_list_1 (extended)); gf = *SCM_SUBR_GENERIC (extended); gext = scm_call_2 (SCM_VARIABLE_REF (scm_var_make_extended_generic), |