On 6/11/2018 6:00 AM, Steven Schveighoffer wrote:
No, __doPostblit is necessary -- you are making a copy.

example:

File[] fs = new File[5];

fs[0] = ...; // initialize fs
auto fs2 = fs;
fs.length = 100;

At this point, fs points at a separate block from fs2. If you did not do postblit on this, then when one of those arrays is destroyed, the other will become invalid, as the File reference count would go to 0.

Yes, you're right. This should probably go as a comment in the code in case it comes up again.

Reply via email to