Hi, i’ve been trying to do small changes on some objects using Fiddle, such as changing flags through Fiddle::Pointer, and passing the value based on the object_id. As far as i know in MRI an object_id coincides with a VALUE of an object on the MRI. Up to ruby 2.6 i could get the correct Pointer for an object_id and also the id of an object is the same when doing a bitwise to the left and printing as hex
pry(main)> obj = Object.new
=> #<Object:0x000056374c25dad0>
[2] pry(main)> (obj.object_id << 1).to_s(16)
=> "56374c25dad0"
However on Ruby 2.7 i can’t get to get a match when doing the same code and getting the pointer for an object
[1] pry(main)> obj = Object.new
=> #<Object:0x000055d5df82a630>
[2] pry(main)> (obj.object_id << 1).to_s(16)
=> "708"
Does anybody know or have any insight where to have more detail on the changes made on Ruby 2.7 regarding the object_id and the relation between the MRI objects?