julia
3dc54a23 - (Re)move some GC pushes to be defensive about #35708 (#38355)

Commit
5 years ago
(Re)move some GC pushes to be defensive about #35708 (#38355) Somebody sent me a (Julia 1.4) trace that turned out to have the same root cause as #35708. I took a look around just to be sure that there was no other instance of this pattern and while I didn't see any, I did see a useless push/pull pair as well as a GC_PUSH of an unitialized struct. While neither are a problem by themselves, they will prevent the GC analyzer from giving an error if any of the function in between ever become safepoints (since the GC analyzer doesn't track initilized-ness). I think it as a rule of thumb, we should never push uninitialized values into a GC frame. Doing so assumes that there are no safepoints before the value is fully initialized, but if that is the case, the GC_PUSH may also be delayed until after initialization and if the assumption ever changes, at least the GC analyzer will catch it.
Author
Parents
Loading