[DOC] Documentation for flags of RClass

This commit is contained in:
Peter Zhu 2023-04-18 13:25:01 -04:00
parent 277098bde2
commit ae90fa981a
Notes: git 2023-04-20 20:53:34 +00:00

36
class.c
View File

@ -30,6 +30,42 @@
#include "ruby/st.h"
#include "vm_core.h"
/* Flags of T_CLASS
*
* 2: RCLASS_SUPERCLASSES_INCLUDE_SELF
* The RCLASS_SUPERCLASSES contains the class as the last element.
* This means that this class owns the RCLASS_SUPERCLASSES list.
* if !SHAPE_IN_BASIC_FLAGS
* 4-19: SHAPE_FLAG_MASK
* Shape ID for the class.
* endif
*/
/* Flags of T_ICLASS
*
* 0: RICLASS_IS_ORIGIN
* 3: RICLASS_ORIGIN_SHARED_MTBL
* The T_ICLASS does not own the method table.
* if !SHAPE_IN_BASIC_FLAGS
* 4-19: SHAPE_FLAG_MASK
* Shape ID. This is set but not used.
* endif
*/
/* Flags of T_MODULE
*
* 1: RMODULE_ALLOCATED_BUT_NOT_INITIALIZED
* Module has not been initialized.
* 2: RCLASS_SUPERCLASSES_INCLUDE_SELF
* See RCLASS_SUPERCLASSES_INCLUDE_SELF in T_CLASS.
* 3: RMODULE_IS_REFINEMENT
* Module is used for refinements.
* if !SHAPE_IN_BASIC_FLAGS
* 4-19: SHAPE_FLAG_MASK
* Shape ID for the module.
* endif
*/
#define METACLASS_OF(k) RBASIC(k)->klass
#define SET_METACLASS_OF(k, cls) RBASIC_SET_CLASS(k, cls)