From d05654633e43a162efd1ec6328e4d5e85e0a063d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Tue, 17 Jun 2014 16:12:18 +0200 Subject: [PATCH] GC: Clean up some of the visit_* API. All the visit_*() functions now have all arguments. --- src/array.c | 2 +- src/array.h | 2 +- src/gc.c | 14 +++++++------- src/mapping.c | 6 +++--- src/mapping.h | 2 +- src/multiset.c | 6 +++--- src/multiset.h | 2 +- src/object.c | 2 +- src/object.h | 2 +- src/pike_types.c | 2 +- src/pike_types.h | 2 +- src/program.c | 2 +- src/program.h | 2 +- src/stralloc.c | 2 +- src/stralloc.h | 2 +- 15 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/array.c b/src/array.c index b809ee7d28..2bd6c2f4db 100644 --- a/src/array.c +++ b/src/array.c @@ -2795,7 +2795,7 @@ void check_all_arrays(void) #endif /* PIKE_DEBUG */ -PMOD_EXPORT void visit_array (struct array *a, int action) +PMOD_EXPORT void visit_array (struct array *a, int action, void *extra) { switch (action) { #ifdef PIKE_DEBUG diff --git a/src/array.h b/src/array.h index 090757a039..b296628af7 100644 --- a/src/array.h +++ b/src/array.h @@ -199,7 +199,7 @@ void array_replace(struct array *a, PMOD_EXPORT void check_array(struct array *a); void check_all_arrays(void); #endif -PMOD_EXPORT void visit_array (struct array *a, int action); +PMOD_EXPORT void visit_array (struct array *a, int action, void *extra); void gc_mark_array_as_referenced(struct array *a); void real_gc_cycle_check_array(struct array *a, int weak); unsigned gc_touch_all_arrays(void); diff --git a/src/gc.c b/src/gc.c index e9db3382f2..7953103703 100644 --- a/src/gc.c +++ b/src/gc.c @@ -4412,16 +4412,16 @@ PMOD_EXPORT visit_thing_fn *const visit_fn_from_type[MAX_TYPE + 1] = { (visit_thing_fn *) (ptrdiff_t) -1, (visit_thing_fn *) (ptrdiff_t) -1, (visit_thing_fn *) (ptrdiff_t) -1, - (visit_thing_fn *) &visit_array, - (visit_thing_fn *) &visit_mapping, - (visit_thing_fn *) &visit_multiset, - (visit_thing_fn *) &visit_object, + &visit_array, + &visit_mapping, + &visit_multiset, + &visit_object, /* visit_function must be called with a whole svalue, so it's not * included here. */ (visit_thing_fn *) (ptrdiff_t) -1, - (visit_thing_fn *) &visit_program, - (visit_thing_fn *) &visit_string, - (visit_thing_fn *) &visit_type, + &visit_program, + &visit_string, + &visit_type, }; PMOD_EXPORT TYPE_T type_from_visit_fn (visit_thing_fn *fn) diff --git a/src/mapping.c b/src/mapping.c index 2b9e3e5167..1a5c7a790d 100644 --- a/src/mapping.c +++ b/src/mapping.c @@ -2470,7 +2470,7 @@ void check_all_mappings(void) #endif static void visit_mapping_data (struct mapping_data *md, int action, - struct mapping *UNUSED(m)) + void *extra) { switch (action) { #ifdef PIKE_DEBUG @@ -2500,7 +2500,7 @@ static void visit_mapping_data (struct mapping_data *md, int action, } } -PMOD_EXPORT void visit_mapping (struct mapping *m, int action) +PMOD_EXPORT void visit_mapping (struct mapping *m, int action, void *extra) { switch (action) { #ifdef PIKE_DEBUG @@ -2516,7 +2516,7 @@ PMOD_EXPORT void visit_mapping (struct mapping *m, int action) } visit_ref (m->data, REF_TYPE_INTERNAL, - (visit_thing_fn *) &visit_mapping_data, m); + (visit_thing_fn *) &visit_mapping_data, extra); } #ifdef MAPPING_SIZE_DEBUG diff --git a/src/mapping.h b/src/mapping.h index cdd15dc402..b1574de725 100644 --- a/src/mapping.h +++ b/src/mapping.h @@ -375,7 +375,7 @@ PMOD_EXPORT INT32 mapping_generation(struct mapping *m); void check_mapping(const struct mapping *m); void check_all_mappings(void); #endif -PMOD_EXPORT void visit_mapping (struct mapping *m, int action); +PMOD_EXPORT void visit_mapping (struct mapping *m, int action, void *extra); 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); diff --git a/src/multiset.c b/src/multiset.c index 9f1008e41c..8520d8df8c 100644 --- a/src/multiset.c +++ b/src/multiset.c @@ -3483,7 +3483,7 @@ PMOD_EXPORT ptrdiff_t multiset_get_nth (struct multiset *l, size_t n) #define GC_MSD_GOT_NODE_REFS GC_USER_3 static void visit_multiset_data (struct multiset_data *msd, int action, - struct multiset *UNUSED(l)) + void *extra) { switch (action) { #ifdef PIKE_DEBUG @@ -3524,7 +3524,7 @@ static void visit_multiset_data (struct multiset_data *msd, int action, } } -PMOD_EXPORT void visit_multiset (struct multiset *l, int action) +PMOD_EXPORT void visit_multiset (struct multiset *l, int action, void *extra) { switch (action) { #ifdef PIKE_DEBUG @@ -3540,7 +3540,7 @@ PMOD_EXPORT void visit_multiset (struct multiset *l, int action) } visit_ref (l->msd, REF_TYPE_INTERNAL, - (visit_thing_fn *) &visit_multiset_data, l); + (visit_thing_fn *) &visit_multiset_data, extra); } unsigned gc_touch_all_multisets (void) diff --git a/src/multiset.h b/src/multiset.h index 06c84270d0..8bc7963570 100644 --- a/src/multiset.h +++ b/src/multiset.h @@ -402,7 +402,7 @@ struct multiset *copy_multiset_recursively (struct multiset *l, struct mapping *p); PMOD_EXPORT ptrdiff_t multiset_get_nth (struct multiset *l, size_t n); -PMOD_EXPORT void visit_multiset (struct multiset *l, int action); +PMOD_EXPORT void visit_multiset (struct multiset *l, int action, void *extra); unsigned gc_touch_all_multisets (void); void gc_check_all_multisets (void); void gc_mark_multiset_as_referenced (struct multiset *l); diff --git a/src/object.c b/src/object.c index 667d21de50..5f6b6f5477 100644 --- a/src/object.c +++ b/src/object.c @@ -2083,7 +2083,7 @@ PMOD_EXPORT struct array *object_types(struct object *o, int inherit_number) } -PMOD_EXPORT void visit_object (struct object *o, int action) +PMOD_EXPORT void visit_object (struct object *o, int action, void *extra) { struct program *p = o->prog; diff --git a/src/object.h b/src/object.h index d75d636bd9..0498e02b88 100644 --- a/src/object.h +++ b/src/object.h @@ -133,7 +133,7 @@ PMOD_EXPORT int object_equal_p(struct object *a, struct object *b, struct proces PMOD_EXPORT struct array *object_indices(struct object *o, int inherit_level); PMOD_EXPORT struct array *object_values(struct object *o, int inherit_level); PMOD_EXPORT struct array *object_types(struct object *o, int inherit_level); -PMOD_EXPORT void visit_object (struct object *o, int action); +PMOD_EXPORT void visit_object (struct object *o, int action, void *extra); PMOD_EXPORT void visit_function (const struct svalue *s, int ref_type); PMOD_EXPORT void gc_mark_object_as_referenced(struct object *o); PMOD_EXPORT void real_gc_cycle_check_object(struct object *o, int weak); diff --git a/src/pike_types.c b/src/pike_types.c index 86ce2b3fca..d881417608 100644 --- a/src/pike_types.c +++ b/src/pike_types.c @@ -8911,7 +8911,7 @@ PMOD_EXPORT void *find_type(struct pike_type *t, return NULL; } -PMOD_EXPORT void visit_type (struct pike_type *t, int action) +PMOD_EXPORT void visit_type (struct pike_type *t, int action, void *extra) { switch (action) { #ifdef PIKE_DEBUG diff --git a/src/pike_types.h b/src/pike_types.h index b9b6e9fd93..43af1c9c23 100644 --- a/src/pike_types.h +++ b/src/pike_types.h @@ -294,7 +294,7 @@ void cleanup_pike_types(void); void cleanup_pike_type_table(void); PMOD_EXPORT void *find_type(struct pike_type *t, void *(*cb)(struct pike_type *)); -PMOD_EXPORT void visit_type (struct pike_type *t, int action); +PMOD_EXPORT void visit_type (struct pike_type *t, int action, void *extra); void gc_mark_type_as_referenced(struct pike_type *t); void gc_check_type (struct pike_type *t); void gc_check_all_types (void); diff --git a/src/program.c b/src/program.c index f1c7cf9d1c..3c2c25b948 100644 --- a/src/program.c +++ b/src/program.c @@ -11027,7 +11027,7 @@ void cleanup_program(void) } -PMOD_EXPORT void visit_program (struct program *p, int action) +PMOD_EXPORT void visit_program (struct program *p, int action, void *extra) { switch (action) { #ifdef PIKE_DEBUG diff --git a/src/program.h b/src/program.h index d6984479e8..d8bd48bab7 100644 --- a/src/program.h +++ b/src/program.h @@ -1029,7 +1029,7 @@ void check_all_programs(void); void placeholder_index(INT32 args); void init_program(void); void cleanup_program(void); -PMOD_EXPORT void visit_program (struct program *p, int action); +PMOD_EXPORT void visit_program (struct program *p, int action, void *extra); void gc_mark_program_as_referenced(struct program *p); void real_gc_cycle_check_program(struct program *p, int weak); unsigned gc_touch_all_programs(void); diff --git a/src/stralloc.c b/src/stralloc.c index 6679a8c715..f6f28de660 100644 --- a/src/stralloc.c +++ b/src/stralloc.c @@ -2271,7 +2271,7 @@ void count_memory_in_strings(size_t *num, size_t *size) size[0]=size_; } -PMOD_EXPORT void visit_string (struct pike_string *s, int action) +PMOD_EXPORT void visit_string (struct pike_string *s, int action, void *extra) { switch (action) { #ifdef PIKE_DEBUG diff --git a/src/stralloc.h b/src/stralloc.h index fa2e000ed1..0c728b6b0b 100644 --- a/src/stralloc.h +++ b/src/stralloc.h @@ -377,7 +377,7 @@ void init_shared_string_table(void); void cleanup_shared_string_table(void); void count_memory_in_short_pike_strings(size_t *num, size_t *size); void count_memory_in_strings(size_t *num, size_t *size); -PMOD_EXPORT void visit_string (struct pike_string *s, int action); +PMOD_EXPORT void visit_string (struct pike_string *s, int action, void *extra); void gc_mark_string_as_referenced (struct pike_string *s); unsigned gc_touch_all_strings(void); void gc_mark_all_strings(void); -- GitLab