Dynamic array as stack and GC.BlkAttr.APPENDABLE

IgorStepanov via Digitalmars-d digitalmars-d at puremagic.com
Fri Nov 14 17:56:17 PST 2014


On Friday, 14 November 2014 at 23:49:00 UTC, ketmar via 
Digitalmars-d wrote:
> On Fri, 14 Nov 2014 23:23:17 +0000
> IgorStepanov via Digitalmars-d <digitalmars-d at puremagic.com> 
> wrote:
>
>> What does the NO_INTERIOR flag?
> it stops GC to acknowledge pointers inside allocated area as 
> anchors.
> i.e. if there is no pointer to the head (first address) of 
> allocated
> memory, it is assumed to be garbage.
>
> this way we have much less "false pointers", and GC not doing
> pointer->block conversions.
>
> for buckets we certainly has "head pointer" and can't have 
> pointers to
> bucket elements without "head pointer". so it's safe to tell GC 
> that it
> shouldn't do unnecessary work.

In other words, if buckets array will contain only uint-s there 
is no reason to mark buckets with NO_INTERIOR?


More information about the Digitalmars-d mailing list