I need to better understand our css::uno::Reference
Lionel Elie Mamane
lionel at mamane.lu
Wed Jun 18 13:58:34 PDT 2014
On Wed, Jun 18, 2014 at 05:04:02PM +0200, Stephan Bergmann wrote:
> On 06/18/2014 04:21 PM, Lionel Elie Mamane wrote:
>> Why does the attached patch lead to a segfault in "make
>> JunitTest_dbaccess_unoapi"? (The patch is against very recent master,
>> as in "I pushed right before hitting send on this email".)
>> Essentially, it changes, in code internal to a class,
>> Reference< XResultSet >
>> by
>> Reference< OResultSet >
> Short answer (from just browsing the top of FOO.patch): Use
> css::uno::Reference<X> only for (C++ classes representing) UNO interfaces,
> and use rtl::Reference<C> for C++ classes implementing UNO objects.
Aha. This works. If you feel like explaining the C++-technical reason
behind why we need different Reference implementations for the two
cases... Feel free.
I assume I can mix-and-match both, they will use the same (shared)
counters for reference counting?
I see there is no rtl::WeakReference, and no automatic conversion from
rtl::Reference to css::uno::(Weak)Reference; oh well, I can add
".get()" here and there.
--
Lionel
More information about the LibreOffice
mailing list