Bug #20271
Updated by luke-gru (Luke Gruber) 9 months ago
When embedded strings are moved, not all the embedded bytes are aren't copied over to the new embedded string. This shows itself when an embedded string has more than 16 characters. characters, and can also be a problem when the MovedObject has been garbage collected and another object has taken its place in the ruby heap. For example: ```ruby r = Ractor.new { foo = receive puts foo foo } obj = "12345678" * 3 puts obj r.send(obj, move: true) r.take ``` ``` 123456781234567812345678 1234567812345678 ```