mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Cleanup of mruby_objectspace.c and removed the unneccessary README for mruby_objectspace.
This commit is contained in:
@@ -1,4 +0,0 @@
|
||||
MRuby ObjectSpace Implementation
|
||||
=========
|
||||
|
||||
Currently only supports count_objects
|
||||
@@ -1,10 +1,28 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include <mruby.h>
|
||||
#include <mruby/gc.h>
|
||||
#include <mruby/hash.h>
|
||||
#include <mruby/value.h>
|
||||
|
||||
struct os_count_struct {
|
||||
size_t total;
|
||||
size_t freed;
|
||||
size_t counts[MRB_TT_MAXDEFINE+1];
|
||||
};
|
||||
|
||||
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);
|
||||
|
||||
if (is_dead(mrb, obj)) {
|
||||
obj_count->freed++;
|
||||
} else {
|
||||
obj_count->counts[obj->tt]++;
|
||||
obj_count->total++;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* ObjectSpace.count_objects([result_hash]) -> hash
|
||||
@@ -25,25 +43,6 @@
|
||||
*
|
||||
*/
|
||||
|
||||
struct os_count_struct {
|
||||
size_t total;
|
||||
size_t freed;
|
||||
size_t counts[MRB_TT_MAXDEFINE+1];
|
||||
};
|
||||
|
||||
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);
|
||||
|
||||
if (is_dead(mrb, obj)) {
|
||||
obj_count->freed++;
|
||||
} else {
|
||||
obj_count->counts[obj->tt]++;
|
||||
obj_count->total++;
|
||||
}
|
||||
}
|
||||
|
||||
mrb_value
|
||||
os_count_objects(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
@@ -109,12 +108,10 @@ os_count_objects(mrb_state *mrb, mrb_value self)
|
||||
|
||||
void
|
||||
mrb_mruby_objectspace_gem_init(mrb_state* mrb) {
|
||||
struct RClass *os;
|
||||
os = mrb_define_module(mrb, "ObjectSpace");
|
||||
struct RClass *os = mrb_define_module(mrb, "ObjectSpace");
|
||||
mrb_define_class_method(mrb, os, "count_objects", os_count_objects, MRB_ARGS_ANY());
|
||||
}
|
||||
|
||||
void
|
||||
mrb_mruby_objectspace_gem_final(mrb_state* mrb) {
|
||||
// finalizer
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user