office-gobmx/sw/inc/autostyle_helper.hxx
Mike Kaganski 732d0e8936 Related: tdf#141969 Make sure to use SwAttrSet for paragraph autostyles
See https://gerrit.libreoffice.org/c/core/+/153947/8#message-45a748bf68235bf143bec07cda2d704abb2b140f

> This started to cause e.g.  CppunitTest_sw_rtfexport3  to fail with
>   /sw/inc/node.hxx:493:53: runtime error: downcast of address 0x606000617540 which does not point to an object of type 'const SwAttrSet'
>   0x606000617540: note: object is of type 'SfxItemSet'
>    00 00 00 00  30 15 0f a9 a6 7f 00 00  50 6a 4a 01 40 60 00 00  c8 98 0f 00 30 61 00 00  80 30 6c 00
>                 ^~~~~~~~~~~~~~~~~~~~~~~
>                 vptr for 'SfxItemSet'
>       #0 0x7fa671d1b765 in SwContentNode::GetpSwAttrSet() const /sw/inc/node.hxx:493:53
>       #1 0x7fa671d7159e in SwContentNode::GetSwAttrSet() const /sw/inc/node.hxx:729:25
>       #2 0x7fa673be6c4a in SwDoc::TextToTable(std::__debug::vector<std::__debug::vector<SwNodeRange, std::allocator<SwNodeRange> >, std::allocator<std::__debug::vector<SwNodeRange, std::allocator<SwNodeRange> > > > const&) /sw/source/core/docnode/ndtbl.cxx:1236:51
>       #3 0x7fa6775f46a5 in SwXText::convertToTable(com::sun::uno::Sequence<com::sun::uno::Sequence<com::sun::uno::Sequence<com::sun::uno::Reference<com::sun::text::XTextRange> > > > const&, com::sun::uno::Sequence<com::sun::uno::Sequence<com::sun::uno::Sequence<com::sun:🫘:PropertyValue> > > const&, com::sun::uno::Sequence<com::sun::uno::Sequence<com::sun:🫘:PropertyValue> > const&, com::sun::uno::Sequence<com::sun:🫘:PropertyValue> const&) /sw/source/core/unocore/unotext.cxx:2279:51
>       #4 0x7fa6775fba56 in non-virtual thunk to SwXText::convertToTable(com::sun::uno::Sequence<com::sun::uno::Sequence<com::sun::uno::Sequence<com::sun::uno::Reference<com::sun::text::XTextRange> > > > const&, com::sun::uno::Sequence<com::sun::uno::Sequence<com::sun::uno::Sequence<com::sun:🫘:PropertyValue> > > const&, com::sun::uno::Sequence<com::sun::uno::Sequence<com::sun:🫘:PropertyValue> > const&, com::sun::uno::Sequence<com::sun:🫘:PropertyValue> const&) /sw/source/core/unocore/unotext.cxx
>       #5 0x7fa61c596a81 in writerfilter::dmapper::DomainMapperTableHandler::endTable(unsigned int, bool) /writerfilter/source/dmapper/DomainMapperTableHandler.cxx:1481:35
>       #6 0x7fa61cf2fdee in writerfilter::dmapper::TableManager::resolveCurrentTable() /writerfilter/source/dmapper/TableManager.cxx:409:33
>       #7 0x7fa61cf30bb1 in writerfilter::dmapper::TableManager::endLevel() /writerfilter/source/dmapper/TableManager.cxx:427:9
>       #8 0x7fa61c642f37 in writerfilter::dmapper::DomainMapperTableManager::endLevel() /writerfilter/source/dmapper/DomainMapperTableManager.cxx:496:19
>       #9 0x7fa61cf2cae1 in writerfilter::dmapper::TableManager::endParagraphGroup() /writerfilter/source/dmapper/TableManager.cxx:338:9
> (<https://ci.libreoffice.org//job/lo_ubsan/2836/>)

Regression after commit b036e563e6
(tdf#141969: use paragraph autostyle to mimic Word's table style,
2023-07-04).

Change-Id: Idc905cdea35bd0c5f3cfbd562d63894f44e64446
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154106
Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-07-06 14:41:31 +02:00

31 lines
942 B
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#pragma once
#include <sal/config.h>
#include <memory>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/uno/Sequence.hxx>
#include <svl/itemset.hxx>
#include "istyleaccess.hxx"
#include "swatrset.hxx"
class SwDoc;
std::shared_ptr<SfxItemSet>
PropValuesToAutoStyleItemSet(SwDoc& rDoc, IStyleAccess::SwAutoStyleFamily eFamily,
const css::uno::Sequence<css::beans::PropertyValue>& Values,
SwAttrSet& rSet);
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */