--- Comment #8 from Leandro Lucarella <llu...@gmail.com> 2010-06-22 10:03:22
(In reply to comment #7)
> std.file.read returns a void, but it's allocated manually via gc.malloc(),
> and I think the no-pointers thing was done right.
And what is the rationale for not returning ubyte?
> The correct solution to this problem would be to apply the patch in bug 3463
> (precise heap scanning), and then probably investigate precise stack scanning.
You can't have full precise scanning in D, because of unions and other
low-level constructs, so the problem of false pointers will be still there even
with that patch (of course the chances of having a false pointer will be much
> I believe the patch in bug 2927 (no interior pointers attribute) would not
> well with Andrei's safety ideology, so let's forget that.
That's stupid, it's not unsafer than NO_SCAN or casting a pointer to int, or
whatever construct you like. That's obviously a construct that not everybody
will use. So let's not forget that (and putting words in somebody else's mouth
is not a good argument either =).
> Note that enhancement 2927 could be simulated by using a wrapper object, that
> behaves like an array, but actually uses C malloc to allocate memory. When the
> wrapper gets collected, its finalizer can free() the memory. Or using
> counting, like (I believe) Andrei's TightArray (or what was it named) does.
That's true, is a little more convoluted than having NO_INTERIOR and is not as
easy to use by the compiler itself, but could be another option.
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------