null-deref of m_xChartDoc seen

#0  0x00007d2c10f56497 in rtl::Reference<chart::Diagram>::Reference (handle=..., this=<optimized out>)
     at include/rtl/ref.hxx:79
 #1  chart::ReferenceSizeProvider::setValuesAtAllDataSeries (this=0x7ffce60d8d70)
     at chart2/source/tools/ReferenceSizeProvider.cxx:95
 #2  0x00007d2c10cd6a1f in chart::ChartController::impl_adaptDataSeriesAutoResize (this=<optimized out>)
     at chart2/source/controller/main/ChartController_Tools.cxx:192
 #3  0x00007d2c10cb3cec in operator() (nResult=<optimized out>, __closure=<optimized out>)
     at chart2/source/controller/main/ChartController.cxx:1672
 #4  std::__invoke_impl<void, chart::ChartController::executeDispatch_SourceData()::<lambda(int)>&, int> (__f=...)
     at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/invoke.h:61
 #5  std::__invoke_r<void, chart::ChartController::executeDispatch_SourceData()::<lambda(int)>&, int> (__fn=...)
     at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/invoke.h:111
 #6  std::_Function_handler<void(int), chart::ChartController::executeDispatch_SourceData()::<lambda(int)> >::_M_invoke(const std::_Any_data &, int &&) (__functor=..., __args#0=<optimized out>) at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/std_function.h:290
 #7  0x00007d2c134e2268 in std::function<void (int)>::operator()(int) const (__args#0=<optimized out>, this=0x7ffce60d8de0)
     at /opt/rh/devtoolset-12/root/usr/include/c++/12/bits/std_function.h:591
 #8  Dialog::EndDialog (this=0x4abc7140, nResult=<optimized out>)
     at vcl/source/window/dialog.cxx:1213

(gdb) print m_xChartDoc
$3 = {m_pBody = 0x0}

Change-Id: I6f2cdb176cf1acc7b000e24fa314a6cbe344a525
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187277
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
This commit is contained in:
Caolán McNamara
2025-07-02 12:06:00 +01:00
parent 0be7618a89
commit 08dd90f9a5

View File

@ -92,6 +92,8 @@ void ReferenceSizeProvider::setValuesAtTitle(
void ReferenceSizeProvider::setValuesAtAllDataSeries()
{
if (!m_xChartDoc)
return;
rtl::Reference< Diagram > xDiagram( m_xChartDoc->getFirstChartDiagram());
if (!xDiagram)
return;