|
Ruby 3.5.0dev (2025-10-30 revision 15f2dcceb4787c5738dde48f580019c3765ce1b8)
|
Macros | |
| #define | RB_OBJ_WRITE(old, slot, young) RBIMPL_CAST(rb_obj_write((VALUE)(old), (VALUE *)(slot), (VALUE)(young), __FILE__, __LINE__)) |
| Declaration of a "back" pointer. | |
| #define | RB_OBJ_WRITTEN(old, oldv, young) RBIMPL_CAST(rb_obj_written((VALUE)(old), (VALUE)(oldv), (VALUE)(young), __FILE__, __LINE__)) |
| Identical to RB_OBJ_WRITE(), except it doesn't write any values, but only a WB declaration. | |
| #define RB_OBJ_WRITE | ( | old, | |
| slot, | |||
| young | |||
| ) | RBIMPL_CAST(rb_obj_write((VALUE)(old), (VALUE *)(slot), (VALUE)(young), __FILE__, __LINE__)) |
Declaration of a "back" pointer.
This is a write barrier for new reference from "old" generation to "young" generation. It writes young into *slot, which is a pointer inside of old.
| [in] | old | An old object. |
| [in] | slot | A pointer inside of old. |
| [out] | young | A young object. |
| #define RB_OBJ_WRITTEN | ( | old, | |
| oldv, | |||
| young | |||
| ) | RBIMPL_CAST(rb_obj_written((VALUE)(old), (VALUE)(oldv), (VALUE)(young), __FILE__, __LINE__)) |
Identical to RB_OBJ_WRITE(), except it doesn't write any values, but only a WB declaration.
oldv is replaced value with b (not used in current Ruby).
| [in] | old | An old object. |
| [in] | oldv | An object previously stored inside of old. |
| [out] | young | A young object. |