[Issue 1760] New: Closures - Variable unnecessarily allocated on	heap
    Lars Ivar Igesund 
    larsivar at igesund.net
       
    Wed Jan  2 12:05:00 PST 2008
    
    
  
Frits van Bommel wrote:
> Lars Ivar Igesund wrote:
>> d-bugmail at puremagic.com wrote:
>> 
>>> is means that 'int b' is allocated on the heap, even though the function
>>> 'int getb()' is never referenced.
>> 
>> As Matti says, sort of a limitation, but not really one it is possible to
>> solve because the compiler can never know if an object referencing it is
>> linked in later on.
> 
> I disagree. In the example, no delegate pointing to three.getb() is ever
> created inside three(), and no other code can get to the symbol since it
> isn't in scope anywhere else. So the compiler could tell getb() doesn't
> even need to be emitted and 'b' can be stack-allocated, if only it would
> try to determine that fact.
Good point, didn't look to the top to see that it's all inside a delegate.
-- 
Lars Ivar Igesund
    
    
More information about the Digitalmars-d-bugs
mailing list