chart2/source/inc/Diagram.hxx |    9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

New commits:
commit ad59487053bcd267b53febde0cecbd64c7f94cc0
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Sun Mar 19 20:40:35 2023 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Mon Mar 20 09:02:41 2023 +0000

    crashtesting: frequent XDiagram OPropertySetHelper::getFastPropertyValue 
crash
    
    seen with
    
    gcc --version
    gcc (Debian 10.2.1-6) 10.2.1 20210110
    
    bt
    
     #1  0x00007ffff702fd36 in cppu::OPropertySetHelper::getFastPropertyValue 
(this=this@entry=0x55555991baa0,
         nHandle=nHandle@entry=0) at 
/home/buildslave/source/libo-core/cppuhelper/source/propshlp.cxx:550
     #2  0x00007fffd6e97b4d in chart::Diagram::getDiagramPositioningMode 
(this=0x55555991ba30)
         at 
/home/buildslave/source/libo-core/chart2/source/model/main/Diagram.cxx:720
     #3  0x00007fffd6dd9575 in 
chart::SeriesPlotterContainer::initializeCooSysAndSeriesPlotter 
(this=0x555559aa44a0,
         rChartModel=...) at 
/home/buildslave/source/libo-core/chart2/source/view/main/SeriesPlotterContainer.cxx:231
     #4  0x00007fffd6d96e02 in chart::ChartView::createShapes2D 
(this=this@entry=0x555558fb1fa0, rPageSize=...)
         at /usr/include/c++/10/bits/shared_ptr_base.h:1324
     #5  0x00007fffd6d98420 in chart::ChartView::createShapes 
(this=this@entry=0x555558fb1fa0)
         at 
/home/buildslave/source/libo-core/chart2/source/view/main/ChartView.cxx:1398
     #6  0x00007fffd6d98647 in chart::ChartView::impl_updateView 
(this=0x555558fb1fa0,
         bCheckLockedCtrler=bCheckLockedCtrler@entry=false)
         at 
/home/buildslave/source/libo-core/chart2/source/view/main/ChartView.cxx:1451
     #7  0x00007fffd6d9c5f0 in chart::ChartView::updateHard (this=<optimized 
out>)
    
    info vtbl this
    
    vtable for 'cppu::OPropertySetHelper' @ 0x7fffd71c7980 (subobject @ 
0x55555991baa0):
    [0]: 0x7fffd6ea0529 <non-virtual thunk to 
chart::Diagram::queryInterface(com::sun::star::uno::Type const&)>
    [1]: 0x7fffd6e95434 <non-virtual thunk to chart::Diagram::acquire()>
    [2]: 0x7fffd6e953ba <non-virtual thunk to chart::Diagram::release()>
    [3]: 0x7fffd6e9ff43 <non-virtual thunk to 
chart::Diagram::setFastPropertyValue(int, com::sun::star::uno::Any const&)>
    [4]: 0x7ffff702ff0b <non-virtual thunk to 
cppu::OPropertySetHelper::getFastPropertyValue(int)>
    [5]: 0xffffffffffffff88
    [6]: 0x7fffd71c7008 <typeinfo for chart::Diagram>
    [7]: 0x7fffd6ea0520 <non-virtual thunk to 
chart::Diagram::queryInterface(com::sun::star::uno::Type const&)>
    [8]: 0x7fffd6e9542e <non-virtual thunk to chart::Diagram::acquire()>
    [9]: 0x7fffd6e953b4 <non-virtual thunk to chart::Diagram::release()>
    [10]: 0x7fffd6e9ae67 <non-virtual thunk to 
chart::Diagram::getPropertySetInfo()>
    [11]: 0x7ffff702de17 <non-virtual thunk to 
cppu::OPropertySetHelper::setPropertyValue(rtl::OUString const&, 
com::sun::star::uno::Any const&)>
    [12]: 0x7ffff702de89 <non-virtual thunk to 
cppu::OPropertySetHelper::getPropertyValue(rtl::OUString const&)>
    [13]: 0x7ffff702f6ec <non-virtual thunk to 
cppu::OPropertySetHelper::addPropertyChangeListener(rtl::OUString const&, 
com::sun::star::uno::Reference<com::sun::star::beans::XPropertyChangeListener> 
const&)>
    [14]: 0x7ffff702f8be <non-virtual thunk to 
cppu::OPropertySetHelper::removePropertyChangeListener(rtl::OUString const&, 
com::sun::star::uno::Reference<com::sun::star::beans::XPropertyChangeListener> 
const&)>
    [15]: 0x7ffff702fb24 <non-virtual thunk to 
cppu::OPropertySetHelper::addVetoableChangeListener(rtl::OUString const&, 
com::sun::star::uno::Reference<com::sun::star::beans::XVetoableChangeListener> 
const&)>
    [16]: 0x7ffff702fcf6 <non-virtual thunk to 
cppu::OPropertySetHelper::removeVetoableChangeListener(rtl::OUString const&, 
com::sun::star::uno::Reference<com::sun::star::beans::XVetoableChangeListener> 
const&)>
    [17]: 0xffffffffffffff28
    [18]: 0x7fffd71c7008 <typeinfo for chart::Diagram>
    [19]: 0x7fffd6ea0514 <non-virtual thunk to 
