Branch: Tag:


2008-05-11 02:36:00 by Martin Stjernholm <>

Implemented visit functions for the visit_thing_fn interface. The gc
check/mark functions are restored to how they were before the

Rev: src/array.c:1.206
Rev: src/array.h:1.74
Rev: src/constants.c:1.59
Rev: src/constants.h:1.36
Rev: src/mapping.c:1.200
Rev: src/mapping.h:1.67
Rev: src/multiset.c:1.110
Rev: src/multiset.h:1.43
Rev: src/object.c:1.290
Rev: src/object.h:1.95
Rev: src/pike_types.c:1.331
Rev: src/pike_types.h:1.114
Rev: src/program.c:1.691
Rev: src/program.h:1.242
Rev: src/stralloc.c:1.218
Rev: src/stralloc.h:1.103

2:   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: mapping.h,v 1.66 2008/01/05 17:58:54 nilsson Exp $ + || $Id: mapping.h,v 1.67 2008/05/11 02:35:22 mast Exp $   */      #ifndef MAPPING_H
372: Inside #if defined(PIKE_DEBUG)
  void check_mapping(const struct mapping *m);   void check_all_mappings(void);   #endif + void visit_mapping (struct mapping *m, int action);   void gc_mark_mapping_as_referenced(struct mapping *m);   void real_gc_cycle_check_mapping(struct mapping *m, int weak);   unsigned gc_touch_all_mappings(void);
388:      #define allocate_mapping(X) dmalloc_touch(struct mapping *,debug_allocate_mapping(X))    + #define visit_mapping_ref(M, REF_TYPE) \ +  visit_ref (pass_mapping (M), (REF_TYPE), \ +  (visit_thing_fn *) &visit_mapping, NULL)   #define gc_cycle_check_mapping(X, WEAK) \    gc_cycle_enqueue((gc_cycle_check_cb *) real_gc_cycle_check_mapping, (X), (WEAK))      #endif /* MAPPING_H */