D-Programming-Language/druntime — pull request #1075 by schveiguy (2014-12-29 16:00:35+00:00)
Title: Fix issue 13878 - Appending to an array block with modified flags loses flag info

https://issues.dlang.org/show_bug.cgi?id=13878

When appending to an array that is in the most recently used append cache, the flags from the cached block info were used to reallocate the new array.

This modification will re-fetch the flags from the GC to take into account any modifications made via `GC.setAttr` and `GC.clrAttr`. Otherwise, upon appending, those flag changes revert, and it's not obvious when this happens (and can be dangerous).

The re-fetching shouldn't have a significant performance impact because we are amortizing allocations, so we are amortizing this too.