chart::Diagram::queryInterface(com::sun::star::uno::Type const&)>
    [20]: 0x7fffd6e95425 <non-virtual thunk to chart::Diagram::acquire()>
    
    but without "final" used
    
    info vtbl this (and this is what I also get with fedora's gcc 12.2.1
    with "final" used)
    
    vtable for 'cppu::OPropertySetHelper' @ 0x7fffd79c8850 (subobject @ 
0x55555991cc98):
    [0]: 0x7fffd76a1370 <non-virtual thunk to 
chart::Diagram::queryInterface(com::sun::star::uno::Type const&)>
    [1]: 0x7fffd76962d2 <non-virtual thunk to chart::Diagram::acquire()>
    [2]: 0x7fffd7696258 <non-virtual thunk to chart::Diagram::release()>
    [3]: 0x7fffd769bcf7 <non-virtual thunk to 
chart::Diagram::getPropertySetInfo()>
    [4]: 0x7fffd77fcd5c 
<property::OPropertySet::setPropertyValues(com::sun::star::uno::Sequence<rtl::OUString>
 const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>
    [5]: 0x7ffff702e320 
<cppu::OPropertySetHelper::getPropertyValues(com::sun::star::uno::Sequence<rtl::OUString>
 const&)>
    [6]: 0x7ffff702f1ac 
<cppu::OPropertySetHelper::addPropertiesChangeListener(com::sun::star::uno::Sequence<rtl::OUString>
 const&, 
com::sun::star::uno::Reference<com::sun::star::beans::XPropertiesChangeListener>
 const&)>
    [7]: 0x7ffff702f282 
<cppu::OPropertySetHelper::removePropertiesChangeListener(com::sun::star::uno::Reference<com::sun::star::beans::XPropertiesChangeListener>
 const&)>
    [8]: 0x7ffff703085a 
<cppu::OPropertySetHelper::firePropertiesChangeEvent(com::sun::star::uno::Sequence<rtl::OUString>
 const&, 
com::sun::star::uno::Reference<com::sun::star::beans::XPropertiesChangeListener>
 const&)>
    [9]: 0x7ffff702dde2 
<cppu::OPropertySetHelper::setPropertyValue(rtl::OUString const&, 
com::sun::star::uno::Any const&)>
    [10]: 0x7ffff702de1e 
<cppu::OPropertySetHelper::getPropertyValue(rtl::OUString const&)>
    [11]: 0x7ffff702f490 
<cppu::OPropertySetHelper::addPropertyChangeListener(rtl::OUString const&, 
com::sun::star::uno::Reference<com::sun::star::beans::XPropertyChangeListener> 
const&)>
    [12]: 0x7ffff702f6f6 
<cppu::OPropertySetHelper::removePropertyChangeListener(rtl::OUString const&, 
com::sun::star::uno::Reference<com::sun::star::beans::XPropertyChangeListener> 
const&)>
    [13]: 0x7ffff702f8c8 
<cppu::OPropertySetHelper::addVetoableChangeListener(rtl::OUString const&, 
com::sun::star::uno::Reference<com::sun::star::beans::XVetoableChangeListener> 
const&)>
    [14]: 0x7ffff702fb2e 
<cppu::OPropertySetHelper::removeVetoableChangeListener(rtl::OUString const&, 
com::sun::star::uno::Reference<com::sun::star::beans::XVetoableChangeListener> 
const&)>
    [15]: 0x7fffd76a0dae <non-virtual thunk to 
chart::Diagram::setFastPropertyValue(int, com::sun::star::uno::Any const&)>
    [16]: 0x7ffff702fd00 <cppu::OPropertySetHelper::getFastPropertyValue(int)>
    [17]: 0x7fffd769bc26 <non-virtual thunk to chart::Diagram::getInfoHelper()>
    [18]: 0x7fffd77f78c0 
<property::OPropertySet::convertFastPropertyValue(com::sun::star::uno::Any&, 
com::sun::star::uno::Any&, int, com::sun::star::uno::Any const&)>
    [19]: 0x7fffd77fcb46 
<property::OPropertySet::setFastPropertyValue_NoBroadcast(int, 
com::sun::star::uno::Any const&)>
    [20]: 0x7fffd76a0f5f <non-virtual thunk to 
chart::Diagram::getFastPropertyValue(com::sun::star::uno::Any&, int) const>
    
    seen with exporting forum-de2-10559.odt to odt
    
    Change-Id: I18f7ddb90f9249eda5f5635fe4e9d185a2e092f1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149117
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/chart2/source/inc/Diagram.hxx b/chart2/source/inc/Diagram.hxx
index 403dfbb15385..2d40831c1892 100644
--- a/chart2/source/inc/Diagram.hxx
+++ b/chart2/source/inc/Diagram.hxx
@@ -67,9 +67,12 @@ typedef ::cppu::WeakImplHelper<
     Diagram_Base;
 }
 
-class OOO_DLLPUBLIC_CHARTTOOLS Diagram final :
-    public impl::Diagram_Base,
-    public ::property::OPropertySet
+class OOO_DLLPUBLIC_CHARTTOOLS Diagram
+#if !defined __GNUC__ || __GNUC__ >= 12
+    final
+#endif
+    : public impl::Diagram_Base
+    , public ::property::OPropertySet
 {
 public:
     Diagram( css::uno::Reference< css::uno::XComponentContext > xContext );

Reply via email to