Type Aware GC Questions

Sean Kelly sean at f4.ca
Mon Jan 29 12:55:42 PST 2007


Frank's suggestion seems reasonable.  There's no way to pass a 'mask' to 
the GC for a specific block at the moment.

Craig Black wrote:
> Could it be done with an overloaded new somehow?
> 
> "Sean Kelly" <sean at f4.ca> wrote in message 
> news:epli16$rvc$1 at digitaldaemon.com...
>> Craig Black wrote:
>>> "Walter Bright" <newshound at digitalmars.com> wrote in message 
>>> news:ephqje$1eje$2 at digitaldaemon.com...
>>>> Craig Black wrote:
>>>>> I was wondering, just how smart is the compiler now?  If I define a 
>>>>> class
>>>>> that doesn't have any pointers, then will the compiler know that it 
>>>>> doesn't
>>>>> have pointers?
>>>> Yes.
>>>>
>>>>> If I only have one pointer in my class, will the GC only
>>>>> scan that location?
>>>> No, it'll scan the whole class. All it has is a bit that says "might 
>>>> have pointers" or "has no pointers".
>>> If I have such a class, is there something I can do to inform the GC not 
>>> to scan a certain portiion of memory?
>> Phobos:
>>
>>     import std.gc;
>>
>>     MyClass c = new MyClass;
>>     hasNoPointers( c );
>>
>> Tango:
>>
>>     import Tango.core.Memory;
>>
>>     MyClass c = new MyClass;
>>     gc.setAttr( c, GC.BlkAttr.NO_SCAN );
>>
>> But this still only works for the entire memory block, not a subrange.
>>
>>
>> Sean 
> 
> 



More information about the Digitalmars-d mailing list