mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
Adding GC.compact
and compacting GC support.
This commit adds the new method `GC.compact` and compacting GC support. Please see this issue for caveats: https://bugs.ruby-lang.org/issues/15626 [Feature #15626] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@67479 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
c09e35d7bb
commit
3ef4db15e9
27 changed files with 1677 additions and 131 deletions
24
method.h
24
method.h
|
@ -40,9 +40,9 @@ typedef struct rb_scope_visi_struct {
|
|||
/*! CREF (Class REFerence) */
|
||||
typedef struct rb_cref_struct {
|
||||
VALUE flags;
|
||||
const VALUE refinements;
|
||||
const VALUE klass;
|
||||
struct rb_cref_struct * const next;
|
||||
VALUE refinements;
|
||||
VALUE klass;
|
||||
struct rb_cref_struct * next;
|
||||
const rb_scope_visibility_t scope_visi;
|
||||
} rb_cref_t;
|
||||
|
||||
|
@ -50,10 +50,10 @@ typedef struct rb_cref_struct {
|
|||
|
||||
typedef struct rb_method_entry_struct {
|
||||
VALUE flags;
|
||||
const VALUE defined_class;
|
||||
VALUE defined_class;
|
||||
struct rb_method_definition_struct * const def;
|
||||
ID called_id;
|
||||
const VALUE owner;
|
||||
VALUE owner;
|
||||
} rb_method_entry_t;
|
||||
|
||||
typedef struct rb_callable_method_entry_struct { /* same fields with rb_method_entry_t */
|
||||
|
@ -123,8 +123,8 @@ typedef struct rb_iseq_struct rb_iseq_t;
|
|||
#endif
|
||||
|
||||
typedef struct rb_method_iseq_struct {
|
||||
const rb_iseq_t * const iseqptr; /*!< iseq pointer, should be separated from iseqval */
|
||||
rb_cref_t * const cref; /*!< class reference, should be marked */
|
||||
rb_iseq_t * iseqptr; /*!< iseq pointer, should be separated from iseqval */
|
||||
rb_cref_t * cref; /*!< class reference, should be marked */
|
||||
} rb_method_iseq_t; /* check rb_add_method_iseq() when modify the fields */
|
||||
|
||||
typedef struct rb_method_cfunc_struct {
|
||||
|
@ -135,20 +135,20 @@ typedef struct rb_method_cfunc_struct {
|
|||
|
||||
typedef struct rb_method_attr_struct {
|
||||
ID id;
|
||||
const VALUE location; /* should be marked */
|
||||
VALUE location; /* should be marked */
|
||||
} rb_method_attr_t;
|
||||
|
||||
typedef struct rb_method_alias_struct {
|
||||
const struct rb_method_entry_struct * const original_me; /* original_me->klass is original owner */
|
||||
struct rb_method_entry_struct * original_me; /* original_me->klass is original owner */
|
||||
} rb_method_alias_t;
|
||||
|
||||
typedef struct rb_method_refined_struct {
|
||||
const struct rb_method_entry_struct * const orig_me;
|
||||
const VALUE owner;
|
||||
struct rb_method_entry_struct * orig_me;
|
||||
VALUE owner;
|
||||
} rb_method_refined_t;
|
||||
|
||||
typedef struct rb_method_bmethod_struct {
|
||||
const VALUE proc; /* should be marked */
|
||||
VALUE proc; /* should be marked */
|
||||
struct rb_hook_list_struct *hooks;
|
||||
} rb_method_bmethod_t;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue