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
*/
......@@ -7,18 +7,10 @@
#ifndef MRUBY_GC_H
#define MRUBY_GC_H
#if defined(__cplusplus)
extern "C" {
#endif
#include "mruby.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);
#if defined(__cplusplus)
} /* extern "C" { */
#endif
#endif /* MRUBY_GC_H */
......@@ -31,12 +31,12 @@ struct os_count_struct {
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;
obj_count = (struct os_count_struct*)(data);
obj_count->counts[mrb_type(obj)]++;
if (is_dead(mrb, &obj))
obj_count->counts[obj->tt]++;
if (is_dead(mrb, obj))
{
obj_count->freed++;
}
......
......@@ -1153,7 +1153,7 @@ mrb_objspace_each_objects(mrb_state *mrb, each_object_callback* callback, void *
p = page->objects;
pend = p + MRB_HEAP_PAGE_SIZE;
for (;p < pend; p++) {
callback(mrb, p->as.basic, data);
callback(mrb, &p->as.basic, data);
}
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