Previously, we kept around `PatchPoint`s after patching them for several kinds of invariants. That wasted compute since repeated invalidation with the same key patched a growing list of patchpoints each time, making it accidentally O(n^2...alanwu (Alan Wu)
A good poison value gives a recognizable fault address if someone erroneously dereferences. Asserting the pointer is not poison shouldn't be necessary, so move it to RUBY_DEBUG builds.alanwu (Alan Wu)
As the documentation puts it, transmute is "incredibly unsafe". We can express what we need to with pointer casts in these closure FFI situations, so let's use pointer casts.alanwu (Alan Wu)
As the documentation puts it, transmute is "incredibly unsafe". We can express what we need to with pointer casts in these closure FFI situations, so let's use pointer casts.alanwu (Alan Wu)
When references show up on in the type declaration, it's an invitation to think about how long the implicit lifetime is. This code doesn't do anything tricky lifetime-wise, so it looks better declaring only raw pointers.alanwu (Alan Wu)