stack-allocated Window subclasses
noel at peralex.com
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