https://bugs.documentfoundation.org/show_bug.cgi?id=157288

Julien Nabet <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Keywords|bibisectRequest             |
           Assignee|[email protected] |[email protected]
                   |desktop.org                 |
                 CC|                            |[email protected]

--- Comment #13 from Julien Nabet <[email protected]> ---
My previous logs on gdb were wrong because I had a symbols pb, I had to add
"add-auto-load-safe-path" instruction in ~/.gdbinit

Anyway I debugged this part in ODriverDelegator::getDataDefinitionByConnection
from connectivity/source/drivers/hsqldb/HDriver.cxx:
473 TWeakPairVector::iterator i = std::find_if(m_aConnections.begin(),
m_aConnections.end(),
474 [&connection](const TWeakPairVector::value_type& rConnection) {
475 return rConnection.second.second.first.get() == connection.get(); });
see
https://opengrok.libreoffice.org/xref/core/connectivity/source/drivers/hsqldb/HDriver.cxx?r=0193b284#473)

when entering in the comparison part, LO enters
include/com/sun/star/uno/Reference.hxx:424
421 // only the query to XInterface must return the same pointer if they belong
to same objects
422 Reference< XInterface > x1( _pInterface, UNO_QUERY );
423 Reference< XInterface > x2( pInterface, UNO_QUERY );
424 return (x1._pInterface == x2._pInterface);

on gdb I go this:
(gdb) p x1
$1 = uno::Reference to (connectivity::hsqldb::OHsqlConnection *) 0x55ee6a6f9490
(gdb) p x2
$2 = uno::Reference to ((anonymous namespace)::ProxyRoot *) 0x55ee69fe6ed0

so finally got:
(gdb) p (x1._pInterface == x2._pInterface)
$3 = false


with the patch https://gerrit.libreoffice.org/c/core/+/157178, I got:
(gdb) p x1
$1 = uno::Reference to (connectivity::hsqldb::OHsqlConnection *) 0x55b51683b430
(gdb) p x2
$2 = uno::Reference to (connectivity::hsqldb::OHsqlConnection *) 0x55b51683b430


About the change in ProxyRoot::queryAggregation from
stoc/source/proxy_factory/proxyfac.cxx, first called is:
#0  (anonymous
namespace)::ProxyRoot::queryAggregation(com::sun::star::uno::Type const&)
(this=0x55b5181d7ea0, rType=invalid uno::Type) at
stoc/source/proxy_factory/proxyfac.cxx:295
#1  0x00007ffb4412c0fc in non-virtual thunk to (anonymous
namespace)::ProxyRoot::queryAggregation(com::sun::star::uno::Type const&) () at
stoc/source/proxy_factory/proxyfac.cxx:345
#2  0x00007ffb4d5bd190 in
connectivity::OConnectionWrapper::queryInterface(com::sun::star::uno::Type
const&) (this=0x55b518621248, _rType=invalid uno::Type)
    at connectivity/source/commontools/ConnectionWrapper.cxx:142
#3  0x00007ffb22633d97 in
connectivity::hsqldb::OHsqlConnection::queryInterface(com::sun::star::uno::Type
const&) (this=0x55b5186211e0, _rType=invalid uno::Type)
    at connectivity/source/drivers/hsqldb/HConnection.cxx:103
#4  0x00007ffb22633e6c in non-virtual thunk to
connectivity::hsqldb::OHsqlConnection::queryInterface(com::sun::star::uno::Type
const&) () at
/home/julien/lo/libreoffice/instdir/program/../program/libhsqldb.so
#5  0x00007ffb22627e89 in
com::sun::star::uno::BaseReference::iquery(com::sun::star::uno::XInterface*,
com::sun::star::uno::Type const&) (pInterface=0x55b518621200, rType=invalid
uno::Type)
    at include/com/sun/star/uno/Reference.hxx:59
#6  0x00007ffb2263da39 in
com::sun::star::uno::Reference<com::sun::star::sdbc::XConnection>::iquery(com::sun::star::uno::XInterface*)
(pInterface=0x55b518621200) at include/com/sun/star/uno/Reference.hxx:74
#7  0x00007ffb2264b7bc in
com::sun::star::uno::Reference<com::sun::star::sdbc::XConnection>::set(com::sun::star::uno::BaseReference
const&, com::sun::star::uno::UnoReference_Query)
    (this=0x7ffe0dda46b8, rRef=...) at
include/com/sun/star/uno/Reference.hxx:285
#8  0x00007ffb226411b1 in
connectivity::hsqldb::ODriverDelegator::connect(rtl::OUString const&,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
    (this=0x55b51691b2a0, url="sdbc:embedded:hsqldb", info=uno::Sequence of
length 5 = {...}) at connectivity/source/drivers/hsqldb/HDriver.cxx:386

so during the connection but also several times after.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to