Summary: 64-bit array append generates inline code to copy new
data, but does not call postblit
--- Comment #0 from Steven Schveighoffer <schvei...@yahoo.com> 2011-07-01
05:38:11 PDT ---
The 64-bit compiler no longer calls _d_arrayappendT directly, it now calls
_d_arrayappendCTX, which does *not* copy the new data to the array.
This is fine, because the compiler generates the necessary code to copy the new
data. However, the compiler does *not* call postblit on that data.
Two ways to fix this:
1. Simply switch to calling _d_arrayappendT again, and don't do the copying
2. Insert a call to __doPostblit (or whatever you want to rename it, it's in
rt/lifetime.d) after copying the data, but only if the type *has* a valid
This is the reason the runtime is currently failing unit tests on 64-bit code.
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------