Commit 40d63f77 authored by Ryan Scott's avatar Ryan Scott

Changed the each_object callback so that a pointer is passed for the object, instead of the struct.

parent da6b61db
/* /*
** gc.c - garbage collector for mruby ** gc.h - garbage collector for mruby
** **
** See Copyright Notice in mruby.h ** See Copyright Notice in mruby.h
*/ */
...@@ -7,18 +7,10 @@ ...@@ -7,18 +7,10 @@
#ifndef MRUBY_GC_H #ifndef MRUBY_GC_H
#define MRUBY_GC_H #define MRUBY_GC_H
#if defined(__cplusplus)
extern "C" {
#endif
#include "mruby.h" #include "mruby.h"
#include "mruby/value.h" #include "mruby/value.h"
typedef int each_object_callback(mrb_state *mrb, struct RBasic obj, void *data); typedef int each_object_callback(mrb_state *mrb, struct RBasic* obj, void *data);
void mrb_objspace_each_objects(mrb_state *mrb, each_object_callback* callback, void *data); void mrb_objspace_each_objects(mrb_state *mrb, each_object_callback* callback, void *data);
#if defined(__cplusplus)
} /* extern "C" { */
#endif
#endif /* MRUBY_GC_H */ #endif /* MRUBY_GC_H */
...@@ -31,12 +31,12 @@ struct os_count_struct { ...@@ -31,12 +31,12 @@ struct os_count_struct {
size_t counts[MRB_TT_MAXDEFINE+1]; size_t counts[MRB_TT_MAXDEFINE+1];
}; };
void os_count_object_type(mrb_state *mrb, struct RBasic obj, void *data) void os_count_object_type(mrb_state *mrb, struct RBasic* obj, void *data)
{ {
struct os_count_struct* obj_count; struct os_count_struct* obj_count;
obj_count = (struct os_count_struct*)(data); obj_count = (struct os_count_struct*)(data);
obj_count->counts[mrb_type(obj)]++; obj_count->counts[obj->tt]++;
if (is_dead(mrb, &obj)) if (is_dead(mrb, obj))
{ {
obj_count->freed++; obj_count->freed++;
} }
......
...@@ -1153,7 +1153,7 @@ mrb_objspace_each_objects(mrb_state *mrb, each_object_callback* callback, void * ...@@ -1153,7 +1153,7 @@ mrb_objspace_each_objects(mrb_state *mrb, each_object_callback* callback, void *
p = page->objects; p = page->objects;
pend = p + MRB_HEAP_PAGE_SIZE; pend = p + MRB_HEAP_PAGE_SIZE;
for (;p < pend; p++) { for (;p < pend; p++) {
callback(mrb, p->as.basic, data); callback(mrb, &p->as.basic, data);
} }
page = page->next; page = page->next;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment