diff options
| author | Jean Boussier <jean.boussier@gmail.com> | 2025-11-25 15:06:33 +0100 |
|---|---|---|
| committer | Jean Boussier <jean.boussier@gmail.com> | 2025-12-03 08:14:56 +0100 |
| commit | 8c3909935e2ba9f79bf3492772c77c305a0d370b (patch) | |
| tree | 3a8cde0646e04f8ac79b6d332c462445b30dc2e4 /include/ruby/internal | |
| parent | 4762f429f4c26ce838bd3810dc709d08a207716a (diff) | |
Handle NEWOBJ tracepoints settings fields
[Bug #21710]
- struct.c: `struct_alloc`
It is possible for a `NEWOBJ` tracepoint call back to write fields
into a newly allocated object before `struct_alloc` had the time
to set the `RSTRUCT_GEN_FIELDS` flags and such.
Hence we can't blindly initialize the `fields_obj` reference to `0`
we first need to check no fields were added yet.
- object.c: `rb_class_allocate_instance`
Similarly, if a `NEWOBJ` tracepoint tries to set fields on the object,
the `shape_id` must already be set, as it's required on T_OBJECT to
know where to write fields.
`NEWOBJ_OF` had to be refactored to accept a `shape_id`.
Diffstat (limited to 'include/ruby/internal')
0 files changed, 0 insertions, 0 deletions
