RCArray is unsafe
Zach the Mystic via Digitalmars-d
digitalmars-d at puremagic.com
Tue Mar 3 07:07:32 PST 2015
On Tuesday, 3 March 2015 at 08:04:25 UTC, Manu wrote:
> My immediate impression on this problem:
>
> s.array[0] is being passed to foo from main. s does not belong
> to main
> (is global), and main does not hold have a reference to s.array.
> Shouldn't main just need to inc/dec array around the call to
> foo when
> passing un-owned references down the call tree.
> It seems to me that there always needs to be a reference
> _somewhere_
> on the stack for anything being passed down the call tree
> (unless the
> function is pure). Seems simplest to capture a stack ref at the
> top
> level, then as it's received as arguments to each callee, it's
> effectively owned by those functions and they don't need to
> worry
> anymore.
>
> So, passing global x to some function; inc/dec x around the
> function
> call that it's passed to...? Then the stack has its own
> reference, and
> the global reference can go away safely.
This is my position too.
There is another problem being discussed now, however, having to
do with references to non-rc'd subcomponents of an Rc'd type.
More information about the Digitalmars-d
mailing list