Nick Sabalausky wrote: > "Jonathan M Davis" <[email protected]> wrote in message > news:[email protected]... >> On Sunday, September 25, 2011 03:18:29 Andrew Wiley wrote: >>> >>> Isn't this exactly what assumeSafeAppend is for? > > Hmm, I didn't know about that. (Actually, I remember hearing it mentioned > before, but then totally forgot about it.) > >> >> and if you're using assumeSafeAppend, then you >> need to guarantee that nowhere else has a reference to that array >> (otherwise >> it's _not_ safe to assume that it's safe to append) >> > > Would the consequences of failing to do that be any worse (or any > different at all?) than what I mentioned about: > > "One caveat about this method: If you save a slice of the stack, pop > elements off the stack, and then push new values back on, the old slice > you took will likely reflect the new values, not the original ones." > > ...?
It looks like it behaves the same, but the docs mention this: 'Calling this function, and then using references to data located after the given array results in undefined behavior.' So it is not wise to depend on it. One thing that wasn't clear to me (but might be obvious): after modifying an array, the behavior is reset and you will need to call assumeSafeAppend again.
