GSoC 2016 - Precise GC

thedeemon via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun May 8 21:08:08 PDT 2016


On Sunday, 8 May 2016 at 11:16:56 UTC, deadalnix wrote:

>> Ones that have only pointers are probably OK too. Though I'm 
>> not sure if a precise scanner takes into account the type of 
>> the pointer. I would expect it to use embedded typeinfo in 
>> target block.
>>
>> -Steve
>
> Because of void* and classes, the GC MUST be able to find out 
> what type was actually allocated, or at least its pointer 
> bitmask.

Yep, and it does that by looking at metadata of the pointed 
object itself, it doesn't care about the type of pointer to that 
object. I mean if we have object x of class X in heap and 
pointers "X p1", "void* p2" and "Y p3" all having same value &x 
(pointing to the same address) then GC will have no problem in 
scanning x as long as it can access x's type info knowing the 
address of x in heap. Which means all p1, p2 and p3 might easily 
be just at one position in a union and that would not be a 
problem.


More information about the Digitalmars-d-announce mailing list