mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
gc.h: move mrb_heap_page definition to gc.c
This commit is contained in:
+2
-11
@@ -41,22 +41,13 @@ typedef enum {
|
||||
#pragma warning(disable : 4200)
|
||||
#endif
|
||||
|
||||
typedef struct mrb_heap_page {
|
||||
struct RBasic *freelist;
|
||||
struct mrb_heap_page *prev;
|
||||
struct mrb_heap_page *next;
|
||||
mrb_bool old:1;
|
||||
/* Flexible array members area a C99 feature, not C++ compatible */
|
||||
/* void* objects[]; */
|
||||
} mrb_heap_page;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
typedef struct mrb_gc {
|
||||
mrb_heap_page *heaps; /* heaps for GC */
|
||||
mrb_heap_page *sweeps; /* page where sweep starts */
|
||||
struct mrb_heap_page *heaps; /* heaps for GC */
|
||||
struct mrb_heap_page *sweeps; /* page where sweep starts */
|
||||
struct RBasic *gray_list; /* list of gray objects to be traversed incrementally */
|
||||
struct RBasic *atomic_gray_list; /* list of objects to be traversed atomically */
|
||||
size_t live; /* count of live objects */
|
||||
|
||||
@@ -148,6 +148,15 @@ typedef struct {
|
||||
#define MRB_HEAP_PAGE_SIZE 1024
|
||||
#endif
|
||||
|
||||
typedef struct mrb_heap_page {
|
||||
struct RBasic *freelist;
|
||||
struct mrb_heap_page *prev;
|
||||
struct mrb_heap_page *next;
|
||||
mrb_bool old:1;
|
||||
/* Flexible array members area a C99 feature, not C++ compatible */
|
||||
/* void* objects[]; */
|
||||
} mrb_heap_page;
|
||||
|
||||
#define GC_STEP_SIZE 1024
|
||||
|
||||
/* white: 001 or 010, black: 100, gray: 000, red:111 */
|
||||
|
||||
Reference in New Issue
Block a user