On Thursday, 5 March 2015 at 15:20:47 UTC, monarch_dodra wrote:
On Monday, 23 February 2015 at 22:15:54 UTC, Walter Bright
wrote:
private:
E[] array;
size_t start, end;
int* count;
What is the point of keeping start/end? Aren't those baked into
the array slice? Not storing start end means not having to do
index arithmetic (minor), reducing struct size (always nice).
But more importantly, it allows implicit (and conditional)
bounds checking (awesome), which actually runs regardless
anyways.
Or did I miss something?
`GC.free()` needs a pointer to the start of the allocated block;
it will not release memory if it gets an interior pointer. But as
far as I can see, one pointer that stores the original address
should be enough.