summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorRyan Scott <[email protected]>2013-05-17 07:41:13 +1000
committerRyan Scott <[email protected]>2013-05-17 07:41:13 +1000
commitf62cc5b1eebb29d244977c6030c04d9cb8ebefba (patch)
tree188d07664a7a32ae8e229bfb75028d9a5afcc598 /include
parent222918deae84ae8dda26aa769bf3cc6b68e3aeec (diff)
downloadmruby-f62cc5b1eebb29d244977c6030c04d9cb8ebefba.tar.gz
mruby-f62cc5b1eebb29d244977c6030c04d9cb8ebefba.zip
Changed the object_count so that it only iterates over the RBasic object, not the full RVALUE known by the GC
Diffstat (limited to 'include')
-rw-r--r--include/mruby/gc.h33
1 files changed, 2 insertions, 31 deletions
diff --git a/include/mruby/gc.h b/include/mruby/gc.h
index 00564c4fa..552321be2 100644
--- a/include/mruby/gc.h
+++ b/include/mruby/gc.h
@@ -12,38 +12,9 @@ extern "C" {
#endif
#include "mruby.h"
-#include "mruby/array.h"
-#include "mruby/class.h"
-#include "mruby/data.h"
-#include "mruby/hash.h"
-#include "mruby/proc.h"
-#include "mruby/range.h"
-#include "mruby/string.h"
-#include "mruby/variable.h"
+#include "mruby/value.h"
-struct free_obj {
- MRB_OBJECT_HEADER;
- struct RBasic *next;
-};
-
-struct RVALUE {
- union {
- struct free_obj free;
- struct RBasic basic;
- struct RObject object;
- struct RClass klass;
- struct RString string;
- struct RArray array;
- struct RHash hash;
- struct RRange range;
- struct RData data;
- struct RProc proc;
- } as;
-};
-
-typedef struct RVALUE RVALUE;
-
-typedef int each_object_callback(RVALUE *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)