stack-allocated Window subclasses

Noel Grandin noel at
Tue Sep 23 05:52:17 PDT 2014

On 2014-09-23 02:40 PM, Michael Meeks wrote:
> The question is; what should we replace it with. Personally I'm more of a fan of intrusive reference counting for VCL 
> - we don't want lots of atomics, so that the optimizer can rid us of size inefficiency - and at least for now we can't 
> ref-count those guys anyway I think. Then again rtl::Reference<Foo> lost its nasty virtual methods recently (IIRC), so 
> - perhaps we could use that - but for the fact that it's unpleasantly long to type. 

SvRef (include/tools/ref.hxx) is the rough equivalent of boost::intrusive_ptr, so that would be my suggestion.
It use no atomics and has only one extra virtual call(other than the actual destructor) but removing that is 
straightforward, I just haven't got around to it.
Otherwise we should just standardise on boost::intrusive_ptr and remove SvRef.

> I'd also love to avoid 'orrible casts everywhere when converting to references to parent types [ perhaps I just do 
> this wrong myself ;-] 

This should be fixable if it doesn't already work - myself and sberg already did this for rtl::Reference.

>   I guess we need to have a plan in-place there before shunting all those widgets off onto the heap where we can 
> lifecycle manage them sensibly =) Thoughts ? Michael. 

Mostly I guess we need to figure out where and when to destroy them - is it in the destructor, or in some other method 
specific to this task?


More information about the LibreOffice mailing list