Skip to content

Claude/paperless odf phase 1 rnyzcu - #64

Closed
theolivenbaum wants to merge 416 commits into
LibreOffice:masterfrom
curiosity-ai:claude/paperless-odf-phase-1-rnyzcu
Closed

theolivenbaum wants to merge 416 commits into
LibreOffice:masterfrom
curiosity-ai:claude/paperless-odf-phase-1-rnyzcu

Conversation

@theolivenbaum

Copy link
Copy Markdown

No description provided.

claude and others added 30 commits July 31, 2026 16:24
Two bytes in BIFF8 — which is a property of the HEADER record rather than of
the format, so LibreOffice picks between ReadByteString and ReadUniString on
the generation (xipage.cxx:114). Reading it wrong loses the header, which
loses nothing visible: the page count cannot catch it, because with the header
gone the top margin and the band move by the same amount in opposite
directions and the printable height is unchanged. Asserted directly instead,
alongside the BIFF column-width conversion — 2953 256ths of a character at 111
twips a digit comes out at 1279 twips and not 1280, because the conversion
subtracts half a twip before truncating, and LibreOffice's own rendering puts
the columns 63.95 points apart.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
The restart rule was read from all four formats and applied by nothing.
It is genuinely circular -- a note's number under a per-page restart is
its position within its page, the citation's width follows from the
number, and where the citing line breaks follows from the width -- and
Writer does not look for a fixed point. It numbers over pages that
already exist (SwRootFrame::UpdateFootnoteNums, ftnfrm.cxx:971;
SwPageFrame::UpdateFootnoteNum, ftnfrm.cxx:2564) and then damps:
txtftn.cxx:560 validates the frame one iteration stale under the comment
"We break the oscillation". Layout/NoteRenumbering.cs does the same --
paginate, renumber per page, lay out once more, stop.

Three things writing it turned up:

A renumbering is a text edit, not a number. LibreOffice draws a note's
number twice and all four readers emit it twice, so the pass rewrites
paragraphs -- text, runs, frame anchors and the offsets of the notes
after it.

PageNote had to learn the class's whole NoteNumbering (the restart alone
cannot say what sequence to write the new number in), the citation as
read, and where that citation sits in the note's own body. The last is
zero in three formats and not in DOCX, where a w:footnoteRef marks the
place and a note beginning with a tab puts it at one.

The rewritten blocks have to reach the caller, or pagination indexes
lines into a list the reader still holds and the old numbering is drawn.
Each page names its own list and Paginator.Blocks reports it.

Guarded on NoteRenumbering.Applies, so every document whose notes do not
restart pays one walk and takes no second pagination.

Verified against LibreOffice in all four formats: page one cites 1,2,3,4
and page two 1,2,3,4 again, at the anchor and at the head of the note,
and the drawn text is character for character LibreOffice's. It cited
5,6,7,8 before.

1627 passing, 0 failed, 0 skipped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
The rendering half of the TODO: every rule with its citation, every
number with the reference it was measured against, and every gap with
what would settle it. Also the two decks that are not in the fidelity
comparison and what they currently measure at, since that is where the
next work is.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
The 16 pt heading baseline is fixed, and the rule is not where the symptom was.
The leading proportional line spacing adds above a paragraph's first line
belongs to the paragraph *above* it, measured against that paragraph's last
line: SwTextFormatter::CalcRealHeight guards the whole switch with
if(!IsParaLine()) and says outright that "for the _first_ line the line spacing
of the previous paragraph is applied in SwFlowFrame::CalcUpperSpace()".

That is why nothing saw it. Between two paragraphs at the same spacing the two
readings agree exactly — the leading one paragraph withholds is the leading the
next hands back — so every baseline lands where it did and the block is the same
height. It is visible only across a size change, and only as an absolute
baseline. Before: 35.250/22.400 against LibreOffice's 37.200/20.450. After:
37.250/20.400, and every baseline of paginated.* in all four formats now agrees
absolutely to 0.051 pt, the constant this tree already lives with.

The footnotes.rtf separator turns out to be LibreOffice's defect, not ours, and
the attribution is measured rather than asserted: its RTF import loses the face
the note states, rendering the built-in Footnote style inheriting Liberation
Serif where the file says Carlito twice over. Bisected on hand-written RTF — the
trigger is the \sN reference, not the group. Liberation Serif is 13 twips taller
a line at ten point; two notes, 26 twips, 1.30 pt against the 1.286 measured.
Recorded as a known deviation with a test that fails if it stops holding.

Note-restart application follows Writer's shape exactly: renumber per page over
finished pages, lay out once more, stop. A renumbering turned out to be a text
edit rather than a number, since all four readers emit the citation into the
text twice.

Merging this against the frame work needed the two rules combined rather than
either picked: a line beside a frame clear of both margins is several boxes on
one baseline sharing one box's worth of geometry, so the leading has to come off
whichever stretch is the one whose height is counted, and Fit measures the line
from its last stretch.

1649 tests pass, 0 skipped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
Slides lay out and draw. PPTX and ODP decks emit background, per-shape fill,
outline and text into IDrawingSink; no backend was written, because the PDF and
raster ones landed earlier today.

The finding that would otherwise have cascaded through every deck: a slide's
line height is not the font's. pptshapecontext.cxx sets
FontIndependentLineSpacing, and impedit3.cxx then makes ascent one em and the
line 1.2 em — so against Liberation Sans's own ascent of 0.905 em the font's
metrics are 1.705 pt out on every line of every shape. And flip-before-rotation
is proved rather than assumed: an rtTriangle with flipH and rot=5400000 lands on
the reference's exact vertices, where the other order gives a different triangle
in a different corner.

Right-to-left text draws in visual order, consuming the levels the itemiser was
already computing. A right-to-left paragraph is a mirror rather than a special
case, which is what Writer does in SwTextFrame::SwitchLTRtoRTL. L2 moved into
one generic TextItemiser.ReorderVisually so sub-runs and glyph runs cannot be
reordered by two implementations.

Its named trap cost hours and is worth keeping: ParagraphAdjust::START only
exists from LibreOffice 26.2, so the installed 24.2 renders a start-aligned
right-to-left paragraph against the *left* margin and rewrites
fo:text-align="right" as "end" on export. The corpus document states alignment
physically for that reason.

The three-way merge needed combining rather than picking twice. In Paginator, a
line beside a frame is several boxes on one baseline sharing one box's worth of
geometry, so the leading rule had to come off whichever stretch is the one whose
height is counted. In ParagraphLayouter, one agent hoisted the justification to
a local and the other added the stretch flag; both are kept, and the hoist was
checked to be per-site rather than a behaviour change, since the two call sites
measure different text.

1725 tests pass, 0 failed, 0 skipped, across all ten projects.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
…-rnyzcu

Claude/paperless odf phase 1 rnyzcu
… not load

A FontReference whose FaceKey names a family rather than a path never loads, and
the writer then had no hmtx to state a /Widths from, so it stated zeros. Every
glyph therefore sat a whole advance from where the widths put the pen and the
content stream corrected each one with a TJ of the entire advance: -722 and -556
thousandths between adjacent glyphs on sheet-print-xlsx.xlsx. An adjustment that
large is how a PDF spells a word break, so pdftotext got 13255 words out of that
file's fourteen pages against LibreOffice's 2281 -- one per character -- while
every operator-level comparison passed, because the pages did look right.

The display list already carries each glyph's advance, so that is the fallback.
With it, the same file extracts as 2281 words, exactly LibreOffice's count.

This is a fallback, not the fix: the face is still not embedded. Three callers
build the reference this way -- Paperless.Spreadsheets' SheetText.Describe,
Paperless.Presentations' SlideTextLayout.Reference and Paperless.WordProcessing's
PageDrawing.Reference -- and each should carry the resolver's own key instead.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
…age sequence

A DrawingML table decomposes into the shapes a slide already draws: one per
visible cell carrying its fill and its text, then one per consolidated grid
line carrying only a pen — cells first and borders after, which is what
LibreOffice's own table view contact does 'to get the correct overlapping'.

Measured against LibreOffice 24.2.7.2's PDF for a three-row, two-column table
whose every cell states a one-point red edge: seven strokes in the same order,
positions within 0.013 pt, pen 0.85 against 0.85009, cell fills and every
baseline within 0.015 pt.

The page sequence now skips hidden slides, which is what the reference PDF
does; extraction still reports and flags them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
…gns it

Cell fonts, alignment (including the general default that is the cell's
type rather than a constant), vertical alignment, indent, wrap,
shrink-to-fit and the `###`/General-shrink a too-narrow numeric cell
shows, ported from sc/source/ui/view/output2.cxx.

Two measured findings drove the geometry. The sheet path built its
FontReference from the face's family name rather than from the
resolver's key, so the PDF backend could not load the face, had no
/Widths to advance the pen with, and corrected every glyph with a TJ
adjustment of about -700 thousandths — which pdftotext reads as a word
break, turning a fourteen-page workbook into 13 255 one-character
words. And LibreOffice's output lands on whole twips and then on whole
hundredths of a millimetre, truncating positions and rounding font
heights, which accumulates to 1.5 pt down an eighty-row page.

sheet-print-{xlsx,ods} now agree with LibreOffice's own PDF on all 2281
positioned runs, within 0.006 pt across and 0.024 pt down.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
Both backends could state only a solid paint. A GradientPaint drew as its middle
stop and a BitmapPaint as nothing, and nothing decoded a picture at all.

Gradients. Linear becomes a PDF axial shading (/ShadingType 2) and a Skia linear
shader; radial and elliptical become /ShadingType 3 and a radial shader, the
ellipse's squash carried by the gradient's own transform. The colour ramp is one
exponential function per pair of stops, stitched with a /FunctionType 3 when
there are more than two -- which is what a:gsLst and loext:gradient-stop can say
and a two-colour attribute cannot. Conical and rectangular have no native form in
either backend, so both expand them through one shared band decomposition ported
from Gradient::AddGradientActions, so the picture cannot depend on the backend.

Bitmap fills. One image draw per tile inside a clip in PDF, an image shader with
a repeat matrix in Skia, both laid on the grid Fills.Tiles computes. That is what
LibreOffice writes: its PDF of the new corpus slide clips the shape and emits 47
"q ... cm /Im10 Do Q" groups sharing one 8x8 XObject.

Pictures. RasterImageDecoder turns encoded bytes into the display list's
RasterImage over Skia, sniffing the format by content so a mislabelled part still
passes a JPEG through to DCTDecode. It is public and lives in Paperless.Rendering
because Paperless.Core must stay dependency-free; a family library that wants it
needs a ProjectReference it does not have yet.

Measured against LibreOffice 24.2.7.2 on tests/corpus/features/paint-fills.fodp,
150 dpi, per channel:

  our raster vs its rendering   page 1 mae 0.0016, page 2 mae 0.0018
  our PDF vs its PDF, one       page 1 mae 0.0007, page 2 mae 0.0000
  rasteriser reading both       (identical, pixel for pixel)

Its page-one content stream is 91602 bytes and ours 2570: Impress decomposes
every shape gradient into flat bands before its PDF writer sees it (tdf#150551),
so its own shading writer is unreachable and an operator comparison of a gradient
is not a question that can be asked.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
…he deck that does it

slide-table-grid.pptx is hand-written because LibreOffice's own PPTX export
writes a:noFill on every edge of every cell, so no converted deck can state a
border at all. Two slides: a fully bordered grid with three junctions whose two
cells disagree, and one with spans, all three anchors and a row that has to grow
to its text.

What the measurement changed:

  - A grid line runs past its own end by half the width of the line *crossing*
    it there, not half its own. The reference draws a one-point horizontal from
    71.121 to 612.879 on a table spanning 72 to 612, because the verticals it
    meets are two points wide.

  - An Impress line box is ascent plus descent with no external leading, and
    both are rounded to a whole 1/100 mm first. Liberation Sans declares a line
    gap of 67/2048, so keeping it made an 18 pt line 20.70 pt where LibreOffice
    draws 20.154.

Twelve strokes on the first slide and nine on the second, in the same order,
every number within 0.045 pt of the reference. PdfStrokes now takes a stroking
colour set inside the same q-group, which is where our own writer puts it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
Unit tests ask the question an image diff is worst at -- given one fill at one
place, is the colour at a stated point the one the stop list says -- and ask it
of both backends on the same paints, since two renderings of one IR that disagree
is the bug worth catching. The fidelity tests ask whether the picture agrees with
LibreOffice's, on a new corpus slide stating a linear, an axial and a radial
gradient, a tiled bitmap fill and an embedded picture.

The corpus slide is committed in both flat ODF and the PPTX LibreOffice exports
from it, which keeps all three gradients as a:gradFill and the tile as a:blipFill
with a:tile -- so the OOXML reader has a file to aim at rather than a hypothesis.

PdfPaints is a new TestKit reader. It is separate from PdfFills rather than an
extension of it because PdfFills finds a page by looking for BT, and a slide of
four filled shapes has none; changing that rule would renumber the pages every
existing comparison reports. It walks the page objects properly instead, which
also fixes a trap worth naming: a shading dictionary contains the string
"/ShadingType", so picking the resource list as "the dictionary mentioning
/Shading" silently selects the last shading in the file and every lookup then
returns nothing.

1806 passing, 0 failed, 0 skipped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
…s agree

A PDF shading's colour space is DeviceRGB and it has no alpha channel, so until
now a GradientPaint whose stops carried transparency drew translucent on a PNG --
Skia's shader colours have an alpha for nothing -- and fully opaque in a PDF. One
display list, two pictures.

An alpha shared by every stop is now a constant /ca in an ExtGState. An alpha that
varies along the ramp is a luminosity soft mask: a second shading written in
DeviceGray with each stop's alpha as its grey level, painted into a transparency
group whose brightness the mask reads, which is the same construction LibreOffice
uses for a FLOATTRANSPARENT action (research/06-rendering.md E.3).

Measured on a red-to-transparent ramp across 24 cm: our PDF rasterised by poppler
against our own raster of the same fill, mean absolute difference 0.0003, ink
ratio 0.999.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
Cell backgrounds, cell borders with the shared edge settled, the printed
grid, the row and column headings, and header and footer text with their
fields expanded — from ODS, XLSX and XLS alike.

The shared-edge rule is ported rather than invented: Calc resolves an edge
two neighbours both state as std::max over svx::frame::Style::operator<
(framelinkarray.cxx:796, framelink.cxx:306), which orders by total width,
then double over single, then the narrower gap, and only settles two
one-twip hairlines by their pattern. Colour is not in the ordering, so an
equal pair goes to the cell being asked about.

Unlike a Writer table, Calc emits one stroke per cell edge rather than one
per grid line, and extends an end by half the width of the perpendicular
border it meets rather than by half its own. Both measured in LibreOffice's
own PDF of the new corpus file.

Corpus: sheet-decor-{ods,xlsx,xls}, one page carrying three fills, a shared
edge stated both ways round on each axis, a printed grid and headings, and
a header and footer using &A, &P, &N and &F.

Two reader fixes the measurements forced. An ODF header band's declared
height already includes its gap to the body, so adding the gap
double-counted it by 0.25 cm a page; and a BIFF header band has a floor the
OOXML one does not, because the BIFF filter never writes an ATTR_PAGE_SIZE
and Calc's own 0.75 cm default stands.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
XLSX's styles.xml fonts and cellXfs alignment (Ooxml/XlsxCellFormats,
XlsxSheetFormats), BIFF's FONT, XF, PALETTE, ROW and COLINFO
(MsBinary/XlsCellFormats), and ODF's cell styles through the existing
OdfStyles cascade (OpenDocument/OdsCellFormats). Each reader resolves
its own style chain and hands layout a SheetCellFormat; the formats are
pooled by value and kept apart from the cells, which is how a
uniformly-formatted million-cell region stays cheap.

An indent level is not one thing: BIFF makes it a flat 200 twips and
SpreadsheetML three space widths of the workbook's default font, which
for ten-point Liberation Sans is 330 twips. Both filters are right and
the same workbook saved both ways indents differently.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
Phase 3 in dotnet/TODO.md and the whole of src/Paperless.Rendering/TODO.md.

Recorded rather than left to be rediscovered: LibreOffice writes no shading
dictionary for a shape gradient at all, so the comparison had to become picture
for picture; the two ODF radial mappings a reader will need, both invisible until
the colours are compared; and three new known deviations with their evidence --
one shading against hundreds of bands, poppler's uninterpolated magnification
against Skia's and LibreOffice's own smooth one, and widths taken off the display
list when a face's file will not load.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
…does not

The rules with their citations and the measurements behind them: why a
shared edge goes to the heavier border and why that is not the Writer rule,
why the printed grid is black and sits at the far edge of each column, and
why "thin" strokes at three quarters of a point.

The named trap is the one that cost an hour: saving the corpus source as
ODS moved a cell's fill onto its whole column and cancelled it seven rows
down with table:style-name="Default", so "names the default style" and
"names no style" are different answers and a reader that conflates them
paints a cell LibreOffice leaves blank.

What is left is recorded with its cost rather than as a wish: the dynamic
header band is 1.03 pt on sheet-decor-xlsx.xlsx and needs font metrics in
the reader; the 1/100 mm quantisation is 0.03 pt a row and needs every
sheet measurement moved off EMUs.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
…t row

The far edge of a cell is drawn only where nothing follows to cover it, and
"nothing follows" is not "last on the page": a repeated header band is
placed above a block it is not adjacent to, and a hidden row leaves the same
gap. Calc reaches the same answer by drawing each band through its own
ScOutputData, so the last row of a repeat band keeps its bottom border.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
…he rules

A corpus document exercising alignment, wrap, indent, shrink-to-fit,
rotation and both ways a too-narrow number is drawn — hand-written as a
flat ODF with its header and footer switched off, because Calc
recomputes a dynamic band's height from the text in it and that is 1.3 pt
of vertical offset on every row of a workbook that has one — plus its
XLSX and XLS conversions, so all three readers answer the same
questions.

SheetTextComparisonTests compares operator for operator against
soffice's own PDF; SheetCellTextTests covers the decisions no document
demonstrates one at a time, chiefly the width-dependent General
rendering and the two device-unit roundings.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
… and auto numbers

The six presets that were transcribed by hand are replaced by the evaluator the
preset file is written for: guide formulas over the bounding box and the
adjustment handles, then a path of moves, lines, arcs and Beziers. The
definitions come from LibreOffice's own presetShapeDefinitions.xml, reduced to
the four things drawing needs and embedded as 110 kB of data — the same file
also serves a:custGeom, which needs the path builder and none of the formulas.

Three findings, all measured on slide-shape-features.pptx:

  - An arcTo angle is a *direction*, not an ellipse parameter, and on a
    non-circular arc the two differ. A 240 degree sweep on a 3:2 box ends at
    249 degrees of the ellipse's own parameter — 7.6 pt from where the stated
    angle alone puts it. Invisible on every rounded corner, which is why the six
    hand-transcribed shapes agreed without it.

  - A preset dash states no lengths: `dash` is four pen widths of ink and three
    of gap, and the pen width itself rounds into 1/100 mm first, so a stated
    three points is a 3.00467 pt pen and a 12.0187 pt dash.

  - An arrowhead is a filled polygon and the shaft is shortened by the marker's
    length less a fifteenth of its width — a deliberate overlap, so a notched
    marker has no gap behind it.

Every one of the twelve preset shapes agrees with the reference: the six
straight-edged ones vertex for vertex, the six curved ones by bounding box.
Both arrowheads, three dash arrays and twelve numbered runs likewise.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
…s cost

British spelling, why over what, and every measurement that settled a rule:
the border-width chain that turns one point into 0.85, the arc angle that is a
direction rather than an ellipse parameter, the grid line that overshoots by
half of what crosses it, and the line gap Impress does not add.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
It still said the OOXML and legacy spreadsheet and presentation formats did
not read at all. Every format in scope now extracts except XLSB, all three
families paginate, and all three render to PDF.

Records the end-to-end check that is worth repeating and that no component test
makes: our PDF against LibreOffice PDF of the same file on page count *and*
pdftotext word count. A document gives 41/41 and a workbook 2281/2281 — the
check that catches a PDF whose glyphs land correctly but whose text cannot be
extracted, which is exactly the defect it found.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
…n slides

--convert-to png and --convert-to jpg both write one file for a deck, its first
slide, so the PDF export is the only reference that says which slides are pages.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
claude added 18 commits August 2, 2026 08:12
WW8 spells a hard page break and a section break with the same character,
and says which by whether a section ends at that position.  This reader
took every one of them for a section break, so a Ctrl+Enter in a DOC was
silently dropped and the paragraph after it carried on down the same page.
LibreOffice looks the position up in the section PLCF and, finding no
boundary, puts an ordinary `SvxBreak::PageBefore` on the paragraph that
follows (`ww8par.cxx`:4097).  The same question is asked here as "does the
next paragraph belong to another section", which needs no character-
position arithmetic: a section-terminating U+000C is the last character of
its section, so the mark after it is in the next one.

The second half is what stops that from over-paginating.  A U+000C ends a
paragraph only when one is under way — `HandlePageBreakChar` adds a
paragraph end exactly under `!m_bWasParaEnd` and otherwise lets the break
settle on the empty paragraph the mark before it already opened.  Closing
one regardless put a blank line above every hard page break and every
section break in the document, which is a line of height per break and
eventually a page.  Both passes get the rule, because a document whose
extracted paragraphs and laid-out paragraphs disagree is a defect this
reader has shipped before.

Measured on the 66 DOC files of the words track, against reference PDFs
from LibreOffice 24.2.7.2:

                        match   page-exact   abs page error
  before                   38           41               60
  page break only          44           47               67
  with the paragraph rule  45           48               59

The whole words track — the 200 documents that remain after two were
withdrawn for carrying personal information — goes 116 -> 123 matches,
129 -> 136 page-exact, and 142 -> 141 total absolute page error.

Unproven: no committed fixture contains a U+000C that is not a section
boundary — LibreOffice's own DOC export writes a page break as
`sprmPFPageBreakBefore` rather than as the character, so one cannot be
generated here.  The evidence for this is the corpus measurement above and
the reference comparisons in `SectionComparisonTests`, which cover the
section-break half.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
`PARA_SPACE_MAX_AT_PAGES` reads like a switch and is not one.  It decides
whether the question is asked at all; `SwFlowFrame::HasParaSpaceAtPages`
(`flowfrm.cxx`:1415) then answers it per paragraph, and in the document
body it grants the space only on the first page and after an explicit
break, taking it away at every automatic one.  Outside the body — a
header, a footer, a table cell — it grants it everywhere, which is why
`FlowLayouter` is untouched.

Measured against LibreOffice 24.2.7.2 rather than read off the source: a
DOCX whose paragraphs carry 20 pt of space-before and nothing else, A4
with a one inch margin, puts page one's first line at 92.03 pt and page
two's at 72.03 pt.  Paperless put both at 92, so every page after the
first started 20 pt low.

A caveat worth recording, because it nearly inverted this: the synthetic
that establishes it needs a `word/settings.xml`, even an empty one.
Without that part LibreOffice never applies its OOXML compatibility
defaults, and the same file then keeps the space on page two *and* sums
paragraph spacings instead of taking the larger — which would have read
as evidence that `CollapsesSpacing` is backwards.  Adding an empty
settings part reversed both readings.

Words track, over the 200 documents that remain after two were withdrawn
for carrying personal information: 123 -> 124 matches, 136 -> 137
page-exact, total absolute page error 141 -> 146.

The error metric moving the wrong way is worth stating plainly.  Seven
documents changed and every one of them lost pages, which is the change
working.  Five moved towards the reference (one to an exact match).  The
other two are `150-5370-10H.docx` and `AC-150-5370-10G-updated-201604.docx`
— 721 and 697 reference pages — which were already 7 and 3 pages short
and are now 11 and 8.  Those two account for the whole of the +5, and
their remaining error is not this rule's.

Cumulative over the three changes of this round, same 200 documents:
113 -> 124 matches, 126 -> 137 page-exact, 147 -> 146 total absolute
page error.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
A hand-built DOCX without word/settings.xml does not get LibreOffice's
OOXML compatibility defaults, so a synthetic written to settle a
compatibility question answers a different one. It fails quietly: five
fixtures gave clean, consistent, mutually corroborating and wrong answers
to two separate questions, and adding an empty settings part reversed both
readings. The general form is worth stating — a fixture minimal enough to
be obviously correct may be minimal enough to be answering a different
question.

And a green test that proves nothing is worse than no test. Verify a new
test by reintroducing the bug and watching it fail; one written this round
still passed with the defect deliberately put back and was deleted rather
than shipped. Where a fix genuinely cannot be unit-tested — LibreOffice's
DOC export never writes the construct the bug concerned, so no fixture
could be generated — saying so and resting on a corpus measurement is a
complete answer.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
The sheets track's first whole-track sweep — 174 documents, never measured
before — came out at 53 matching, and the dominant failure was not a wrong
page but a wrong number of them: 40 documents over five pages past the
reference, 20 of those by more than a hundred, the worst giving 1170 pages
against LibreOffice's 220.

Three of the four causes produce blank paper, and none is where a page-count
problem is usually looked for. A wrapping cell was widening the print area,
because the overflow measurement never asked whether the cell wraps — a
wrapping column is usually prose, so its strings measure to thousands of
points and every point became empty columns. "Is there any cell to the left"
was standing in for a measurement, which was the right trade only while that
measurement was wrong. And a background fill was being treated as a border.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
Two agents wrote the footer eat-spacing rule independently — the second
time this round that opposite-facing clusters converged on one defect. The
already-merged version wins: it takes the page as well as the geometry, it
was verified against five synthetics varying footer lines against w:bottom
and w:footer, and it was measured at +3 matches on the corpus. Resolving
the two conflicts to it drops only the duplicate.

What this branch adds that the other did not is the running head whose only
content is a picture. It was being discarded as empty, so a document whose
letterhead is a logo lost it from every page.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
Every reader parsed them into IsCapitalised and nothing applied it — the
same shape as the tab-leader defect found two rounds ago, and the second
property this corpus has caught being read but never used.

It was deferred twice for being risky beside live pagination agents, since
capitalising a run changes glyph widths and therefore line breaks. Landing
it now that those agents are merged is the right order.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
All three tracks measured at one commit for the first time — slides
135/163, words 126/200, sheets 82/171.

Sheets had never been measured before this round. Its baseline was 53/174
and its first fix took it to 82, the largest single jump any track has had,
because its dominant defect was a whole class rather than a scatter: not a
wrong page but a wrong number of them, 20 documents over a hundred pages
past the reference and the worst giving 1170 against 220. Three of four
causes produce blank paper. Total page error is still 1120 there against
141 on words, so the class is not exhausted.

Words has changed shape. 41 of its 74 remaining failures are off by exactly
one page and total page error is down from 385 to 141 — metric errors give
deltas proportional to length and these do not, so what is left is a
boundary rule rather than a measurement.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
…ot draw them

`sprmPFDyaBeforeAuto` (0x245B) and `sprmPFDyaAfterAuto` (0x245C) were decoded by
nothing, so every paragraph a Word-or-HTML-sourced DOC marks "auto" was laid out with
no margin at all where LibreOffice gives it fourteen points. Found by round-tripping
`A380MaenPressRel.doc` through `soffice` to flat ODF: every paragraph in the export
carries `fo:margin-top="0.1945in"` — 280 twips — and nothing in our reading of the
binary produced it. That is `GetParagraphAutoSpace` (`sw/source/filter/ww8/ww8par6.cxx`
:4609), whose two branches are 280 twips and, once `fDontUseHTMLAutoSpacing` is set,
100.

The margin is applied in file order beside `sprmPDyaBefore`, the way
`Read_ParaAutoBefore` and `Read_UL` compose on one `SvxULSpaceItem`, so whichever the
document states last wins. Switched *off*, the sprm states nothing about the margin and
only clears the flag.

Reading the sprms alone over-paginates, because Word draws the margin at neither edge of
a table cell, nor at the top of a flow, nor between two items of one list — measured:
`RNW167A-150428.doc` went 9 pages to 11 and `FlightLaws.doc` 4 to 5 with only the decode
in place. So all four suppressions come with it, from `FinalizeTextNode`
(`ww8par.cxx`:2627-2681) and `WW8TabDesc::SetPamInCell` (`ww8par2.cxx`:2896-2935),
including their ordering: the cell edges run after the list rules and overrule them.

Measured over the corpus's 64 DOC files: exact page counts 47 -> 48, total absolute page
error 54 -> 53, and the only document whose pagination moved is the one the round-trip
named — `A380MaenPressRel.doc`, 2 pages against the reference's 3 before and 3 after.

The decode itself is untested and cannot be tested from a fixture: LibreOffice reads
these two sprms and never writes them, so no DOC exercising them can be produced with
`soffice`, and none in `tests/corpus` contains one. The rules the decode feeds are
covered instead, driven from hand-built blocks, and each was checked by putting the
defect back and watching the right tests fail.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
EE_CHAR_KERNING, which DrawingML spells a:rPr/@spc and a word processor
spells w:spacing: not the face's own pair kerning but a constant per
character, commonly negative, that a designer uses to pull a heading in.
Half the slides corpus's PPTX files state it.

It is a distance *between* characters, so a run of n carries n - 1 — what
SvxFont::QuickGetTextSize measures, adding one per distinct advance and
then taking the trailing one back off. A prefix table can express that
exactly for a paragraph measured whole and not for an arbitrary range,
since the count of gaps inside a range depends on the range; charging the
gap before each character is the reading that is right to the last unit
for the whole and one unit generous for a line starting part-way in.

The clamp afterwards is not tidiness. Every width read out of the table is
a difference of two entries, and a value more negative than a character is
wide would walk it backwards — a negative width fits any line.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
`SheetEmptyPages.IsBlank` returned "not blank" for any page carrying a
repeated band, on the reasoning that the band does print there. Calc does
not count it: `IsPrintEmpty` is asked for the page's own block alone —
`IsPrintEmpty(getStartColumn(), nPageStartRow, getEndColumn(), nRow-1, …)`
and the same range through `lcl_SetHidden`
(sc/source/ui/view/printfun.cxx:3174, :3053) — and `PrintPage` adds the
repeated band afterwards, so it never enters the question.

One `if` therefore disabled the whole empty-page class for every sheet
declaring `_xlnm.Print_Titles`. fy20-may20-sep20.xlsx repeats row 1 and
its column F reaches only row 76, so its second column band is two pages
to Calc and was 103 blank ones here: 233 pages against 96, now 118.

The note this contradicts is also corrected. It claimed `bSkipEmpty` is
off unless a caller passes it "and its PDF export does not"; both halves
are false. `ScPrintOptions::SetDefaults` sets it true
(sc/source/core/tool/printopt.cxx:38) and the render path reads the
module's options straight out of it (docuno.cxx:266-268).

Across sheets/batch-001…018: total absolute page error 1120 -> 1007.
It costs one match — FAA-2019-0995-0002_attachment_2.xlsx goes 33 -> 31
against 33, because a page whose block holds only styled-but-empty cells
is blank to us and is not to Calc. That narrowness is pre-existing and
already recorded; it was masked by the guard removed here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
`XlsxDrawings` took `xdr:sp` so the print area would be right and dropped
its `xdr:txBody` on the floor, so a text box put nothing on the paper.
A text box is the one thing on a sheet that no walk of the cells can
find, so no check built on the grid could see it either way — the words
were simply absent from every rendering.

Ten of the corpus's xlsx workbooks carry shape text and 1083 words of it
between them. On SSRO_Quarterly_Statistical_Bulletin_Q3201617_DATA.xlsx,
whose entire methodology note is one text box, that was 163 words against
LibreOffice's 550; it is now 386. Every one of the ten moved toward the
reference: their total absolute word error goes 1316 -> 502, and three of
them become exact matches. Across sheets/batch-001…018 the track goes
82/171 to 84/171.

`Layout/SheetShapeText.cs` models the body — paragraphs, run sizes, the
insets, the wrap flag and the anchor — and `Layout/SheetShapePainter.cs`
draws it, wrapping by whole words and scaling the type by the print zoom
as `SheetChart` already does.

What it still gets wrong is one thing: the runs name `+mn-lt`, the theme's
minor Latin face, and the sheet path can shape in one face only, so they
are set in Liberation Sans where LibreOffice uses Carlito. Carlito is
about 9% narrower, so our lines run further right and more of them fall
off the paper — that is the whole of the remaining 386 against 550. It is
the module's existing single-face limitation rather than a new one.
`vertOverflow="clip"` is likewise not honoured; honouring it before the
face is fixed would make the rendering better and the word count worse.
Both are recorded in the module TODO.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
Three readings the slides track was missing, measured together on all 163
documents: 135 matched before and 146 after, with total absolute word
error 8273 -> 7420 and not one previously-matching document lost.

**A master's txStyles names its face indirectly, and only extraction was
following it.** Two readers resolve a typeface — DrawingCharacterStyle for
the content tree and PptxTextBody for the page — and the second took
`<a:latin typeface="+mn-lt"/>` at face value. That is not a family, so
every body placeholder in such a deck fell through to the generic sans:
DejaVu Sans against the reference's Carlito, two fifths wider, so each
line broke early and the tail of a full placeholder overflowed off the
slide and was clipped away by the page. Nine PPTX documents were failing
on it alone. It is invisible in extraction, which is why it survived.

**a:rPr/@spc is the run's tracking**, in hundredths of a point and usually
negative — 54 of the 112 corpus PPTX files state it, and at the commonest
value of -20 a fifty-character line is ten points narrower than we drew
it.

**A binary deck asks for shrink-to-fit by holding outline text, not by
saying so.** The format has no a:normAutofit; svdfppt.cxx turns
TextFitToSizeType_AUTOFIT on for a TextHeaderAtom naming Body, HalfBody or
QuarterBody and off for a title, a subtitle and an ordinary shape, then
takes it away again for a shape that grows around its text instead —
fFitShapeToText, or a box whose lines never wrap. berlin.ppt, 29 slides of
outline placeholders, drew 1356 of the reference's 1395 words with its
page count already exactly right; the missing 39 were running off the
bottom of the slide.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
A sheet has one paper size and one set of margins, so a section break that does not start
a page cannot re-cut the page it lands on. We switched geometry at the break, which
narrows or widens the rest of that page part way down it.

Writer's model forces the other answer: page geometry lives on a page style, and
`SectionPropertyMap::CloseSectionGroup` gives a continuous section no page style of its
own, so `InheritOrFinalizePageStyles` hands it the previous section's
(`sw/source/writerfilter/dmapper/PropertyMap.cxx`:1309-1323, 1722). The paginator already
reasons this way about the running head a few lines above — "a sheet has one running
head" — and this is the same argument about the sheet itself.

Measured on `b050-19.docx`, whose first section is one empty half-inch-margined paragraph
and whose continuous second section is inch-margined. LibreOffice sets page one's text
from 36 pt to 574 pt and pages two and three from 72 pt to 539 pt; we set all three from
72 pt to 539. A tenth of the measure lost on every line of page one rewrapped it and
spilled the document onto a fourth page the reference does not have.

Columns are the exception and still change at the break, because Writer does start a text
section for them mid-page — which is also what keeps `section-columns.doc` passing.

Six corpus documents declare a continuous section whose geometry differs from the one
before it; four of them were failing. `b050-19.docx` 4 pages -> 3,
`hdss-bulletin-issue-285-25-june-2025.docx` 11 -> 10,
`Press release_EUREKA labels ITEA 3 Cluster.docx` now matches, and the two that were
already passing still do. `ABCD-SDE-23-00` is still +1, from something else.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
…ofit

135/163 to 146/163, with no regressions and every page count still exact.

The largest was a theme font. PptxTextBody took <a:latin typeface="+mn-lt"/>
literally; that is not a family, so every body placeholder whose master
states it fell through to the generic sans — DejaVu Sans against the
reference's Carlito, about 39% wider — breaking every line early and pushing
the tail off the slide. Extraction resolved it correctly all along, which is
exactly why it survived five rounds: invisible in text, decisive on the page.
Nine documents.

The autofit lead held, but not where the brief pointed: PPTX autofit was
already implemented, and the binary path had none. PPT never says
normAutofit — svdfppt.cxx derives it from the kind of text a shape holds,
a TextHeaderAtom naming Body or HalfBody getting AUTOFIT, then suppresses it
for a shape that grows around its text instead.

Also a:rPr/@spc, character tracking, stated by 54 of 112 corpus pptx files
and never read. Its corpus contribution is unmeasured and possibly zero —
only two decks state spc without also stating a theme reference, both at
0.01 pt — so it rests on unit tests and on LibreOffice's own flat-ODP export
writing fo:letter-spacing for it. The agent declined to claim more.

One correction to the record: Sylva introduction session.pptx had been
written down twice as "the reference is wrong". It was ours — the theme font
— and now matches exactly at 1115/1115.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
Two findings from the round that took slides to 146/163, both worth more
than the number.

The word-count gate has a ceiling and the slides track has reached it. Of
7420 residual word error, 6311 is text we draw and the reference does not,
and only 267 is text we miss: on the worst page of nine documents
LibreOffice rasterises an embedded object's replacement metafile, or draws
nothing at all, where we emit real vector glyph runs. Our output is
arguably better and wc -w scores it as failure. When over-drawing dominates
under-drawing by an order of magnitude the gate is measuring a difference in
rendering strategy rather than a defect, and the answer is to change
instrument rather than to drive the number down by making the output worse.

And "the reference is wrong" needs a higher bar than it gets. One document
was recorded as "not our defect, confirmed twice" by two independent agents.
It was ours — a theme font reference taken literally — and it now matches
exactly. Two rounds skipped that file because the record said not to look.
Name the mechanism before concluding it; "I cannot explain our output" is
not evidence the other side is wrong.

Also records the shape both of this round's largest defects shared: a value
that only the rendering path resolves wrongly, while extraction resolves it
correctly, is invisible to every text comparison and survives indefinitely.
A document whose extracted text is perfect and whose page is wrong is the
tell.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
`w:footer` states the footer's distance from the page's bottom edge, so it fixes the
rectangle's *bottom*; the top is what gives way. We grew the rectangle downwards from
where the body's text area ends instead, which is the same rectangle whenever the body
ends above the footer and the wrong one when it does not.

Nothing forbids a document from stating a footer distance larger than its bottom margin.
`easa-form-1.docx` says `w:bottom="357" w:footer="488"`, which puts the body's edge
below the footer's: the height clamped to nought and the rectangle landed at the body's
edge, 131 twips too low. Measured against the reference on that document, LibreOffice
ends the footer's text at 570.9 pt of a 595.35 pt landscape A4 page — the stated 488
twips from the edge — where we drew it at 577.3. After the change we draw it at 570.7.

Twenty-six corpus DOCX declare a header or footer whose stated distance leaves its margin
less than LibreOffice's 1 mm floor, and eleven of those cross it outright.

This is a drawing fix and not a pagination one: the body's own bottom is decided by
`Paginator.PulledUpBy`, which reads `FooterDistance` and the footer's advance directly and
is unchanged. The corpus page and word counts are expected to be identical, and the
existing `AFooterWithNoReservedHeightKeepsItsPlace` covers the case where the two edges
merely meet — the new test covers the case where they cross, and fails when the old
anchoring is put back.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
126/200 to 129/200, three fixed and none regressed.

sprmPFDyaBeforeAuto and AfterAuto were never decoded. Found by round-tripping
a document to flat ODF and seeing every paragraph come back with a 280-twip
top margin we produced nowhere. The decode alone over-paginates, so the four
suppressions came with it — flow top, both cell edges, inside a list — in
LibreOffice's own order.

A continuous section was re-cutting the sheet it lands on. A sheet has one
paper size and one set of margins; Writer cannot switch mid-page because a
continuous section gets no page style of its own and inherits the previous
one. Columns still change at the break.

And w:footer fixes the footer rectangle's bottom edge, not its top: growing
it downward from the body's edge breaks whenever w:footer exceeds w:bottom.

The reusable artefact from this round is not a fix. Round-tripping every
failure through soffice classified all 74 in one background run — 17
reader-side, 52 layout-side, 5 page-correct — which is the split that should
shape the next round rather than another page-delta histogram.

Two more notes in the record turned out wrong as stated: the four "footer
regressions" are heterogeneous and three are reader-side, one having a
floating table in its footer and no tabs at all; and easa-form-1 is not a
footer-height problem, its page-1 body being identical to the reference.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PCFkGZ2rzTHM5gqrwG1P7U
theolivenbaum pushed a commit to curiosity-ai/x-ray-office that referenced this pull request Aug 19, 2026
…oing it

absrc-pac-01-info-note-en.doc is 6 pages against 7 with words at
1301/1303. On page 1 the reference wraps partially past a floating icon
table — "INFORMATION HIGHLIGHTS" beside it at x=311.0, the contents
entries below it at x=76.6 — while we wrap the contents entries into the
band at x=256.5, shifted right by exactly 179.9 pt, which fits the whole
list on page 1 and is where the missing page goes.

The obvious reading was that a paragraph too wide for the band clears the
float: the heading is about 130 pt against a 204 pt band, the contents
entries need about 457 pt for their dot leaders and right tab. Task LibreOffice#64
recorded that as unestablished and said to probe it before writing code.

Probed, and it is wrong. Against a float of known width the reference
wraps a paragraph with a right tab at the full text width BESIDE it —
the exact contents-entry shape — and wraps one with no right indent
beside it too. Neither the tab stop nor the declared width is what makes
absrc-pac's list clear.

The probe also found what it was not looking for: we do not float a DOCX
w:tblpPr table at all. All six cases landed at the left margin, where a
paragraph goes when the table above it was stacked. That is the opposite
of what we do for absrc-pac's WW8 positioned table, which we float and
wrap text beside — two code paths disagreeing, at most one of them right.

No fix here. This is the hypothesis dying before it reached the code,
which is the point of the probe.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GaMTqGsGtQPgZrzgEPeCAB
timar pushed a commit to CollaboraOnline/online.mirror that referenced this pull request Sep 10, 2026
...as exposed by new CppunitTest_sc_ooxml_functions_let_test
(a032369 "sc: add LET function test with a
self-checking workbook"),

> ==1372959==ERROR: AddressSanitizer: heap-use-after-free on address 0x7c29283ee55b at pc 0x7bf8b847c25d bp 0x7fff75185d90 sp 0x7fff75185d88
> READ of size 1 at 0x7c29283ee55b thread T0
>  #0 in formula::FormulaToken::IncRef() const at engine/include/formula/token.hxx:162:17
>  LibreOffice#1 in formula::intrusive_ptr_add_ref(formula::FormulaToken const*) at engine/include/formula/token.hxx:232:8
>  LibreOffice#2 in boost::intrusive_ptr<formula::FormulaToken const>::intrusive_ptr(formula::FormulaToken const*, bool) at engine/workdir/UnpackedTarball/boost/boost/smart_ptr/intrusive_ptr.hpp:59:34
>  LibreOffice#3 in std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>::pair<formula::FormulaToken const*&, formula::FormulaToken const*&>(formula::FormulaToken const*&, formula::FormulaToken const*&) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/stl_pair.h:467:4
>  LibreOffice#4 in T* std::construct_at<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>, formula::FormulaToken const*&, formula::FormulaToken const*&>(T*, T0&&...) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/stl_construct.h:110:22
>  LibreOffice#5 in void std::allocator_traits<std::allocator<std::__detail::_Hash_node<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>, true>>>::construct<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>, formula::FormulaToken const*&, formula::FormulaToken const*&>(std::allocator<std::__detail::_Hash_node<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>, true>>&, std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>*, formula::FormulaToken const*&, formula::FormulaToken const*&) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/alloc_traits.h:727:4
>  LibreOffice#6 in std::__detail::_Hash_node<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>, true>* std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>, true>>>::_M_allocate_node<formula::FormulaToken const*&, formula::FormulaToken const*&>(formula::FormulaToken const*&, formula::FormulaToken const*&) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/hashtable_policy.h:1575:6
>  LibreOffice#7 in std::pair<std::__detail::_Node_iterator<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>, false, true>, bool> std::_Hashtable<boost::intrusive_ptr<formula::FormulaToken const> const, std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>, std::allocator<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>>, std::__detail::_Select1st, std::equal_to<boost::intrusive_ptr<formula::FormulaToken const> const>, FormulaTokenRef_hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>>::_M_emplace_uniq<formula::FormulaToken const*&, formula::FormulaToken const*&>(formula::FormulaToken const*&, formula::FormulaToken const*&) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/hashtable.h:2369:13
>  LibreOffice#8 in std::pair<std::__detail::_Node_iterator<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>, false, true>, bool> std::_Hashtable<boost::intrusive_ptr<formula::FormulaToken const> const, std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>, std::allocator<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>>, std::__detail::_Select1st, std::equal_to<boost::intrusive_ptr<formula::FormulaToken const> const>, FormulaTokenRef_hash, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>>::emplace<formula::FormulaToken const*&, formula::FormulaToken const*&>(formula::FormulaToken const*&, formula::FormulaToken const*&) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/hashtable.h:1050:13
>  LibreOffice#9 in std::pair<std::__detail::_Node_iterator<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>, false, true>, bool> std::__cxx1998::unordered_map<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>, FormulaTokenRef_hash, std::equal_to<boost::intrusive_ptr<formula::FormulaToken const> const>, std::allocator<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>>>::emplace<formula::FormulaToken const*&, formula::FormulaToken const*&>(formula::FormulaToken const*&, formula::FormulaToken const*&) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/unordered_map.h:457:16
>  LibreOffice#10 in std::pair<__gnu_debug::_Safe_iterator<std::__detail::_Node_iterator<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>, false, true>, std::__debug::unordered_map<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>, FormulaTokenRef_hash, std::equal_to<boost::intrusive_ptr<formula::FormulaToken const> const>, std::allocator<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>>>, std::forward_iterator_tag>, bool> std::__debug::unordered_map<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>, FormulaTokenRef_hash, std::equal_to<boost::intrusive_ptr<formula::FormulaToken const> const>, std::allocator<std::pair<boost::intrusive_ptr<formula::FormulaToken const> const, boost::intrusive_ptr<formula::FormulaToken const>>>>::emplace<formula::FormulaToken const*&, formula::FormulaToken const*&>(formula::FormulaToken const*&, formula::FormulaToken const*&) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/debug/unordered_map:375:24
>  LibreOffice#11 in ScInterpreter::Interpret() at engine/sc/source/core/tool/interpr4.cxx:4423:38
>  LibreOffice#12 in ScInterpreter::ScCall(boost::intrusive_ptr<formula::FormulaCallable const>, std::__debug::vector<boost::intrusive_ptr<formula::FormulaToken const>, std::allocator<boost::intrusive_ptr<formula::FormulaToken const>>> const&) at engine/sc/source/core/tool/interpr1.cxx:11073:46
>  LibreOffice#13 in ScInterpreter::ScLet() at engine/sc/source/core/tool/interpr1.cxx:11318:5
>  LibreOffice#14 in ScInterpreter::DispatchOpCode(OpCode) at engine/sc/source/core/tool/interpr4.cxx:3890:35
>  LibreOffice#15 in ScInterpreter::Interpret() at engine/sc/source/core/tool/interpr4.cxx:4414:17
>  LibreOffice#16 in ScFormulaCell::InterpretTail(ScInterpreterContext&, ScFormulaCell::ScInterpretTailParameter) at engine/sc/source/core/data/formulacell.cxx:2275:23
>  LibreOffice#17 in ScFormulaCell::Interpret(int, int) at engine/sc/source/core/data/formulacell.cxx:1917:13
>  LibreOffice#18 in ScFormulaCell::MaybeInterpret() at engine/sc/inc/formulacell.hxx:515:17
>  LibreOffice#19 in ScFormulaCell::IsEmpty() at engine/sc/source/core/data/formulacell.cxx:3219:5
>  LibreOffice#20 in ScRefCellValue::hasEmptyValue() at engine/sc/source/core/data/cellvalue.cxx:699:27
>  LibreOffice#21 in ScInterpreter::Compare(ScQueryOp) at engine/sc/source/core/tool/interpr1.cxx:880:27
>  LibreOffice#22 in ScInterpreter::ScEqual() at engine/sc/source/core/tool/interpr1.cxx:1144:22
>  LibreOffice#23 in ScInterpreter::DispatchOpCode(OpCode) at engine/sc/source/core/tool/interpr4.cxx:3851:35
>  LibreOffice#24 in ScInterpreter::Interpret() at engine/sc/source/core/tool/interpr4.cxx:4414:17
>  LibreOffice#25 in ScFormulaCell::InterpretTail(ScInterpreterContext&, ScFormulaCell::ScInterpretTailParameter) at engine/sc/source/core/data/formulacell.cxx:2275:23
>  LibreOffice#26 in ScFormulaCell::Interpret(int, int) at engine/sc/source/core/data/formulacell.cxx:1917:13
>  LibreOffice#27 in ScFormulaCell::MaybeInterpret() at engine/sc/inc/formulacell.hxx:515:17
>  LibreOffice#28 in ScFormulaCell::GetErrorOrValue(FormulaError&, double&) at engine/sc/source/core/data/formulacell.cxx:3515:5
>  LibreOffice#29 in ScValueIterator::GetThis(double&, FormulaError&) at engine/sc/source/core/data/dociter.cxx:226:27
>  LibreOffice#30 in ScValueIterator::GetNext(double&, FormulaError&) at engine/sc/source/core/data/dociter.cxx:310:12
>  LibreOffice#31 in ScInterpreter::ScAnd() at engine/sc/source/core/tool/interpr1.cxx:1289:42
>  LibreOffice#32 in ScInterpreter::DispatchOpCode(OpCode) at engine/sc/source/core/tool/interpr4.cxx:3857:35
>  LibreOffice#33 in ScInterpreter::Interpret() at engine/sc/source/core/tool/interpr4.cxx:4414:17
>  LibreOffice#34 in ScFormulaCell::InterpretTail(ScInterpreterContext&, ScFormulaCell::ScInterpretTailParameter) at engine/sc/source/core/data/formulacell.cxx:2275:23
>  LibreOffice#35 in ScFormulaCell::Interpret(int, int) at engine/sc/source/core/data/formulacell.cxx:1917:13
>  LibreOffice#36 in ScFormulaCell::MaybeInterpret() at engine/sc/inc/formulacell.hxx:515:17
>  LibreOffice#37 in ScFormulaCell::GetErrCode() at engine/sc/source/core/data/formulacell.cxx:3494:5
>  LibreOffice#38 in ScCellFormat::GetString(ScRefCellValue const&, unsigned int, Color const**, ScInterpreterContext*, ScDocument const&, bool, bool, bool) at engine/sc/source/core/tool/cellform.cxx:90:59
>  LibreOffice#39 in ScColumn::UpdateScriptType(sc::CellTextAttr&, int, mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits>::iterator_trait>&) at engine/sc/source/core/data/column3.cxx:878:21
>  LibreOffice#40 in ScColumn::GetRangeScriptType(mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<sc::CellTextAttrTraits>::iterator_trait>&, int, int, mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits>::iterator_trait> const&) at engine/sc/source/core/data/column2.cxx:2359:17
>  LibreOffice#41 in (anonymous namespace)::FindEditCellsHandler::operator()(unsigned long, ScFormulaCell const*) at engine/sc/source/core/data/column.cxx:2994:46
>  LibreOffice#42 in std::pair<mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits>::const_iterator, unsigned long> sc::CheckElem<mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell, mdds::mtv::delayed_delete_vector>, mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits>, (anonymous namespace)::FindEditCellsHandler>(mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits> const&, mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits>::const_iterator const&, unsigned long, unsigned long, (anonymous namespace)::FindEditCellsHandler&) at engine/sc/inc/mtvfunctions.hxx:159:13
>  LibreOffice#43 in std::pair<mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits>::const_iterator, mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits>::size_type> sc::FindElement2<mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits>, mdds::mtv::noncopyable_managed_element_block<53, EditTextObject, mdds::mtv::delayed_delete_vector>, mdds::mtv::noncopyable_managed_element_block<54, ScFormulaCell, mdds::mtv::delayed_delete_vector>, (anonymous namespace)::FindEditCellsHandler, (anonymous namespace)::FindEditCellsHandler>(mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits> const&, mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits>::size_type, mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits>::size_type, (anonymous namespace)::FindEditCellsHandler&, (anonymous namespace)::FindEditCellsHandler&) at engine/sc/inc/mtvfunctions.hxx:506:37
>  LibreOffice#44 in std::pair<mdds::mtv::soa::detail::const_iterator_base<mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits>::const_iterator_trait, mdds::mtv::soa::detail::iterator_base<mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits>::iterator_trait>>, unsigned long> sc::FindFormulaEditText<(anonymous namespace)::FindEditCellsHandler>(mdds::mtv::soa::multi_type_vector<sc::CellStoreTraits> const&, int, int, (anonymous namespace)::FindEditCellsHandler&) at engine/sc/inc/mtvcellfunc.hxx:140:12
>  LibreOffice#45 in ScColumn::HasEditCells(int, int, int&) at engine/sc/source/core/data/column.cxx:3340:9
>  LibreOffice#46 in ScColumn::GetOptimalHeight(sc::RowHeightContext&, int, int, unsigned short, int) at engine/sc/source/core/data/column2.cxx:950:38
>  LibreOffice#47 in (anonymous namespace)::GetOptimalHeightsInColumn(sc::RowHeightContext&, ScColContainer&, int, int, ScProgress*, unsigned long) at engine/sc/source/core/data/table1.cxx:121:20
>  LibreOffice#48 in ScTable::SetOptimalHeight(sc::RowHeightContext&, int, int, bool, ScProgress*, unsigned long) at engine/sc/source/core/data/table1.cxx:514:9
>  LibreOffice#49 in ScDocRowHeightUpdater::updateAll(bool) at engine/sc/source/core/data/dociter.cxx:1734:33
>  LibreOffice#50 in ScDocRowHeightUpdater::update(bool) at engine/sc/source/core/data/dociter.cxx:1662:9
>  LibreOffice#51 in ScDocShell::UpdateAllRowHeights(bool) at engine/sc/source/ui/docshell/docsh5.cxx:475:14
>  LibreOffice#52 in oox::xls::WorkbookGlobals::finalize() at engine/sc/source/filter/oox/workbookhelper.cxx:660:21
>  LibreOffice#53 in oox::xls::WorkbookGlobals::ImplDestroy() at engine/sc/source/filter/oox/workbookhelper.cxx:326:5
>  LibreOffice#54 in oox::xls::WorkbookGlobals::~WorkbookGlobals() at engine/sc/source/filter/oox/workbookhelper.cxx:332:35
>  LibreOffice#55 in void std::destroy_at<oox::xls::WorkbookGlobals>(oox::xls::WorkbookGlobals*) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/stl_construct.h:88:15
>  LibreOffice#56 in void std::_Destroy<oox::xls::WorkbookGlobals>(oox::xls::WorkbookGlobals*) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/stl_construct.h:164:7
>  LibreOffice#57 in void std::allocator_traits<std::allocator<void>>::destroy<oox::xls::WorkbookGlobals>(std::allocator<void>&, oox::xls::WorkbookGlobals*) at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/alloc_traits.h:875:4
>  LibreOffice#58 in std::_Sp_counted_ptr_inplace<oox::xls::WorkbookGlobals, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/shared_ptr_base.h:650:2
>  LibreOffice#59 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/shared_ptr_base.h:423:8
>  LibreOffice#60 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/shared_ptr_base.h:1101:11
>  LibreOffice#61 in std::__shared_ptr<oox::xls::WorkbookGlobals, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/shared_ptr_base.h:1575:25
>  LibreOffice#62 in std::shared_ptr<oox::xls::WorkbookGlobals>::~shared_ptr() at ~/gcc/inst/lib/gcc/x86_64-pc-linux-gnu/17.0.0/../../../../include/c++/17.0.0/bits/shared_ptr.h:157:11
>  LibreOffice#63 in oox::xls::ExcelFilter::importDocument() at engine/sc/source/filter/oox/excelfilter.cxx:135:5
>  LibreOffice#64 in oox::core::FilterBase::filter(cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/oox/source/core/filterbase.cxx:493:49
>  LibreOffice#65 in oox::xls::ExcelFilter::filter(cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/sc/source/filter/oox/excelfilter.cxx:185:25
>  LibreOffice#66 in SfxObjectShell::ImportFrom(SfxMedium&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) at engine/sfx2/source/doc/objstor.cxx:2574:34
>  LibreOffice#67 in ScDocShell::ImportFrom(SfxMedium&, com::sun::star::uno::Reference<com::sun::star::text::XTextRange> const&) at engine/sc/source/ui/docshell/docsh.cxx:557:28
>  LibreOffice#68 in SfxObjectShell::DoLoad(SfxMedium*) at engine/sfx2/source/doc/objstor.cxx:756:23
>  #69 in SfxBaseModel::load(cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/sfx2/source/doc/sfxbasemodel.cxx:1995:36
>  #70 in (anonymous namespace)::SfxFrameLoader_Impl::load(cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) at engine/sfx2/source/view/frmload.cxx:784:28
>  #71 in framework::LoadEnv::impl_loadContent() at engine/framework/source/loadenv/loadenv.cxx:1174:37
>  #72 in framework::LoadEnv::start() at engine/framework/source/loadenv/loadenv.cxx:410:20
>  #73 in framework::LoadEnv::startLoading(rtl::OUString const&, cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&, rtl::OUString const&, int, LoadEnvFeatures) at engine/framework/source/loadenv/loadenv.cxx:306:5
>  #74 in framework::LoadEnv::loadComponentFromURL(com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader> const&, com::sun::star::uno::Reference<cpo::uno::XComponentContext> const&, rtl::OUString const&, rtl::OUString const&, int, cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/framework/source/loadenv/loadenv.cxx:170:14
>  #75 in framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/framework/source/services/desktop.cxx:591:16
>  #76 in non-virtual thunk to framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/framework/source/services/desktop.cxx
>  #77 in unotest::MacrosTest::loadFromDesktop(rtl::OUString const&, rtl::OUString const&, cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/unotest/source/cpp/macros_test.cxx:73:62
>  #78 in UnoApiTest::loadWithParams(rtl::OUString const&, cpo::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at engine/test/source/unoapi_test.cxx:327:19
>  #79 in UnoApiTest::loadFromURL(rtl::OUString const&, char const*) at engine/test/source/unoapi_test.cxx:309:5
>  #80 in UnoApiTest::loadFromFile(std::basic_string_view<char16_t, std::char_traits<char16_t>>, char const*) at engine/test/source/unoapi_test.cxx:334:5
>  #81 in ScModelTestBase::createScDoc(char const*, char const*, bool) at engine/sc/qa/unit/helper/qahelper.cxx:661:9
>  #82 in testLetXlsxRoundTrip::TestBody() at engine/sc/qa/unit/functions_let.cxx:23:5
>
> 0x7c29283ee55b is located 11 bytes inside of 24-byte region [0x7c29283ee550,0x7c29283ee568)
> freed by thread T0 here:
>  #0 in operator delete(void*, unsigned long) at ~/github.com/llvm/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:187:3
>  LibreOffice#1 in formula::FormulaByteToken::~FormulaByteToken() at engine/include/formula/token.hxx:259:25
>  LibreOffice#2 in formula::FormulaToken::Delete() at engine/include/formula/token.hxx:150:51
>  LibreOffice#3 in formula::FormulaToken::DecRef() const at engine/include/formula/token.hxx:183:54
>  LibreOffice#4 in formula::intrusive_ptr_release(formula::FormulaToken const*) at engine/include/formula/token.hxx:237:8
>  LibreOffice#5 in boost::intrusive_ptr<formula::FormulaToken>::~intrusive_ptr() at engine/workdir/UnpackedTarball/boost/boost/smart_ptr/intrusive_ptr.hpp:76:23
>  LibreOffice#6 in ScInterpreter::ScCall(boost::intrusive_ptr<formula::FormulaCallable const>, unsigned char) at engine/sc/source/core/tool/interpr1.cxx:10516:1
>  LibreOffice#7 in ScInterpreter::ScCall() at engine/sc/source/core/tool/interpr1.cxx:11261:5
>  LibreOffice#8 in ScInterpreter::DispatchOpCode(OpCode) at engine/sc/source/core/tool/interpr4.cxx:3863:35
>  LibreOffice#9 in ScInterpreter::Interpret() at engine/sc/source/core/tool/interpr4.cxx:4414:17
>  LibreOffice#10 in ScInterpreter::ScCall(boost::intrusive_ptr<formula::FormulaCallable const>, std::__debug::vector<boost::intrusive_ptr<formula::FormulaToken const>, std::allocator<boost::intrusive_ptr<formula::FormulaToken const>>> const&) at engine/sc/source/core/tool/interpr1.cxx:11073:46

Signed-off-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Change-Id: Ia96ac43fafe863393ca5fa94f619e3e784ff31b1
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/11994
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
bise86 pushed a commit to bise86/LibreOffice that referenced this pull request Sep 29, 2026
Otherwise, this triggers the following assertion:

    soffice.bin: .../vcl/source/app/dbggui.cxx:36: void ImplDbgTestSolarMutex(bool): Assertion `ImplGetSVData()->mpDefInst->GetYieldMutex()->IsCurrentThread() && "SolarMutex not owned!"' failed.

when opening an Impress presenation with a slide containing
a video with SAL_VCL_QT_USE_QT_FRAME_GRABBER=1, potentially
since

    commit 88e9af0
    Date:   Wed Aug 6 09:49:42 2025 +0200

        BitmapEx->Bitmap in PngImageReader

and follow-up commit

    commit 32627a5
    Date:   Wed Aug 6 15:48:28 2025 +0200

        blind fix for qt6 build

Backtrace:

    Thread 1 received signal SIGABRT, Aborted.
    __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
    warning: 44     ./nptl/pthread_kill.c: No such file or directory
    (rr) bt
    #0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
    LibreOffice#1  0x00007fbf6409e9ff in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
    LibreOffice#2  0x00007fbf64049cc2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
    LibreOffice#3  0x00007fbf640324ac in __GI_abort () at ./stdlib/abort.c:73
    LibreOffice#4  0x00007fbf64032420 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=36, function=<optimized out>) at ./assert/assert.c:118
    LibreOffice#5  0x00007fbf5b3889ec in ImplDbgTestSolarMutex (owned=true) at /home/michi/development/git/libreoffice/vcl/source/app/dbggui.cxx:36
    LibreOffice#6  0x00007fbf6352b124 in DbgTestSolarMutex (owned=true) at /home/michi/development/git/libreoffice/tools/source/debug/debug.cxx:54
    LibreOffice#7  0x00007fbf5b24fafb in VirtualDevice::AcquireGraphics (this=0x557da1d5e290) at /home/michi/development/git/libreoffice/vcl/source/gdi/virdev.cxx:49
    LibreOffice#8  0x00007fbf5aecf733 in OutputDevice::DrawRect (this=0x557da1d5e290, rRect=...) at /home/michi/development/git/libreoffice/vcl/source/outdev/rect.cxx:67
    LibreOffice#9  0x00007fbf5aee0999 in OutputDevice::DrawColorWallpaper (this=0x557da1d5e290, nX=0, nY=0, nWidth=721, nHeight=401, rWallpaper=...) at /home/michi/development/git/libreoffice/vcl/source/outdev/wallpaper.cxx:90
    LibreOffice#10 0x00007fbf5aedefcf in OutputDevice::DrawWallpaper (this=0x557da1d5e290, nX=0, nY=0, nWidth=721, nHeight=401, rWallpaper=...) at /home/michi/development/git/libreoffice/vcl/source/outdev/wallpaper.cxx:70
    LibreOffice#11 0x00007fbf5aedeeab in OutputDevice::DrawWallpaper (this=0x557da1d5e290, rRect=..., rWallpaper=...) at /home/michi/development/git/libreoffice/vcl/source/outdev/wallpaper.cxx:53
    LibreOffice#12 0x00007fbf5b2523b0 in VirtualDevice::InnerImplSetOutputSizePixel (this=0x557da1d5e290, rNewSize=Size = {...}, bErase=true, bAlphaMaskTransparent=true) at /home/michi/development/git/libreoffice/vcl/source/gdi/virdev.cxx:295
    LibreOffice#13 0x00007fbf5b2527dd in VirtualDevice::SetOutputSizePixel (this=0x557da1d5e290, rNewSize=Size = {...}, bErase=true, bAlphaMaskTransparent=true) at /home/michi/development/git/libreoffice/vcl/source/gdi/virdev.cxx:350
    LibreOffice#14 0x00007fbf5b2ac951 in Bitmap::Bitmap (this=0x7fffdcfcae00, rBitmapEx=...) at /home/michi/development/git/libreoffice/vcl/source/bitmap/bitmap.cxx:146
    LibreOffice#15 0x00007fbf5b5e8e6f in vcl::PngImageReader::read (this=0x7fffdcfcb128, rBitmap=...) at /home/michi/development/git/libreoffice/vcl/source/filter/png/PngImageReader.cxx:820
    LibreOffice#16 0x00007fbf2c1be088 in (anonymous namespace)::toXGraphic (rImage=...) at /home/michi/development/git/libreoffice/avmedia/source/qt6/QtFrameGrabber.cxx:36
    LibreOffice#17 0x00007fbf2c1bda8e in avmedia::qt::QtFrameGrabber::onVideoFrameChanged (this=0x7fbf24003b00, rFrame=...) at /home/michi/development/git/libreoffice/avmedia/source/qt6/QtFrameGrabber.cxx:73
    LibreOffice#18 0x00007fbf2c1c33d4 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QVideoFrame const&>, void, void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call(void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&), avmedia::qt::QtFrameGrabber*, void**)::{lambda()LibreOffice#1}::operator()() const (this=0x7fffdcfcb300) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
    LibreOffice#19 0x00007fbf2c1c3359 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QVideoFrame const&>, void, void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call(void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&), avmedia::qt::QtFrameGrabber*, void**)::{lambda()LibreOffice#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QVideoFrame const&>, void, void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call(void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&), avmedia::qt::QtFrameGrabber*, void**)::{lambda()LibreOffice#1}&&) (args=0x7fbf24003bd8, fn=...)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:65
    LibreOffice#20 0x00007fbf2c1c3323 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QVideoFrame const&>, void, void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call
        (f=(void (avmedia::qt::QtFrameGrabber::*)(class avmedia::qt::QtFrameGrabber * const, const class QVideoFrame &)) 0x7fbf2c1bda40 <avmedia::qt::QtFrameGrabber::onVideoFrameChanged(QVideoFrame const&)>, o=0x7fbf24003b00, arg=0x7fbf24003bd8) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:126
    LibreOffice#21 0x00007fbf2c1c329d in QtPrivate::FunctionPointer<void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call<QtPrivate::List<QVideoFrame const&>, void>
        (f=(void (avmedia::qt::QtFrameGrabber::*)(class avmedia::qt::QtFrameGrabber * const, const class QVideoFrame &)) 0x7fbf2c1bda40 <avmedia::qt::QtFrameGrabber::onVideoFrameChanged(QVideoFrame const&)>, o=0x7fbf24003b00, arg=0x7fbf24003bd8) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:174
    LibreOffice#22 0x00007fbf2c1c31c6 in QtPrivate::QCallableObject<void (avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&), QtPrivate::List<QVideoFrame const&>, void>::impl
        (which=1, this_=0x557d9d23f1c0, r=0x7fbf24003b00, a=0x7fbf24003bd8, ret=0x0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:545
    LibreOffice#23 0x00007fbf51907b62 in QtPrivate::QSlotObjectBase::call (this=0x557d9d23f1c0, r=0x7fbf24003b00, a=0x7fbf24003bd8) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
    LibreOffice#24 0x00007fbf51b1a02c in QMetaCallEvent::placeMetaCall (this=0x7fbf24003b90, object=0x7fbf24003b00) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:544
    LibreOffice#25 0x00007fbf51b1c1c1 in QObject::event (this=0x7fbf24003b00, e=0x7fbf24003b90) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:1465
    LibreOffice#26 0x00007fbf4f9e6130 in QApplicationPrivate::notify_helper (this=0x557d975ccb40, receiver=0x7fbf24003b00, e=0x7fbf24003b90) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3307
    LibreOffice#27 0x00007fbf4f9ea038 in QApplication::notify (this=0x557d975bdec0, receiver=0x7fbf24003b00, e=0x7fbf24003b90) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3257
    LibreOffice#28 0x00007fbf51a52ac9 in QCoreApplication::notifyInternal2 (receiver=0x7fbf24003b00, event=0x7fbf24003b90) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
    LibreOffice#29 0x00007fbf51a53739 in QCoreApplication::sendEvent (receiver=0x7fbf24003b00, event=0x7fbf24003b90) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549
    LibreOffice#30 0x00007fbf51a5466a in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x557d975f3770) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1904
    LibreOffice#31 0x00007fbf51a5357c in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1757
    LibreOffice#32 0x00007fbf5205bba1 in postEventSourceDispatch (s=0x557d9761ac80) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
    LibreOffice#33 0x00007fbf561043c5 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    LibreOffice#34 0x00007fbf561065f7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    LibreOffice#35 0x00007fbf56106d60 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    LibreOffice#36 0x00007fbf5205addb in QEventDispatcherGlib::processEvents (this=0x557d975bf280, flags=...) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
    LibreOffice#37 0x00007fbf5119f838 in QPAEventDispatcherGlib::processEvents (this=0x557d975bf280, flags=...) at /home/michi/development/git/qt5/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:89
    LibreOffice#38 0x00007fbf52a19b84 in QtInstance::ImplYield (this=0x557d976494e0, bWait=false, bHandleAllCurrentEvents=true) at vcl/qt6/../qt5/QtInstance.cxx:503
    LibreOffice#39 0x00007fbf52a1ce71 in QtInstance::DoYield (this=0x557d976494e0, bWait=false, bHandleAllCurrentEvents=true) at vcl/qt6/../qt5/QtInstance.cxx:512
    LibreOffice#40 0x00007fbf5b45f3a6 in ImplYield (i_bWait=false, i_bAllEvents=true) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385
    LibreOffice#41 0x00007fbf5b45f667 in Scheduler::ProcessEventsToIdle () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:435
    LibreOffice#42 0x00007fbf2c1be3cd in avmedia::qt::QtFrameGrabber::grabFrame (this=0x7fbf24003b00, fMediaTime=0) at /home/michi/development/git/libreoffice/avmedia/source/qt6/QtFrameGrabber.cxx:100
    LibreOffice#43 0x00007fbf2c1be4ce in non-virtual thunk to avmedia::qt::QtFrameGrabber::grabFrame(double) () at /home/michi/development/git/libreoffice/instdir/program/../program/libavmediaqt6.so
    LibreOffice#44 0x00007fbf5d3e5b13 in avmedia::MediaWindow::grabFrame (xPlayer=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168, rGraphic=empty uno::Reference)
        at /home/michi/development/git/libreoffice/avmedia/source/viewer/mediawindow.cxx:384
    LibreOffice#45 0x00007fbf5e430b5f in SdrMediaObj::getSnapshot() const::$_0::operator()(com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) const
        (this=0x557d9c98fea0, rPlayer=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdomedia.cxx:195
    LibreOffice#46 0x00007fbf5e430add in std::__invoke_impl<void, SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&>(std::__invoke_other, SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) (__f=..., __args=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:61
    LibreOffice#47 0x00007fbf5e430a8d in std::__invoke_r<void, SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&>(SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) (__fn=..., __args=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:111
    LibreOffice#48 0x00007fbf5e430905 in std::_Function_handler<void(com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&), SdrMediaObj::getSnapshot() const::$_0>::_M_invoke
        (__functor=..., __args=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:290
    LibreOffice#49 0x00007fbf5d3ec066 in std::function<void(com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&)>::operator() (this=0x557d9c975aa8, __args=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168)
        at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:591
    LibreOffice#50 0x00007fbf5d3e8261 in avmedia::PlayerListener::callPlayerWindowSizeAvailable (this=0x557d9c975a60, rPlayer=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168) at include/avmedia/mediawindow.hxx:74
    LibreOffice#51 0x00007fbf5d3e5eab in avmedia::MediaWindow::grabFrame (rURL="file:///tmp/7qg9UE.ogg", rReferer="", sMimeType="audio/ogg", xPreferredPixelSizeListener=rtl::Reference to 0x557d9c975a60)
        at /home/michi/development/git/libreoffice/avmedia/source/viewer/mediawindow.cxx:434
    LibreOffice#52 0x00007fbf5e42e93c in SdrMediaObj::getSnapshot (this=0x557d9921fd10) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdomedia.cxx:199
    LibreOffice#53 0x00007fbf5e17a1a9 in sdr::contact::ViewContactOfSdrMediaObj::createViewIndependentPrimitive2DSequence (this=0x557d997790d0, rVisitor=...)
        at /home/michi/development/git/libreoffice/svx/source/sdr/contact/viewcontactofsdrmediaobj.cxx:122
    LibreOffice#54 0x00007fbf5e19363b in sdr::contact::ViewContact::getViewIndependentPrimitive2DContainer (this=0x557d997790d0, rVisitor=...) at /home/michi/development/git/libreoffice/svx/source/sdr/contact/viewcontact.cxx:261
    LibreOffice#55 0x00007fbf5e3c8a34 in SdrObject::RecalcBoundRect (this=0x557d9921fd10) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdobj.cxx:988
    LibreOffice#56 0x00007fbf5e3c8959 in SdrObject::GetCurrentBoundRect (this=0x557d9921fd10) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdobj.cxx:958
    LibreOffice#57 0x00007fbf5e4b91d0 in SdrObjList::RecalcRects (this=0x557d9925ec30) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdpage.cxx:242
    LibreOffice#58 0x00007fbf5e4bcf99 in SdrObjList::GetAllObjBoundRect (this=0x557d9925ec30) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdpage.cxx:740
    LibreOffice#59 0x00007fbf5e4e1142 in SdrPageView::InvalidateAllWin (this=0x557d9c973a00) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdpagv.cxx:202
    LibreOffice#60 0x00007fbf5e4e3301 in SdrPageView::SetHelpLines (this=0x557d9c973a00, rHLL=...) at /home/michi/development/git/libreoffice/svx/source/svdraw/svdpagv.cxx:687
    LibreOffice#61 0x00007fbf2fe0a543 in sd::DrawViewShell::SwitchPage (this=0x557d990dc4b0, nSelectedPage=0, bAllowChangeFocus=true, bUpdateScrollbars=true) at /home/michi/development/git/libreoffice/sd/source/ui/view/drviews1.cxx:1050
    LibreOffice#62 0x00007fbf2fe0869d in sd::DrawViewShell::ChangeEditMode (this=0x557d990dc4b0, eEMode=EditMode::Page, bIsLayerModeActive=false) at /home/michi/development/git/libreoffice/sd/source/ui/view/drviews1.cxx:409
    LibreOffice#63 0x00007fbf2fe566cc in sd::DrawViewShell::ReadFrameViewData (this=0x557d990dc4b0, pView=0x557d9c970370) at /home/michi/development/git/libreoffice/sd/source/ui/view/drviews5.cxx:291
    LibreOffice#64 0x00007fbf2fe6f3e1 in sd::DrawViewShell::Construct (this=0x557d990dc4b0, pDocSh=0x557d98f74bd0, eInitialPageKind=PageKind::Standard) at /home/michi/development/git/libreoffice/sd/source/ui/view/drviewsa.cxx:304
    LibreOffice#65 0x00007fbf2fe6ea0d in sd::DrawViewShell::DrawViewShell (this=0x557d990dc4b0, rViewShellBase=..., pParentWindow=0x557d99842f80, ePageKind=PageKind::Standard, pFrameViewArgument=0x0)
        at /home/michi/development/git/libreoffice/sd/source/ui/view/drviewsa.cxx:126
    LibreOffice#66 0x00007fbf2f9caedd in std::_Construct<sd::DrawViewShell, sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
        (__p=0x557d990dc4b0, __args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
        at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/stl_construct.h:119
    LibreOffice#67 0x00007fbf2f9caafe in std::allocator_traits<std::allocator<void> >::construct<sd::DrawViewShell, sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
        (__p=0x557d990dc4b0, __args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
        at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/alloc_traits.h:706
    LibreOffice#68 std::_Sp_counted_ptr_inplace<sd::DrawViewShell, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
        (this=0x557d990dc4a0, __a=..., __args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
        at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:607
    #69 0x00007fbf2f9ca8f7 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<sd::DrawViewShell, std::allocator<void>, sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
        (this=0x7fffdcfcfce0, __p=@0x7fffdcfcfcd8: 0x0, __a=..., __args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
        at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:970
    #70 0x00007fbf2f9ca81a in std::__shared_ptr<sd::DrawViewShell, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
        (this=0x7fffdcfcfcd8, __tag=..., __args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
        at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:1713
    #71 0x00007fbf2f9ca792 in std::shared_ptr<sd::DrawViewShell>::shared_ptr<std::allocator<void>, sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
        (this=0x7fffdcfcfcd8, __tag=..., __args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
        at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr.h:463
    #72 0x00007fbf2f9c4911 in std::make_shared<sd::DrawViewShell, sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
        (__args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr.h:1007
    #73 0x00007fbf2f9c11f3 in sd::framework::BasicViewFactory::CreateViewShell (this=0x557d9963e1a0, rxViewId=rtl::Reference to 0x557d998d8910, rWindow=..., pFrameView=0x0)
        at /home/michi/development/git/libreoffice/sd/source/ui/framework/factories/BasicViewFactory.cxx:284
    #74 0x00007fbf2f9c0553 in sd::framework::BasicViewFactory::CreateView (this=0x557d9963e1a0, rxViewId=rtl::Reference to 0x557d998d8910, rWindow=..., rxPane=rtl::Reference to 0x557d9c953020, pFrameView=0x0, bIsCenterPane=true)
        at /home/michi/development/git/libreoffice/sd/source/ui/framework/factories/BasicViewFactory.cxx:241
    #75 0x00007fbf2f9bffcb in sd::framework::BasicViewFactory::createResource (this=0x557d9963e1a0, rxViewId=rtl::Reference to 0x557d998d8910)
        at /home/michi/development/git/libreoffice/sd/source/ui/framework/factories/BasicViewFactory.cxx:167
    #76 0x00007fbf2f994c48 in sd::framework::ConfigurationControllerResourceManager::ActivateResource (this=0x557d9963f120, rxResourceId=rtl::Reference to 0x557d998d8910, rxConfiguration=rtl::Reference to 0x557d999b0dc0)
        at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:130
    #77 0x00007fbf2f9945f8 in sd::framework::ConfigurationControllerResourceManager::ActivateResources (this=0x557d9963f120, rResources=std::__debug::vector of length 5, capacity 5 = {...}, rxConfiguration=rtl::Reference to 0x557d999b0dc0)
        at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:75
    #78 0x00007fbf2f99d07a in sd::framework::ConfigurationUpdater::UpdateCore (this=0x557d999afee0, rClassifier=...) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:251
    #79 0x00007fbf2f99c61c in sd::framework::ConfigurationUpdater::UpdateConfiguration (this=0x557d999afee0) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:161
    #80 0x00007fbf2f99c09b in sd::framework::ConfigurationUpdater::RequestUpdate (this=0x557d999afee0, rxRequestedConfiguration=rtl::Reference to 0x557d998c8ed0)
        at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:108
    #81 0x00007fbf2f96fe69 in sd::framework::ChangeRequestQueueProcessor::ProcessOneEvent (this=0x557d999b0e60) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:158
    #82 0x00007fbf2f982909 in sd::framework::ConfigurationController::ProcessEvent (this=0x557d999b0bf0) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationController.cxx:157
    #83 0x00007fbf2fdbc797 in sd::ViewShellBase::LateInit (this=0x557d99242e30, rsDefaultView="") at /home/michi/development/git/libreoffice/sd/source/ui/view/ViewShellBase.cxx:345
    #84 0x00007fbf2fd78a33 in sd::ImpressViewShellBase::CreateInstance (rFrame=..., pOldView=0x0) at /home/michi/development/git/libreoffice/sd/source/ui/view/ImpressViewShellBase.cxx:45
    #85 0x00007fbf60a31855 in SfxViewFactory::CreateInstance (this=0x557d991cd6a0, rFrame=..., pOldSh=0x0) at /home/michi/development/git/libreoffice/sfx2/source/view/viewfac.cxx:26
    #86 0x00007fbf60840fbf in SfxBaseModel::createViewController (this=0x557d9913bc50, i_rViewName="Default", i_rArguments=empty uno::Sequence, i_rFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x557d98f32e40)
        at /home/michi/development/git/libreoffice/sfx2/source/doc/sfxbasemodel.cxx:4355
    #87 0x00007fbf60841a9f in non-virtual thunk to SfxBaseModel::createViewController(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) () at /home/michi/development/git/libreoffice/instdir/program/libsfxlo.so
    #88 0x00007fbf609dc0f4 in (anonymous namespace)::SfxFrameLoader_Impl::impl_createDocumentView
        (i_rModel=uno::Reference to (SdXImpressDocument *) 0x557d9913bce0, i_rFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x557d98f32e40, i_rViewFactoryArgs=..., i_rViewName="Default")
        at /home/michi/development/git/libreoffice/sfx2/source/view/frmload.cxx:586
    #89 0x00007fbf609d96ac in (anonymous namespace)::SfxFrameLoader_Impl::load (this=0x557d99388d30, rArgs=uno::Sequence of length 12 = {...}, _rTargetFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x557d98f32e40)
        at /home/michi/development/git/libreoffice/sfx2/source/view/frmload.cxx:813
    #90 0x00007fbf615c72c4 in framework::LoadEnv::impl_loadContent (this=0x557d98866fa8) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:1180
    #91 0x00007fbf615c4425 in framework::LoadEnv::start (this=0x557d98866fa8) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:415
    #92 0x00007fbf615c20d2 in framework::LoadEnv::startLoading
        (this=0x557d98866fa8, sURL="file:///home/michi/git/computer-doc/misc/impress_presentations_with_audio_and_video/slide_with_video.odp", lMediaDescriptor=uno::Sequence of length 4 = {...}, xBaseFrame=uno::Reference to (framework::Desktop *) 0x557d978a34b8, sTarget="_default", nSearchFlags=0, eFeature=(LoadEnvFeatures::WorkWithUI | LoadEnvFeatures::AllowContentHandler)) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:311
    #93 0x00007fbf6145aaa1 in framework::LoadDispatcher::impl_dispatch (this=0x557d98866f50, rURL=..., lArguments=uno::Sequence of length 4 = {...}, xListener=empty uno::Reference)
        at /home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:107
    #94 0x00007fbf6145b801 in framework::LoadDispatcher::dispatchWithReturnValue (this=0x557d98866f50, rURL=..., lArguments=uno::Sequence of length 4 = {...})
        at /home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:60
    #95 0x00007fbf6145b8a4 in non-virtual thunk to framework::LoadDispatcher::dispatchWithReturnValue(com::sun::star::util::URL const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) ()
        at /home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:60
    #96 0x00007fbf629f10c0 in comphelper::SynchronousDispatch::dispatch
        (xStartPoint=uno::Reference to (framework::Desktop *) 0x557d978a34a8, sURL="file:///home/michi/git/computer-doc/misc/impress_presentations_with_audio_and_video/slide_with_video.odp", sTarget="_default", lArguments=uno::Sequence of length 4 = {...}) at /home/michi/development/git/libreoffice/comphelper/source/misc/synchronousdispatch.cxx:62
    #97 0x00007fbf64377054 in desktop::DispatchWatcher::executeDispatchRequests (this=0x557d99219bb0, aDispatchRequestsList=std::__debug::vector of length 1, capacity 1 = {...}, bNoTerminate=false, pFlags=0x7fffdcfd6994)
        at /home/michi/development/git/libreoffice/desktop/source/app/dispatchwatcher.cxx:531
    #98 0x00007fbf64395488 in desktop::RequestHandler::ExecuteCmdLineRequests (aRequest=..., noTerminate=false) at /home/michi/development/git/libreoffice/desktop/source/app/officeipcthread.cxx:1317
    #99 0x00007fbf6432ee7f in desktop::Desktop::OpenClients () at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:2218
    #100 0x00007fbf6432cdf3 in desktop::Desktop::OpenClients_Impl (this=0x7fffdcfda450) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1978
    #101 0x00007fbf6432b45d in desktop::Desktop::LinkStubOpenClients_Impl (instance=0x7fffdcfda450, data=0x0) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1962
    #102 0x00007fbf5ac98231 in Link<void*, void>::Call (this=0x557d98fba098, data=0x0) at include/tools/link.hxx:105
    #103 0x00007fbf5ac93af1 in ImplHandleUserEvent (pSVEvent=0x557d98fba090) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
    #104 0x00007fbf5ac90a1f in ImplWindowFrameProc (_pWindow=0x557d988b22c0, nEvent=SalEvent::UserEvent, pEvent=0x557d98fba090) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2876
    #105 0x00007fbf529fb3ec in SalFrame::CallCallback (this=0x557d988b3f20, nEvent=SalEvent::UserEvent, pEvent=0x557d98fba090) at vcl/inc/salframe.hxx:310
    #106 0x00007fbf52a1d2af in QtInstance::ProcessEvent (this=0x557d976494e0, aEvent=...) at vcl/qt6/../qt5/QtInstance.cxx:594
    #107 0x00007fbf5b393fbd in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffdcfd88a0) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
    #108 0x00007fbf5b393e8b in SalUserEventList::DispatchUserEvents (this=0x557d97649518, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
    #109 0x00007fbf52a19a91 in QtInstance::ImplYield (this=0x557d976494e0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:490
    #110 0x00007fbf52a1ce71 in QtInstance::DoYield (this=0x557d976494e0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:512
    #111 0x00007fbf5b45f3a6 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385
    #112 0x00007fbf5b45ecbf in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:488
    #113 0x00007fbf5b45eaa0 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:360
    #114 0x00007fbf64329435 in desktop::Desktop::Main (this=0x7fffdcfda450) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1678
    #115 0x00007fbf5b48b2c6 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230
    #116 0x00007fbf5b48cdb9 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
    #117 0x00007fbf643a30ea in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
    #118 0x0000557d789219fd in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
    #119 0x0000557d789219d7 in main (argc=2, argv=0x7fffdcfda658) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49

Change-Id: I1e2265e38d7c93171146df4f58666e9cf22bdaf6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189036
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
bise86 pushed a commit to bise86/LibreOffice that referenced this pull request Sep 29, 2026
After

    commit 94442bd94e504b067efd0b992525b53fc660f114
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Tue Aug 5 11:07:25 2025 +0200

        tdf#163802 a11y: Fully initialize SpellDialog before showing

, triggering the spell check dialog in Impress
for an empty presentation would result in infinite
recursion e.g. with the gtk3 or gen VCL plugins
on Linux, because the initialization of the
svx::SpellDialogChildWindow triggers a message dialog
asking whether to start spell check from the beginning
(s. frame #252 in below backtrace).
For gtk3 and gen, that dialog triggers processing
of pending events, which triggers an update of the
child windows (s. frame #230), which triggers the logic to
create the spell check child window again (as it isn't
shown yet).

(For qt6, that problem wasn't seen, because synchronously
showing the message dialog doesn't trigger processing
of pending events.)

Fix the problem by detecting cases where a child
window is already in the process of being created,
and return early in that case.

Change SfxWorkWindow::CreateChildWin_Impl to return
a bool result indicating whether the child window
was created or not, and evaluate that in the callers.

Sample backtrace for the gtk3 VCL plugin:

    #0  0x00007fffe94490c0 in memcmp@plt () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
    #1  0x00007fffe955c206 in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
    #2  0x00007fffe955c97f in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
    #3  0x00007fffe955a4a3 in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
    #4  0x00007fffe94db449 in ??? () at /lib/x86_64-linux-gnu/libgio-2.0.so.0
    #5  0x00007fffe6b6e484 in ??? () at /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
    #6  0x00007fffe6b716e9 in ??? () at /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
    #7  0x00007fffe6b71b6d in gdk_pixbuf_loader_close () at /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
    #8  0x00007fffe5be2fe0 in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0
    #9  0x00007fffe5be40b1 in gtk_image_set_from_file () at /lib/x86_64-linux-gnu/libgtk-3.so.0
    #10 0x00007fffe5be41fd in gtk_image_new_from_file () at /lib/x86_64-linux-gnu/libgtk-3.so.0
    #11 0x00007fffe6498cf9 in (anonymous namespace)::image_new_from_xgraphic (rIcon=uno::Reference to (unographic::Graphic *) 0x55555ef17750, bMirror=false) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:4973
    #12 0x00007fffe6504ec8 in (anonymous namespace)::GtkInstanceToolbar::set_item_image (pItem=0x55555ef42d20, rIcon=uno::Reference to (unographic::Graphic *) 0x55555ef17750, bMirror=false)
        at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:11838
    #13 0x00007fffe64ffb31 in (anonymous namespace)::GtkInstanceToolbar::set_item_image (this=0x55555e956af0, rIdent="toggle", rIcon=uno::Reference to (unographic::Graphic *) 0x55555ef17750)
        at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:12214
    #14 0x00007ffff4137ba1 in sfx2::sidebar::TabBar::UpdateButtonIcons (this=0x5555597c0230) at /home/michi/development/git/libreoffice/sfx2/source/sidebar/TabBar.cxx:159
    #15 0x00007ffff4137634 in sfx2::sidebar::TabBar::SetDecks (this=0x5555597c0230, rDecks=std::__debug::vector of length 8, capacity 8 = {...}) at /home/michi/development/git/libreoffice/sfx2/source/sidebar/TabBar.cxx:148
    #16 0x00007ffff40b0f0b in sfx2::sidebar::SidebarController::UpdateConfigurations (this=0x555558960ae0) at /home/michi/development/git/libreoffice/sfx2/source/sidebar/SidebarController.cxx:604
    #17 0x00007ffff40b0a49 in sfx2::sidebar::SidebarController::notifyContextChangeEvent (this=0x555558960ae0, rEvent=...) at /home/michi/development/git/libreoffice/sfx2/source/sidebar/SidebarController.cxx:371
    #18 0x00007ffff4dcba91 in (anonymous namespace)::ContextChangeEventMultiplexer::BroadcastEventToSingleContainer (this=0x5555590d95c0, rEventObject=..., rxEventFocus=uno::Reference to (sd::DrawController *) 0x55555830b5e8)
        at /home/michi/development/git/libreoffice/framework/source/services/ContextChangeEventMultiplexer.cxx:252
    #19 0x00007ffff4dca942 in (anonymous namespace)::ContextChangeEventMultiplexer::broadcastContextChangeEvent (this=0x5555590d95c0, rEventObject=..., rxEventFocus=uno::Reference to (sd::DrawController *) 0x55555830b5e8)
        at /home/michi/development/git/libreoffice/framework/source/services/ContextChangeEventMultiplexer.cxx:235
    #20 0x00007ffff2948f8f in ContextChangeEventMultiplexer::NotifyContextChange (rxController=uno::Reference to (sd::DrawController *) 0x55555830b5e8, eContext=vcl::EnumContext::Context::DrawPage)
        at /home/michi/development/git/libreoffice/svx/source/sidebar/ContextChangeEventMultiplexer.cxx:51
    #21 0x00007ffff295e246 in svx::sidebar::SelectionChangeHandler::selectionChanged (this=0x55555edcd3f0) at /home/michi/development/git/libreoffice/svx/source/sidebar/SelectionChangeHandler.cxx:56
    #22 0x00007fff9dc6b3cf in sd::DrawController::FireSelectionChangeListener (this=0x55555830b5c0) at /home/michi/development/git/libreoffice/sd/source/ui/unoidl/DrawController.cxx:396
    #23 0x00007fff9dc6b2dc in sd::DrawController::SetSubController (this=0x55555830b5c0, rxSubController=empty uno::Reference) at /home/michi/development/git/libreoffice/sd/source/ui/unoidl/DrawController.cxx:99
    #24 0x00007fff9d99a936 in sd::framework::BasicViewFactory::releaseResource (this=0x55555894ad50, rxView=rtl::Reference to 0x55555ef81a80)
        at /home/michi/development/git/libreoffice/sd/source/ui/framework/factories/BasicViewFactory.cxx:219
    #25 0x00007fff9d97161c in sd::framework::ConfigurationControllerResourceManager::DeactivateResource (this=0x55555894c0f0, rxResourceId=rtl::Reference to 0x55555edb5110, rxConfiguration=rtl::Reference to 0x55555894eb00)
        at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:203
    #26 0x00007fff9d971fb4 in sd::framework::ConfigurationControllerResourceManager::DeactivateResources(std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > const&, rtl::Reference<sd::framework::Configuration> const&)::$_0::operator()(rtl::Reference<sd::framework::ResourceId> const&) const (this=0x7ffffffe7950, xResource=rtl::Reference to 0x55555edb5110)
        at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:90
    #27 0x00007fff9d9712cb in std::for_each<std::reverse_iterator<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<rtl::Reference<sd::framework::ResourceId> const*, std::__cxx1998::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > >, std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > >, std::random_access_iterator_tag> >, sd::framework::ConfigurationControllerResourceManager::DeactivateResources(std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > const&, rtl::Reference<sd::framework::Configuration> const&)::$_0>(std::reverse_iterator<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<rtl::Reference<sd::framework::ResourceId> const*, std::__cxx1998::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > >, std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > >, std::random_access_iterator_tag> >, std::reverse_iterator<__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<rtl::Reference<sd::framework::ResourceId> const*, std::__cxx1998::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > >, std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > >, std::random_access_iterator_tag> >, sd::framework::ConfigurationControllerResourceManager::DeactivateResources(std::__debug::vector<rtl::Reference<sd::framework::ResourceId>, std::allocator<rtl::Reference<sd::framework::ResourceId> > > const&, rtl::Reference<sd::framework::Configuration> const&)::$_0) (__first=..., __last=..., __f=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/stl_algo.h:3798
    #28 0x00007fff9d971074 in sd::framework::ConfigurationControllerResourceManager::DeactivateResources
        (this=0x55555894c0f0, rResources=std::__debug::vector of length 1, capacity 1 = {...}, rxConfiguration=rtl::Reference to 0x55555894eb00)
        at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:86
    #29 0x00007fff9d978cae in sd::framework::ConfigurationUpdater::UpdateCore (this=0x55555894dd00, rClassifier=...) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:250
    #30 0x00007fff9d97829c in sd::framework::ConfigurationUpdater::UpdateConfiguration (this=0x55555894dd00) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:161
    #31 0x00007fff9d977d1b in sd::framework::ConfigurationUpdater::RequestUpdate (this=0x55555894dd00, rxRequestedConfiguration=rtl::Reference to 0x55555894cf50)
        at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:108
    #32 0x00007fff9d94c5b2 in sd::framework::ChangeRequestQueueProcessor::ProcessOneEvent (this=0x55555894eba0) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:163
    #33 0x00007fff9d94c6fe in sd::framework::ChangeRequestQueueProcessor::ProcessUntilEmpty (this=0x55555894eba0) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:175
    #34 0x00007fff9d95e8ef in sd::framework::ConfigurationController::RequestSynchronousUpdate (this=0x55555894a210) at /home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationController.cxx:167
    #35 0x00007fff9d9c69d8 in sd::framework::FrameworkHelper::RequestSynchronousUpdate (this=0x555558959cb0) at /home/michi/development/git/libreoffice/sd/source/ui/framework/tools/FrameworkHelper.cxx:643
    #36 0x00007fff9dd53f6c in SdOutliner::SetViewMode (this=0x55555ee0e070, ePageKind=PageKind::Standard) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1652
    #37 0x00007fff9dd55071 in SdOutliner::SetObject (this=0x55555ee0e070, rPosition=...) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1851
    #38 0x00007fff9dd4e830 in SdOutliner::EndOfSearch (this=0x55555ee0e070) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1418
    #39 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x55555ee0e070) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
    #40 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x55555ee0e070) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
    #41 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x55555ee0e070) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
    #42 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x55555e56afa0) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
    #43 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555eca57c0, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
    #44 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555eca57c0, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
    #45 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555eca57c0) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
    #46 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x55555edb1bc0) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
    #47 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x55555e56afa0) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
    #48 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
    #49 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=false) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
    #50 0x00007ffff3b3bbc6 in SfxWorkWindow::UpdateChildWindows_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1299
    #51 0x00007ffff3b3b205 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1247
    #52 0x00007ffff3b3a831 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
    #53 0x00007ffff3ba83b3 in SfxDispatcher::Update_Impl (this=0x555556877340, bForce=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1124
    #54 0x00007ffff3bfebbe in DispatcherUpdate_Impl (pArg=0x555556877340) at /home/michi/development/git/libreoffice/sfx2/source/control/shell.cxx:681
    #55 0x00007ffff0889f71 in Link<void*, void>::Call (this=0x55555e3c7c40, data=0x555556877340) at include/tools/link.hxx:105
    #56 0x00007ffff08df2c8 in svtools::AsynchronLink::HandleCall_PostUserEvent (this=0x55555e3c7c40) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:66
    #57 0x00007ffff08df21d in svtools::AsynchronLink::LinkStubHandleCall_PostUserEvent (instance=0x55555e3c7c40, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:58
    #58 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x55555e86e7e8, data=0x0) at include/tools/link.hxx:105
    #59 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x55555e86e7e0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
    #60 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x55555e86e7e0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
    #61 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x55555e86e7e0) at vcl/inc/salframe.hxx:310
    #62 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
    #63 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7ffffffebc20) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
    #64 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
    #65 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
    #66 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
    #67 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #68 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #69 0x00007fffe9d0701f in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #70 0x00007fffe652062a in main_loop_run (pLoop=0x55555edb57d0) at vcl/inc/unx/gtk/gtkdata.hxx:59
    #71 0x00007fffe64964ad in (anonymous namespace)::DialogRunner::run (this=0x55555ed86530) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:6768
    #72 0x00007fffe6491af0 in (anonymous namespace)::GtkInstanceDialog::run (this=0x55555ed863d0) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:10190
    #73 0x00007fff9dd55d03 in SdOutliner::ShowWrapAroundDialog (this=0x55555ed78a80) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1526
    #74 0x00007fff9dd4e88f in SdOutliner::EndOfSearch (this=0x55555ed78a80) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1432
    #75 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x55555ed78a80) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
    #76 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x55555ed78a80) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
    #77 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x55555ed78a80) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
    #78 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x55555eaeead0) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
    #79 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555eb6ef60, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
    #80 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555eb6ef60, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
    #81 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555eb6ef60) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
    #82 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x5555599c5060) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
    #83 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x55555eaeead0) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
    #84 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
    #85 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=false) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
    #86 0x00007ffff3b3bbc6 in SfxWorkWindow::UpdateChildWindows_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1299
    #87 0x00007ffff3b3b205 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1247
    #88 0x00007ffff3b3a831 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
    #89 0x00007ffff3ba83b3 in SfxDispatcher::Update_Impl (this=0x555556877340, bForce=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1124
    #90 0x00007ffff3bfebbe in DispatcherUpdate_Impl (pArg=0x555556877340) at /home/michi/development/git/libreoffice/sfx2/source/control/shell.cxx:681
    #91 0x00007ffff0889f71 in Link<void*, void>::Call (this=0x55555e38cad0, data=0x555556877340) at include/tools/link.hxx:105
    #92 0x00007ffff08df2c8 in svtools::AsynchronLink::HandleCall_PostUserEvent (this=0x55555e38cad0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:66
    #93 0x00007ffff08df21d in svtools::AsynchronLink::LinkStubHandleCall_PostUserEvent (instance=0x55555e38cad0, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:58
    #94 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x55555e780b88, data=0x0) at include/tools/link.hxx:105
    #95 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x55555e780b80) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
    #96 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x55555e780b80) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
    #97 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x55555e780b80) at vcl/inc/salframe.hxx:310
    #98 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
    #99 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7ffffffee430) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
    #100 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
    #101 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
    #102 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
    #103 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #104 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #105 0x00007fffe9d0701f in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #106 0x00007fffe652062a in main_loop_run (pLoop=0x55555eb90ac0) at vcl/inc/unx/gtk/gtkdata.hxx:59
    #107 0x00007fffe64964ad in (anonymous namespace)::DialogRunner::run (this=0x55555eb76cc0) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:6768
    #108 0x00007fffe6491af0 in (anonymous namespace)::GtkInstanceDialog::run (this=0x55555eb76b60) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:10190
    #109 0x00007fff9dd55d03 in SdOutliner::ShowWrapAroundDialog (this=0x55555eb6a760) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1526
    #110 0x00007fff9dd4e88f in SdOutliner::EndOfSearch (this=0x55555eb6a760) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1432
    #111 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x55555eb6a760) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
    #112 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x55555eb6a760) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
    #113 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x55555eb6a760) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
    #114 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x55555e92cf20) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
    #115 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555e7bc0e0, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
    #116 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555e7bc0e0, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
    #117 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555e7bc0e0) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
    #118 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x55555e75e580) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
    #119 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x55555e92cf20) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
    #120 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
    #121 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=false) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
    #122 0x00007ffff3b3bbc6 in SfxWorkWindow::UpdateChildWindows_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1299
    #123 0x00007ffff3b3b205 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1247
    #124 0x00007ffff3b3a831 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
    #125 0x00007ffff3ba83b3 in SfxDispatcher::Update_Impl (this=0x555556877340, bForce=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1124
    #126 0x00007ffff3bfebbe in DispatcherUpdate_Impl (pArg=0x555556877340) at /home/michi/development/git/libreoffice/sfx2/source/control/shell.cxx:681
    #127 0x00007ffff0889f71 in Link<void*, void>::Call (this=0x55555a823ba0, data=0x555556877340) at include/tools/link.hxx:105
    #128 0x00007ffff08df2c8 in svtools::AsynchronLink::HandleCall_PostUserEvent (this=0x55555a823ba0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:66
    #129 0x00007ffff08df21d in svtools::AsynchronLink::LinkStubHandleCall_PostUserEvent (instance=0x55555a823ba0, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:58
    #130 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x55555e6ff308, data=0x0) at include/tools/link.hxx:105
    #131 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x55555e6ff300) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
    #132 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x55555e6ff300) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
    #133 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x55555e6ff300) at vcl/inc/salframe.hxx:310
    #134 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
    #135 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffffff0c40) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
    #136 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
    #137 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
    #138 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
    #139 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #140 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #141 0x00007fffe9d0701f in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #142 0x00007fffe652062a in main_loop_run (pLoop=0x55555e92fb70) at vcl/inc/unx/gtk/gtkdata.hxx:59
    #143 0x00007fffe64964ad in (anonymous namespace)::DialogRunner::run (this=0x55555e950a20) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:6768
    #144 0x00007fffe6491af0 in (anonymous namespace)::GtkInstanceDialog::run (this=0x55555e9508c0) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:10190
    #145 0x00007fff9dd55d03 in SdOutliner::ShowWrapAroundDialog (this=0x55555e8e0e30) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1526
    #146 0x00007fff9dd4e88f in SdOutliner::EndOfSearch (this=0x55555e8e0e30) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1432
    #147 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x55555e8e0e30) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
    #148 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x55555e8e0e30) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
    #149 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x55555e8e0e30) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
    #150 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x55555e8f0390) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
    #151 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555e9c6ac0, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
    #152 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555e9c6ac0, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
    #153 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555e9c6ac0) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
    #154 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x55555e319180) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
    #155 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x55555e8f0390) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
    #156 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
    #157 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=false) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
    #158 0x00007ffff3b3bbc6 in SfxWorkWindow::UpdateChildWindows_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1299
    #159 0x00007ffff3b3b205 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1247
    #160 0x00007ffff3b3a831 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
    #161 0x00007ffff3ba83b3 in SfxDispatcher::Update_Impl (this=0x555556877340, bForce=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1124
    #162 0x00007ffff3bfebbe in DispatcherUpdate_Impl (pArg=0x555556877340) at /home/michi/development/git/libreoffice/sfx2/source/control/shell.cxx:681
    #163 0x00007ffff0889f71 in Link<void*, void>::Call (this=0x55555e3f61c0, data=0x555556877340) at include/tools/link.hxx:105
    #164 0x00007ffff08df2c8 in svtools::AsynchronLink::HandleCall_PostUserEvent (this=0x55555e3f61c0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:66
    #165 0x00007ffff08df21d in svtools::AsynchronLink::LinkStubHandleCall_PostUserEvent (instance=0x55555e3f61c0, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:58
    #166 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x55555e58c6e8, data=0x0) at include/tools/link.hxx:105
    #167 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x55555e58c6e0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
    #168 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x55555e58c6e0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
    #169 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x55555e58c6e0) at vcl/inc/salframe.hxx:310
    #170 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
    #171 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffffff3450) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
    #172 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
    #173 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
    #174 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
    #175 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #176 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #177 0x00007fffe9d0701f in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #178 0x00007fffe652062a in main_loop_run (pLoop=0x55555e8ec500) at vcl/inc/unx/gtk/gtkdata.hxx:59
    #179 0x00007fffe64964ad in (anonymous namespace)::DialogRunner::run (this=0x55555e867400) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:6768
    #180 0x00007fffe6491af0 in (anonymous namespace)::GtkInstanceDialog::run (this=0x55555e8672a0) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:10190
    #181 0x00007fff9dd55d03 in SdOutliner::ShowWrapAroundDialog (this=0x55555e859950) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1526
    #182 0x00007fff9dd4e88f in SdOutliner::EndOfSearch (this=0x55555e859950) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1432
    #183 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x55555e859950) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
    #184 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x55555e859950) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
    #185 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x55555e859950) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
    #186 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x55555e7623d0) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
    #187 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555e4fc700, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
    #188 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555e4fc700, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
    #189 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555e4fc700) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
    #190 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x555558f1e9c0) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
    #191 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x55555e7623d0) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
    #192 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
    #193 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=false) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
    #194 0x00007ffff3b3bbc6 in SfxWorkWindow::UpdateChildWindows_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1299
    #195 0x00007ffff3b3b205 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1247
    #196 0x00007ffff3b3a831 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
    #197 0x00007ffff3ba83b3 in SfxDispatcher::Update_Impl (this=0x555556877340, bForce=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1124
    #198 0x00007ffff3bfebbe in DispatcherUpdate_Impl (pArg=0x555556877340) at /home/michi/development/git/libreoffice/sfx2/source/control/shell.cxx:681
    #199 0x00007ffff0889f71 in Link<void*, void>::Call (this=0x55555e45d520, data=0x555556877340) at include/tools/link.hxx:105
    #200 0x00007ffff08df2c8 in svtools::AsynchronLink::HandleCall_PostUserEvent (this=0x55555e45d520) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:66
    #201 0x00007ffff08df21d in svtools::AsynchronLink::LinkStubHandleCall_PostUserEvent (instance=0x55555e45d520, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:58
    #202 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x555559999828, data=0x0) at include/tools/link.hxx:105
    #203 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x555559999820) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
    #204 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x555559999820) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
    #205 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x555559999820) at vcl/inc/salframe.hxx:310
    #206 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
    #207 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffffff5c60) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
    #208 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
    #209 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
    #210 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
    #211 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #212 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #213 0x00007fffe9d0701f in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #214 0x00007fffe652062a in main_loop_run (pLoop=0x55555e75b650) at vcl/inc/unx/gtk/gtkdata.hxx:59
    #215 0x00007fffe64964ad in (anonymous namespace)::DialogRunner::run (this=0x55555e6e17e0) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:6768
    #216 0x00007fffe6491af0 in (anonymous namespace)::GtkInstanceDialog::run (this=0x55555e6e1680) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:10190
    #217 0x00007fff9dd55d03 in SdOutliner::ShowWrapAroundDialog (this=0x55555e6be710) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1526
    #218 0x00007fff9dd4e88f in SdOutliner::EndOfSearch (this=0x55555e6be710) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1432
    #219 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x55555e6be710) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
    #220 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x55555e6be710) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
    #221 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x55555e6be710) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
    #222 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x555558b3fbc0) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
    #223 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555e586600, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
    #224 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555e586600, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
    #225 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555e586600) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
    #226 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x55555e52b360) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
    #227 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x555558b3fbc0) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
    #228 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
    #229 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=false) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
    #230 0x00007ffff3b3bbc6 in SfxWorkWindow::UpdateChildWindows_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1299
    #231 0x00007ffff3b3b205 in SfxWorkWindow::UpdateObjectBars_Impl2 (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1247
    #232 0x00007ffff3b3a831 in SfxWorkWindow::UpdateObjectBars_Impl (this=0x7fff980287c0) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1095
    #233 0x00007ffff3ba83b3 in SfxDispatcher::Update_Impl (this=0x555556877340, bForce=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:1124
    #234 0x00007ffff3bfebbe in DispatcherUpdate_Impl (pArg=0x555556877340) at /home/michi/development/git/libreoffice/sfx2/source/control/shell.cxx:681
    #235 0x00007ffff0889f71 in Link<void*, void>::Call (this=0x55555e50f300, data=0x555556877340) at include/tools/link.hxx:105
    #236 0x00007ffff08df2c8 in svtools::AsynchronLink::HandleCall_PostUserEvent (this=0x55555e50f300) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:66
    #237 0x00007ffff08df21d in svtools::AsynchronLink::LinkStubHandleCall_PostUserEvent (instance=0x55555e50f300, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/control/asynclink.cxx:58
    #238 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x555559c0e478, data=0x0) at include/tools/link.hxx:105
    #239 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x555559c0e470) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
    #240 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x555559c0e470) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
    #241 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x555559c0e470) at vcl/inc/salframe.hxx:310
    #242 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
    #243 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffffff8470) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
    #244 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
    #245 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
    #246 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
    #247 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #248 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #249 0x00007fffe9d0701f in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #250 0x00007fffe652062a in main_loop_run (pLoop=0x55555e56d830) at vcl/inc/unx/gtk/gtkdata.hxx:59
    #251 0x00007fffe64964ad in (anonymous namespace)::DialogRunner::run (this=0x555558b52070) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:6768
    #252 0x00007fffe6491af0 in (anonymous namespace)::GtkInstanceDialog::run (this=0x555558b51f10) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:10190
    #253 0x00007fff9dd55d03 in SdOutliner::ShowWrapAroundDialog (this=0x555559646c20) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1526
    #254 0x00007fff9dd4e88f in SdOutliner::EndOfSearch (this=0x555559646c20) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1432
    #255 0x00007fff9dd4f9e2 in SdOutliner::ProvideNextTextObject (this=0x555559646c20) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:1399
    #256 0x00007fff9dd4e68b in SdOutliner::SpellNextDocument (this=0x555559646c20) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:393
    #257 0x00007fff9dd4fbc0 in SdOutliner::GetNextSpellSentence (this=0x555559646c20) at /home/michi/development/git/libreoffice/sd/source/ui/view/Outliner.cxx:436
    #258 0x00007fff9d8f4ee0 in sd::SpellDialogChildWindow::GetNextWrongSentence (this=0x55555e44ba10) at /home/michi/development/git/libreoffice/sd/source/ui/dlg/SpellDialogChildWindow.cxx:72
    #259 0x00007fff9480ddaa in svx::SpellDialog::GetNextSentence_Impl (this=0x55555e445f10, pGuard=0x0, bUseSavedSentence=false, bRecheck=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:1050
    #260 0x00007fff9480caa4 in svx::SpellDialog::SpellContinue_Impl (this=0x55555e445f10, pGuard=0x0, bUseSavedSentence=false, bIgnoreCurrentError=false) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:402
    #261 0x00007fff9480f0dd in svx::SpellDialog::Initialize (this=0x55555e445f10) at /home/michi/development/git/libreoffice/cui/source/dialogs/SpellDialog.cxx:432
    #262 0x00007fff9485d131 in (anonymous namespace)::AbstractSpellDialog_Impl::Initialize (this=0x55555e3212b0) at /home/michi/development/git/libreoffice/cui/source/factory/dlgfact.cxx:452
    #263 0x00007ffff27ef522 in svx::SpellDialogChildWindow::Initialize (this=0x55555e44ba10) at /home/michi/development/git/libreoffice/svx/source/dialog/SpellDialogChildWindow.cxx:49
    #264 0x00007ffff3aa0d49 in SfxChildWindow::CreateChildWindow (nId=10243, pParent=0x5555589410f0, pBindings=0x555556a7ef20, rInfo=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/childwin.cxx:244
    #265 0x00007ffff3b3be5d in SfxWorkWindow::CreateChildWin_Impl (this=0x7fff980287c0, pCW=0x5555598d22b0, bSetFocus=true) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1350
    #266 0x00007ffff3b3e0f3 in SfxWorkWindow::ToggleChildWindow_Impl (this=0x7fff980287c0, nId=10243, bSetFocus=true) at /home/michi/development/git/libreoffice/sfx2/source/appl/workwin.cxx:1835
    #267 0x00007ffff42110c9 in SfxViewFrame::ToggleChildWindow (this=0x555556819530, nId=10243) at /home/michi/development/git/libreoffice/sfx2/source/view/viewfrm.cxx:3703
    #268 0x00007fff9de38d3c in sd::DrawViewShell::Execute (this=0x555556b4b610, rReq=...) at /home/michi/development/git/libreoffice/sd/source/ui/view/drviews7.cxx:1976
    #269 0x00007fff9de64075 in SfxStubDrawViewShellExecute (pShell=0x555556b4b610, rReq=...) at workdir/SdiTarget/sd/sdi/sdslots.hxx:1575
    #270 0x00007ffff3ba6bfe in SfxDispatcher::Call_Impl (this=0x555556877340, rShell=..., rSlot=..., rReq=..., bRecord=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:256
    #271 0x00007ffff3bab4a6 in SfxDispatcher::Execute_ (this=0x555556877340, rShell=..., rSlot=..., rReq=..., eCallMode=SfxCallMode::RECORD) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:755
    #272 0x00007ffff3b9302e in SfxBindings::Execute_Impl (this=0x555556a7ef20, aReq=..., pSlot=0x7fff9df8d038 <aDrawViewShellSlots_Impl+10728>, pShell=0x555556b4b610)
        at /home/michi/development/git/libreoffice/sfx2/source/control/bindings.cxx:1045
    #273 0x00007ffff3c720cd in SfxDispatchController_Impl::dispatch (this=0x55555915d2e0, aURL=..., aArgs=empty uno::Sequence, rListener=empty uno::Reference) at /home/michi/development/git/libreoffice/sfx2/source/control/unoctitm.cxx:736
    #274 0x00007ffff3c70b84 in SfxOfficeDispatch::dispatch (this=0x55555915cfa0, aURL=..., aArgs=empty uno::Sequence) at /home/michi/development/git/libreoffice/sfx2/source/control/unoctitm.cxx:255
    #275 0x00007ffff09d3792 in svt::(anonymous namespace)::AsyncAccelExec::impl_ts_asyncCallback (this=0x55555e321fc0) at /home/michi/development/git/libreoffice/svtools/source/misc/acceleratorexecute.cxx:509
    #276 0x00007ffff09d34cd in svt::(anonymous namespace)::AsyncAccelExec::LinkStubimpl_ts_asyncCallback (instance=0x55555e321fc0, data=0x0) at /home/michi/development/git/libreoffice/svtools/source/misc/acceleratorexecute.cxx:501
    #277 0x00007fffee18f511 in Link<LinkParamNone*, void>::Call (this=0x55555e322060, data=0x0) at include/tools/link.hxx:105
    #278 0x00007fffeea21eea in vcl::EventPoster::DoEvent_Impl (this=0x55555e322058) at /home/michi/development/git/libreoffice/vcl/source/helper/evntpost.cxx:52
    #279 0x00007fffeea21e9d in vcl::EventPoster::LinkStubDoEvent_Impl (instance=0x55555e322058, data=0x0) at /home/michi/development/git/libreoffice/vcl/source/helper/evntpost.cxx:48
    #280 0x00007fffee4622d1 in Link<void*, void>::Call (this=0x55555e3148c8, data=0x0) at include/tools/link.hxx:105
    #281 0x00007fffee45dbf1 in ImplHandleUserEvent (pSVEvent=0x55555e3148c0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
    #282 0x00007fffee45ab1f in ImplWindowFrameProc (_pWindow=0x555556a70090, nEvent=SalEvent::UserEvent, pEvent=0x55555e3148c0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2869
    #283 0x00007fffef031fec in SalFrame::CallCallback (this=0x5555569484e0, nEvent=SalEvent::UserEvent, pEvent=0x55555e3148c0) at vcl/inc/salframe.hxx:310
    #284 0x00007fffef0584df in SalGenericDisplay::ProcessEvent (this=0x5555569f26e0, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
    #285 0x00007fffeea32ced in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffffffb850) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
    #286 0x00007fffeea32bbb in SalUserEventList::DispatchUserEvents (this=0x5555569f26e0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
    #287 0x00007fffef058435 in SalGenericDisplay::DispatchInternalEvent (this=0x5555569f26e0, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
    #288 0x00007fffe647995f in call_userEventFn (data=0x5555555b3760) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:825
    #289 0x00007fffe9d04385 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #290 0x00007fffe9d065b7 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #291 0x00007fffe9d06d20 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
    #292 0x00007fffe64785dc in GtkSalData::Yield (this=0x5555555b3760, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkdata.cxx:403
    #293 0x00007fffe647d613 in GtkInstance::DoYield (this=0x5555555b3610, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/gtk3/gtkinst.cxx:440
    #294 0x00007fffeeafec46 in ImplYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:389
    #295 0x00007fffeeafe55f in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:492
    #296 0x00007fffeeafe340 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:364
    #297 0x00007ffff7b21d05 in desktop::Desktop::Main (this=0x7fffffffd590) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1682
    #298 0x00007fffeeb2b356 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230
    #299 0x00007fffeeb2ce79 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
    #300 0x00007ffff7b9ba3a in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
    #301 0x00005555555559fd in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
    #302 0x00005555555559d7 in main (argc=2, argv=0x7fffffffd798) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49

Change-Id: Ic2e12a1ef163bb4ece04d631c92cc926bcbd0d5e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191950
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
bise86 pushed a commit to bise86/LibreOffice that referenced this pull request Sep 29, 2026
for soffice --headless --convert-to pdf tdf103059-2.odt

==2656459==ERROR: AddressSanitizer: heap-use-after-free on address 0x7c994604b938 at pc 0x7b2929cd73cd bp 0x7ffc818cc110 sp 0x7ffc818cc108
READ of size 8 at 0x7c994604b938 thread T0
    #0 0x7b2929cd73cc in SwTextFormatter::NewFlyCntPortion(SwTextFormatInfo&, SwTextAttr*) const core-asan/sw/source/core/text/itrform2.cxx:3220
    LibreOffice#1 0x7b2929e02267 in SwTextFormatter::NewExtraPortion(SwTextFormatInfo&) core-asan/sw/source/core/text/txtfld.cxx:285
    LibreOffice#2 0x7b2929cccd9d in SwTextFormatter::NewPortion(SwTextFormatInfo&, std::optional<o3tl::strong_int<int, Tag_TextFrameIndex> >) core-asan/sw/source/core/text/itrform2.cxx:1886
    LibreOffice#3 0x7b2929cbf0a3 in SwTextFormatter::BuildPortions(SwTextFormatInfo&) core-asan/sw/source/core/text/itrform2.cxx:440
    LibreOffice#4 0x7b2929ccec48 in SwTextFormatter::FormatLine(o3tl::strong_int<int, Tag_TextFrameIndex>) core-asan/sw/source/core/text/itrform2.cxx:2102
    LibreOffice#5 0x7b2929c10fac in SwTextFrame::FormatLine(SwTextFormatter&, bool) core-asan/sw/source/core/text/frmform.cxx:1458
    LibreOffice#6 0x7b2929c14223 in SwTextFrame::Format_(SwTextFormatter&, SwTextFormatInfo&, bool) core-asan/sw/source/core/text/frmform.cxx:1822
    LibreOffice#7 0x7b2929e4755c in SwTestFormat::SwTestFormat(SwTextFrame*, SwFrame const*, long) core-asan/sw/source/core/text/txtfrm.cxx:3453
    LibreOffice#8 0x7b2929e47e1d in SwTextFrame::TestFormat(SwFrame const*, long&, bool&) core-asan/sw/source/core/text/txtfrm.cxx:3483
    LibreOffice#9 0x7b29297645a7 in SwContentFrame::WouldFit_(long, SwLayoutFrame*, bool, bool) core-asan/sw/source/core/layout/calcmove.cxx:2192
    LibreOffice#10 0x7b2929756a65 in SwContentFrame::ShouldBwdMoved(SwLayoutFrame*, bool&) core-asan/sw/source/core/layout/calcmove.cxx:199
    LibreOffice#11 0x7b292979f8bd in SwFlowFrame::MoveBwd(bool&) core-asan/sw/source/core/layout/flowfrm.cxx:2669
    LibreOffice#12 0x7b2929761592 in SwContentFrame::MakeAll(OutputDevice*) core-asan/sw/source/core/layout/calcmove.cxx:1654
    LibreOffice#13 0x7b29297578e2 in SwFrame::PrepareMake(OutputDevice*) core-asan/sw/source/core/layout/calcmove.cxx:396
    LibreOffice#14 0x7b2929a082af in SwFrame::Calc(OutputDevice*) const core-asan/sw/source/core/layout/trvlfrm.cxx:1858
    LibreOffice#15 0x7b29298c2bd0 in lcl_FormatContentOfLayoutFrame core-asan/sw/source/core/layout/objectformattertxtfrm.cxx:688
    LibreOffice#16 0x7b29298c2b26 in lcl_FormatContentOfLayoutFrame core-asan/sw/source/core/layout/objectformattertxtfrm.cxx:684
    LibreOffice#17 0x7b29298c2b26 in lcl_FormatContentOfLayoutFrame core-asan/sw/source/core/layout/objectformattertxtfrm.cxx:684
    LibreOffice#18 0x7b29298c33a4 in SwObjectFormatterTextFrame::FormatAnchorFrameAndItsPrevs(SwTextFrame&) core-asan/sw/source/core/layout/objectformattertxtfrm.cxx:774
    LibreOffice#19 0x7b29297c06dd in SwFlyAtContentFrame::MakeAll(OutputDevice*) core-asan/sw/source/core/layout/flycnt.cxx:440
    LibreOffice#20 0x7b29297578e2 in SwFrame::PrepareMake(OutputDevice*) core-asan/sw/source/core/layout/calcmove.cxx:396
    LibreOffice#21 0x7b2929a082af in SwFrame::Calc(OutputDevice*) const core-asan/sw/source/core/layout/trvlfrm.cxx:1858
    LibreOffice#22 0x7b29297bc028 in SwFlyFrame::Calc(OutputDevice*) const core-asan/sw/source/core/layout/fly.cxx:3436
    LibreOffice#23 0x7b292984693b in SwLayAction::FormatLayoutFly(SwFlyFrame*) core-asan/sw/source/core/layout/layact.cxx:1553
    LibreOffice#24 0x7b29298ba5f3 in SwObjectFormatter::FormatObj_(SwAnchoredObject&) core-asan/sw/source/core/layout/objectformatter.cxx:287
    LibreOffice#25 0x7b29298c05fb in SwObjectFormatterTextFrame::DoFormatObj(SwAnchoredObject&, bool) core-asan/sw/source/core/layout/objectformattertxtfrm.cxx:132
    LibreOffice#26 0x7b29298ba207 in SwObjectFormatter::FormatObj(SwAnchoredObject&, SwFrame*, SwPageFrame const*, SwLayAction*) core-asan/sw/source/core/layout/objectformatter.cxx:191
    LibreOffice#27 0x7b29297b0cc5 in CalcContent(SwLayoutFrame*, bool) core-asan/sw/source/core/layout/fly.cxx:1852
    LibreOffice#28 0x7b2929a2c3f0 in SwLayoutFrame::FormatWidthCols(SwBorderAttrs const&, long, long) core-asan/sw/source/core/layout/wsfrm.cxx:4024
    LibreOffice#29 0x7b292998a2b2 in SwSectionFrame::Format(OutputDevice*, SwBorderAttrs const*) core-asan/sw/source/core/layout/sectfrm.cxx:1563
    LibreOffice#30 0x7b292975d1b7 in SwLayoutFrame::MakeAll(OutputDevice*) core-asan/sw/source/core/layout/calcmove.cxx:1073
    LibreOffice#31 0x7b292998618a in SwSectionFrame::MakeAll(OutputDevice*) core-asan/sw/source/core/layout/sectfrm.cxx:932
    LibreOffice#32 0x7b29297578e2 in SwFrame::PrepareMake(OutputDevice*) core-asan/sw/source/core/layout/calcmove.cxx:396
    LibreOffice#33 0x7b2929a082af in SwFrame::Calc(OutputDevice*) const core-asan/sw/source/core/layout/trvlfrm.cxx:1858
    LibreOffice#34 0x7b2929844913 in SwLayAction::FormatLayout(OutputDevice*, SwLayoutFrame*, bool) core-asan/sw/source/core/layout/layact.cxx:1315
    LibreOffice#35 0x7b292984617e in SwLayAction::FormatLayout(OutputDevice*, SwLayoutFrame*, bool) core-asan/sw/source/core/layout/layact.cxx:1511
    LibreOffice#36 0x7b292984617e in SwLayAction::FormatLayout(OutputDevice*, SwLayoutFrame*, bool) core-asan/sw/source/core/layout/layact.cxx:1511
    LibreOffice#37 0x7b292983f951 in SwLayAction::InternalAction(OutputDevice*) core-asan/sw/source/core/layout/layact.cxx:629
    LibreOffice#38 0x7b292983d4b7 in SwLayAction::Action(OutputDevice*) core-asan/sw/source/core/layout/layact.cxx:404
    LibreOffice#39 0x7b292a7e2aad in SwViewShell::CalcLayout() core-asan/sw/source/core/view/viewsh.cxx:1248
    LibreOffice#40 0x7b2929504fd1 in SwEditShell::CalcLayout() core-asan/sw/source/core/edit/edws.cxx:89
    LibreOffice#41 0x7b292b84944f in SwXTextDocument::getRendererCount(com::sun::star::uno::Any const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) core-asan/sw/source/uibase/uno/unotxdoc.cxx:2766
    LibreOffice#42 0x7b2918f8118b in PDFExport::Export(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (core-asan/instdir/program/../program/libpdffilterlo.so+0x16a18b) (BuildId: 3e1e7d533e1cda134f16230425f07ece7cda2894)
    LibreOffice#43 0x7b2918fb7781 in PDFFilter::implExport(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (core-asan/instdir/program/../program/libpdffilterlo.so+0x1a0781) (BuildId: 3e1e7d533e1cda134f16230425f07ece7cda2894)
    LibreOffice#44 0x7b2918fb8c26 in PDFFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (core-asan/instdir/program/../program/libpdffilterlo.so+0x1a1c26) (BuildId: 3e1e7d533e1cda134f16230425f07ece7cda2894)
    LibreOffice#45 0x7f2966849fa0 in SfxObjectShell::ExportTo(SfxMedium&) (core-asan/instdir/program/libsfxlo.so+0x2649fa0) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    LibreOffice#46 0x7f296683c239 in SfxObjectShell::SaveTo_Impl(SfxMedium&, SfxItemSet const*) (core-asan/instdir/program/libsfxlo.so+0x263c239) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    LibreOffice#47 0x7f2966851353 in SfxObjectShell::PreDoSaveAs_Impl(rtl::OUString const&, rtl::OUString const&, SfxItemSet const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (core-asan/instdir/program/libsfxlo.so+0x2651353) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    LibreOffice#48 0x7f296684e6e2 in SfxObjectShell::CommonSaveAs_Impl(INetURLObject const&, rtl::OUString const&, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (core-asan/instdir/program/libsfxlo.so+0x264e6e2) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    LibreOffice#49 0x7f29667f24ab in SfxObjectShell::APISaveAs_Impl(std::basic_string_view<char16_t, std::char_traits<char16_t> >, SfxItemSet&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (core-asan/instdir/program/libsfxlo.so+0x25f24ab) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    LibreOffice#50 0x7f29669353f9 in SfxBaseModel::impl_store(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, bool) (core-asan/instdir/program/libsfxlo.so+0x27353f9) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    LibreOffice#51 0x7f29669237ad in SfxBaseModel::storeToURL(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (core-asan/instdir/program/libsfxlo.so+0x27237ad) (BuildId: f20a99320ed1b1e19cb532dd5771162fe9df25d6)
    LibreOffice#52 0x7f296e59ea3d in desktop::DispatchWatcher::executeDispatchRequests(std::__debug::vector<desktop::DispatchWatcher::DispatchRequest, std::allocator<desktop::DispatchWatcher::DispatchRequest> > const&, bool, desktop::DispatchRequestFlags*) (core-asan/instdir/program/libsofficeapp.so+0x39ea3d) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    LibreOffice#53 0x7f296e5d9fae in desktop::RequestHandler::ExecuteCmdLineRequests(desktop::ProcessDocumentsRequest&, bool) (core-asan/instdir/program/libsofficeapp.so+0x3d9fae) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    LibreOffice#54 0x7f296e503193 in desktop::Desktop::OpenClients() (core-asan/instdir/program/libsofficeapp.so+0x303193) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    LibreOffice#55 0x7f296e50005c in desktop::Desktop::OpenClients_Impl(void*) (core-asan/instdir/program/libsofficeapp.so+0x30005c) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    LibreOffice#56 0x7f296e4ffc16 in desktop::Desktop::LinkStubOpenClients_Impl(void*, void*) (core-asan/instdir/program/libsofficeapp.so+0x2ffc16) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    LibreOffice#57 0x7f29552e3410 in Link<void*, void>::Call(void*) const (core-asan/instdir/program/libvcllo.so+0x42e3410) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    LibreOffice#58 0x7f29552db964 in ImplHandleUserEvent(ImplSVEvent*) (core-asan/instdir/program/libvcllo.so+0x42db964) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    LibreOffice#59 0x7f29552e0e3b in ImplWindowFrameProc(vcl::Window*, SalEvent, void const*) (core-asan/instdir/program/libvcllo.so+0x42e0e3b) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    LibreOffice#60 0x7f2956b44430 in SalFrame::CallCallback(SalEvent, void const*) const (core-asan/instdir/program/libvcllo.so+0x5b44430) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    LibreOffice#61 0x7f2956b8d114 in SvpSalInstance::ProcessEvent(SalUserEventList::SalUserEvent) (core-asan/instdir/program/libvcllo.so+0x5b8d114) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    LibreOffice#62 0x7f2955efea9f in SalUserEventList::DispatchUserEvents(bool)::{lambda()LibreOffice#1}::operator()() const (core-asan/instdir/program/libvcllo.so+0x4efea9f) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    LibreOffice#63 0x7f2955eff104 in SalUserEventList::DispatchUserEvents(bool) (core-asan/instdir/program/libvcllo.so+0x4eff104) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    LibreOffice#64 0x7f2956b8e540 in SvpSalInstance::ImplYield(bool, bool) (core-asan/instdir/program/libvcllo.so+0x5b8e540) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    LibreOffice#65 0x7f2956b8edd2 in SvpSalInstance::DoYield(bool, bool) (core-asan/instdir/program/libvcllo.so+0x5b8edd2) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    LibreOffice#66 0x7f2956096112 in ImplYield(bool, bool) (core-asan/instdir/program/libvcllo.so+0x5096112) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    LibreOffice#67 0x7f2956097f83 in Application::Yield() (core-asan/instdir/program/libvcllo.so+0x5097f83) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    LibreOffice#68 0x7f29560953b0 in Application::Execute() (core-asan/instdir/program/libvcllo.so+0x50953b0) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #69 0x7f296e4fc9e9 in desktop::Desktop::Main() (core-asan/instdir/program/libsofficeapp.so+0x2fc9e9) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    #70 0x7f29560eb3c7 in ImplSVMain() (core-asan/instdir/program/libvcllo.so+0x50eb3c7) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #71 0x7f29560eb590 in SVMain() (core-asan/instdir/program/libvcllo.so+0x50eb590) (BuildId: 3cd155f3c9851c1c62b4d2b1959b9b1e4664c2fb)
    #72 0x7f296e5ee383 in soffice_main (core-asan/instdir/program/libsofficeapp.so+0x3ee383) (BuildId: 0d1c41096bed89bed335fa78947804c0924ce8ea)
    #73 0x000000201cc6 in sal_main (core-asan/instdir/program/soffice.bin+0x201cc6) (BuildId: 1edea05beb4bcc822dadbcc6f2b2a28fa5ad215b)
    #74 0x000000201cac in main (core-asan/instdir/program/soffice.bin+0x201cac) (BuildId: 1edea05beb4bcc822dadbcc6f2b2a28fa5ad215b)
    #75 0x7f296e011574 in __libc_start_call_main (/lib64/libc.so.6+0x3574) (BuildId: 48c4b9b1efb1df15da8e787f489128bf31893317)
    #76 0x7f296e011627 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x3627) (BuildId: 48c4b9b1efb1df15da8e787f489128bf31893317)
    #77 0x000000201b64 in _start (core-asan/instdir/program/soffice.bin+0x201b64) (BuildId: 1edea05beb4bcc822dadbcc6f2b2a28fa5ad215b)

0x7c994604b938 is located 56 bytes inside of 696-byte region [0x7c994604b900,0x7c994604bbb8)
freed by thread T0 here:
    #0 0x7f296eae899b in operator delete(void*, unsigned long) (/lib64/libasan.so.8+0xe899b) (BuildId: 0adabddcb77130fc2ea3840d060eb4e8a9ae0c85)
    LibreOffice#1 0x7b2929df5401 in std::__new_allocator<std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> >::deallocate(std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) /usr/include/c++/15/bits/new_allocator.h:172
    LibreOffice#2 0x7b2929df4edb in std::allocator<std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> >::deallocate(std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) /usr/include/c++/15/bits/allocator.h:215
    LibreOffice#3 0x7b2929df4edb in std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> > >::deallocate(std::allocator<std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> >&, std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) /usr/include/c++/15/bits/alloc_traits.h:649
    LibreOffice#4 0x7b2929df4edb in std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> > >::~__allocated_ptr() /usr/include/c++/15/bits/allocated_ptr.h:74
    LibreOffice#5 0x7b2929df5647 in std::_Sp_counted_ptr_inplace<SwParaPortion, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_destroy() /usr/include/c++/15/bits/shared_ptr_base.h:625
    LibreOffice#6 0x7b29283b09bd in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/15/bits/shared_ptr_base.h:346
    LibreOffice#7 0x7b29283b4dd1 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/include/c++/15/bits/shared_ptr_base.h:1069
    LibreOffice#8 0x7b2929c05619 in std::__shared_ptr<SwParaPortion, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/include/c++/15/bits/shared_ptr_base.h:1531
    LibreOffice#9 0x7b2929df424e in std::__shared_ptr<SwParaPortion, (__gnu_cxx::_Lock_policy)2>::reset() /usr/include/c++/15/bits/shared_ptr_base.h:1649
    LibreOffice#10 0x7b2929df3f4f in SwTextFrame::ClearPara() core-asan/sw/source/core/text/txtcache.cxx:41
    LibreOffice#11 0x7b2929e2d129 in SwTextFrame::Init() core-asan/sw/source/core/text/txtfrm.cxx:754
    LibreOffice#12 0x7b2929e45d75 in SwTextFrame::Prepare(PrepareHint, void const*, bool) core-asan/sw/source/core/text/txtfrm.cxx:3358
    LibreOffice#13 0x7b29297e0987 in SwFlyInContentFrame::NotifyBackground(SwPageFrame*, SwRect const&, PrepareHint) core-asan/sw/source/core/layout/flyincnt.cxx:230
    LibreOffice#14 0x7b2929805046 in Notify(SwFlyFrame*, SwPageFrame*, SwRect const&, SwRect const*) core-asan/sw/source/core/layout/frmtool.cxx:3301
    LibreOffice#15 0x7b29297f0a5a in SwFlyNotify::ImplDestroy() core-asan/sw/source/core/layout/frmtool.cxx:696
    LibreOffice#16 0x7b29297f1083 in SwFlyNotify::~SwFlyNotify() core-asan/sw/source/core/layout/frmtool.cxx:798
    LibreOffice#17 0x7b29297e11f0 in SwFlyInContentFrame::MakeAll(OutputDevice*) core-asan/sw/source/core/layout/flyincnt.cxx:316
    LibreOffice#18 0x7b29297578e2 in SwFrame::PrepareMake(OutputDevice*) core-asan/sw/source/core/layout/calcmove.cxx:396
    LibreOffice#19 0x7b2929a082af in SwFrame::Calc(OutputDevice*) const core-asan/sw/source/core/layout/trvlfrm.cxx:1858
    LibreOffice#20 0x7b29297bc028 in SwFlyFrame::Calc(OutputDevice*) const core-asan/sw/source/core/layout/fly.cxx:3436
    LibreOffice#21 0x7b29297e09cf in SwFlyInContentFrame::GetRelPos() const core-asan/sw/source/core/layout/flyincnt.cxx:235
    LibreOffice#22 0x7b2929cd7309 in SwTextFormatter::NewFlyCntPortion(SwTextFormatInfo&, SwTextAttr*) const core-asan/sw/source/core/text/itrform2.cxx:3213
    LibreOffice#23 0x7b2929e02267 in SwTextFormatter::NewExtraPortion(SwTextFormatInfo&) core-asan/sw/source/core/text/txtfld.cxx:285
    LibreOffice#24 0x7b2929cccd9d in SwTextFormatter::NewPortion(SwTextFormatInfo&, std::optional<o3tl::strong_int<int, Tag_TextFrameIndex> >) core-asan/sw/source/core/text/itrform2.cxx:1886
    LibreOffice#25 0x7b2929cbf0a3 in SwTextFormatter::BuildPortions(SwTextFormatInfo&) core-asan/sw/source/core/text/itrform2.cxx:440
    LibreOffice#26 0x7b2929ccec48 in SwTextFormatter::FormatLine(o3tl::strong_int<int, Tag_TextFrameIndex>) core-asan/sw/source/core/text/itrform2.cxx:2102
    LibreOffice#27 0x7b2929c10fac in SwTextFrame::FormatLine(SwTextFormatter&, bool) core-asan/sw/source/core/text/frmform.cxx:1458
    LibreOffice#28 0x7b2929c14223 in SwTextFrame::Format_(SwTextFormatter&, SwTextFormatInfo&, bool) core-asan/sw/source/core/text/frmform.cxx:1822
    LibreOffice#29 0x7b2929e4755c in SwTestFormat::SwTestFormat(SwTextFrame*, SwFrame const*, long) core-asan/sw/source/core/text/txtfrm.cxx:3453
    LibreOffice#30 0x7b2929e47e1d in SwTextFrame::TestFormat(SwFrame const*, long&, bool&) core-asan/sw/source/core/text/txtfrm.cxx:3483
    LibreOffice#31 0x7b29297645a7 in SwContentFrame::WouldFit_(long, SwLayoutFrame*, bool, bool) core-asan/sw/source/core/layout/calcmove.cxx:2192

Change-Id: I291348ddbaaf0e9e8255e2fca5842dc2d2bfe733
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196426
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
bise86 pushed a commit to bise86/LibreOffice that referenced this pull request Sep 29, 2026
As is the case in other weld methods, signals about
ComboBox changes are not supposed to be
emitted when the change happens programatically
and not by manual user interaction.

Therefore, disable notify events in ComboBox::insert
by renaming the actual toolkit implementations to
do_insert and making the weld::ComboBox::insert
base class method block signals while calling
the virtual methods.

See also e.g. weld::TreeView::insert which
uses the same approach.

The GTK implementation was already blocking signals
because it calls GtkInstanceComboBox::insert_including_mru
which in turn blocks signals during insertion.

This fixes a nullptr deref seen with the qt6 VCL
plugin and env var SAL_VCL_QT_USE_WELDED_WIDGETS=1
in a WIP branch to declare support for native widgets
in the dialog triggered as follows:

* start Writer
* "Insert" -> "Chart"
* right-click on the X axes to open the context menu
* activate the "Format Axis" context menu entry

Backtrace:

    Thread 1 "soffice.bin" received signal SIGSEGV, Segmentation fault.
    0x00007ffff2525a54 in SvxNumberFormatShell::LanguageChanged (this=0x0, eLangType=..., rFmtSelPos=@0x7fffffff79ee: 0, rFmtEntries=std::__debug::vector of length 0, capacity 0)
        at /home/michi/development/git/libreoffice/svx/source/items/numfmtsh.cxx:190
    190         eCurLanguage = eLangType;
    (gdb) bt
    #0  0x00007ffff2525a54 in SvxNumberFormatShell::LanguageChanged (this=0x0, eLangType=..., rFmtSelPos=@0x7fffffff79ee: 0, rFmtEntries=std::__debug::vector of length 0, capacity 0)
        at /home/michi/development/git/libreoffice/svx/source/items/numfmtsh.cxx:190
    LibreOffice#1  0x00007fff8a6c5bfc in SvxNumberFormatTabPage::UpdateFormatListBox_Impl (this=0x5555606d5ea0, bCat=false, bUpdateEdit=true) at /home/michi/development/git/libreoffice/cui/source/tabpages/numfmt.cxx:990
    LibreOffice#2  0x00007fff8a6caa4a in SvxNumberFormatTabPage::SelFormatHdl_Impl (this=0x5555606d5ea0, pLb=0x555560788f98) at /home/michi/development/git/libreoffice/cui/source/tabpages/numfmt.cxx:1240
    LibreOffice#3  0x00007fff8a6cab98 in SvxNumberFormatTabPage::SelFormatListBoxHdl_Impl (this=0x5555606d5ea0, rLb=...) at /home/michi/development/git/libreoffice/cui/source/tabpages/numfmt.cxx:1131
    LibreOffice#4  0x00007fff8a6c43bd in SvxNumberFormatTabPage::LinkStubSelFormatListBoxHdl_Impl (instance=0x5555606d5ea0, data=...) at /home/michi/development/git/libreoffice/cui/source/tabpages/numfmt.cxx:1129
    LibreOffice#5  0x00007ffff115bb01 in Link<weld::ComboBox&, void>::Call (this=0x555560788f18, data=...) at include/tools/link.hxx:105
    LibreOffice#6  0x00007ffff114e85b in SvxLanguageBox::ChangeHdl (this=0x555560788f10, rControl=...) at /home/michi/development/git/libreoffice/svx/source/dialog/langbox.cxx:534
    LibreOffice#7  0x00007ffff114e51d in SvxLanguageBox::LinkStubChangeHdl (instance=0x555560788f10, data=...) at /home/michi/development/git/libreoffice/svx/source/dialog/langbox.cxx:464
    LibreOffice#8  0x00007fffe58a4371 in Link<weld::ComboBox&, void>::Call (this=0x555560789150, data=...) at include/tools/link.hxx:105
    LibreOffice#9  0x00007fffe58a3f88 in weld::ComboBox::signal_changed (this=0x555560789108) at include/vcl/weld/ComboBox.hxx:63
    LibreOffice#10 0x00007fffe58988dd in QtInstanceComboBox::signalChanged (this=0x555560788f60) at vcl/qt6/../qt5/QtInstanceComboBox.cxx:432
    LibreOffice#11 0x00007fffe58a4791 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceComboBox::*)()>::call(void (QtInstanceComboBox::*)(), QtInstanceComboBox*, void**)::{lambda()LibreOffice#1}::operator()() const (this=0x7fffffff7e10) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
    LibreOffice#12 0x00007fffe58a46c9 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceComboBox::*)()>::call(void (QtInstanceComboBox::*)(), QtInstanceComboBox*, void**)::{lambda()LibreOffice#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceComboBox::*)()>::call(void (QtInstanceComboBox::*)(), QtInstanceComboBox*, void**)::{lambda()LibreOffice#1}&&) (args=0x7fffffff81f0, fn=...) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:65
    LibreOffice#13 0x00007fffe58a45fb in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceComboBox::*)()>::call(void (QtInstanceComboBox::*)(), QtInstanceComboBox*, void**)
        (f=(void (QtInstanceComboBox::*)(QtInstanceComboBox * const)) 0x7fffe58988a0 <QtInstanceComboBox::signalChanged()>, o=0x555560788f60, arg=0x7fffffff81f0)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:126
    LibreOffice#14 0x00007fffe58a457d in QtPrivate::FunctionPointer<void (QtInstanceComboBox::*)()>::call<QtPrivate::List<>, void>(void (QtInstanceComboBox::*)(), QtInstanceComboBox*, void**)
        (f=(void (QtInstanceComboBox::*)(QtInstanceComboBox * const)) 0x7fffe58988a0 <QtInstanceComboBox::signalChanged()>, o=0x555560788f60, arg=0x7fffffff81f0)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:174
    LibreOffice#15 0x00007fffe58a44a6 in QtPrivate::QCallableObject<void (QtInstanceComboBox::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
        (which=1, this_=0x5555607893d0, r=0x555560788f60, a=0x7fffffff81f0, ret=0x0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:545
    LibreOffice#16 0x00007fffe46ea402 in QtPrivate::QSlotObjectBase::call (this=0x5555607893d0, r=0x555560788f60, a=0x7fffffff81f0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
    LibreOffice#17 0x00007fffe491b872 in doActivate<false> (sender=0x55556077ac40, signal_index=13, argv=0x7fffffff81f0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4371
    LibreOffice#18 0x00007fffe4911c63 in QMetaObject::activate (sender=0x55556077ac40, m=0x7fffe33803b8 <QComboBox::staticMetaObject>, local_signal_index=6, argv=0x7fffffff81f0)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4431
    LibreOffice#19 0x00007fffe28859eb in QMetaObject::activate<void, QString> (sender=0x55556077ac40, mo=0x7fffe33803b8 <QComboBox::staticMetaObject>, local_signal_index=6, ret=0x0, args=...) at qtbase/src/corelib/kernel/qobjectdefs.h:321
    LibreOffice#20 0x00007fffe2a40f41 in QComboBox::currentTextChanged (this=0x55556077ac40, _t1=...) at qtbase/src/widgets/Widgets_autogen/include/moc_qcombobox.cpp:376
    LibreOffice#21 0x00007fffe2a3e3ad in QComboBoxPrivate::updateCurrentText (this=0x55556077c400, text=...) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qcombobox.cpp:3210
    LibreOffice#22 0x00007fffe2a3e68e in QComboBoxPrivate::emitCurrentIndexChanged (this=0x55556077c400, index=...) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qcombobox.cpp:1695
    LibreOffice#23 0x00007fffe2a3973b in QComboBoxPrivate::setCurrentIndex (this=0x55556077c400, mi=...) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qcombobox.cpp:2480
    LibreOffice#24 0x00007fffe2a38b6a in QComboBox::setCurrentIndex (this=0x55556077ac40, index=0) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qcombobox.cpp:2427
    LibreOffice#25 0x00007fffe2a3e550 in QComboBoxPrivate::rowsInserted (this=0x55556077c400, parent=..., start=0, end=0) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qcombobox.cpp:1399
    LibreOffice#26 0x00007fffe2a57482 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, int, int>, void, void (QComboBoxPrivate::*)(QModelIndex const&, int, int)>::call(void (QComboBoxPrivate::*)(QModelIndex const&, int, int), QComboBoxPrivate*, void**)::{lambda()LibreOffice#1}::operator()() const (this=0x7fffffff85c0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
    LibreOffice#27 0x00007fffe2a573dd in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, int, int>, void, void (QComboBoxPrivate::*)(QModelIndex const&, int, int)>::call(void (QComboBoxPrivate::*)(QModelIndex const&, int, int), QComboBoxPrivate*, void**)::{lambda()LibreOffice#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, int, int>, void, void (QComboBoxPrivate::*)(QModelIndex const&, int, int)>::call(void (QComboBoxPrivate::*)(QModelIndex const&, int, int), QComboBoxPrivate*, void**)::{lambda()LibreOffice#1}&&) (args=0x7fffffff89c0, fn=...)
        at qtbase/src/corelib/kernel/qobjectdefs_impl.h:65
    LibreOffice#28 0x00007fffe2a57397 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, int, int>, void, void (QComboBoxPrivate::*)(QModelIndex const&, int, int)>::call
        (f=(void (QComboBoxPrivate::*)(QComboBoxPrivate * const, const QModelIndex &, int, int)) 0x7fffe2a3e3c0 <QComboBoxPrivate::rowsInserted(QModelIndex const&, int, int)>, o=0x55556077c400, arg=0x7fffffff89c0)
        at qtbase/src/corelib/kernel/qobjectdefs_impl.h:126
    LibreOffice#29 0x00007fffe2a57301 in QtPrivate::FunctionPointer<void (QComboBoxPrivate::*)(QModelIndex const&, int, int)>::call<QtPrivate::List<QModelIndex const&, int, int>, void>
        (f=(void (QComboBoxPrivate::*)(QComboBoxPrivate * const, const QModelIndex &, int, int)) 0x7fffe2a3e3c0 <QComboBoxPrivate::rowsInserted(QModelIndex const&, int, int)>, o=0x55556077c400, arg=0x7fffffff89c0)
        at qtbase/src/corelib/kernel/qobjectdefs_impl.h:174
    LibreOffice#30 0x00007fffe2a57230 in QtPrivate::QPrivateSlotObject<void (QComboBoxPrivate::*)(QModelIndex const&, int, int), QtPrivate::List<QModelIndex const&, int, int>, void>::impl
        (which=1, this_=0x55556077cd80, r=0x55556077ac40, a=0x7fffffff89c0, ret=0x0) at qtbase/src/corelib/kernel/qobject_p.h:272
    LibreOffice#31 0x00007fffe46ea402 in QtPrivate::QSlotObjectBase::call (this=0x55556077cd80, r=0x55556077ac40, a=0x7fffffff89c0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
    LibreOffice#32 0x00007fffe491b872 in doActivate<false> (sender=0x555560766e90, signal_index=13, argv=0x7fffffff89c0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4371
    LibreOffice#33 0x00007fffe4911c63 in QMetaObject::activate (sender=0x555560766e90, m=0x7fffe527bdf0 <QAbstractItemModel::staticMetaObject>, local_signal_index=10, argv=0x7fffffff89c0)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4431
    LibreOffice#34 0x00007fffe4d77bf5 in QMetaObject::activate<void, QModelIndex, int, int, QAbstractItemModel::QPrivateSignal>
        (sender=0x555560766e90, mo=0x7fffe527bdf0 <QAbstractItemModel::staticMetaObject>, local_signal_index=10, ret=0x0, args=..., args=@0x7fffffff8a30: 0, args=@0x7fffffff8a2c: 0, args=...) at qtbase/src/corelib/kernel/qobjectdefs.h:321
    LibreOffice#35 0x00007fffe4d6b8ca in QAbstractItemModel::rowsInserted (this=0x555560766e90, _t1=..., _t2=0, _t3=0, _t4=...) at qtbase/src/corelib/Core_autogen/include/moc_qabstractitemmodel.cpp:690
    LibreOffice#36 0x00007fffe4d6b846 in QAbstractItemModel::endInsertRows (this=0x555560766e90) at /home/michi/development/git/qt5/qtbase/src/corelib/itemmodels/qabstractitemmodel.cpp:2922
    LibreOffice#37 0x00007fffe3c56a98 in QStandardItemModelPrivate::rowsInserted (this=0x555560775680, parent=0x55556077c9b0, row=0, count=1) at /home/michi/development/git/qt5/qtbase/src/gui/itemmodels/qstandarditemmodel.cpp:625
    LibreOffice#38 0x00007fffe3c56d93 in QStandardItemPrivate::insertRows (this=0x55556077c010, row=0, count=1, items=...) at /home/michi/development/git/qt5/qtbase/src/gui/itemmodels/qstandarditemmodel.cpp:497
    LibreOffice#39 0x00007fffe3c58bdd in QStandardItem::insertRow (this=0x55556077c9b0, row=0, items=...) at /home/michi/development/git/qt5/qtbase/src/gui/itemmodels/qstandarditemmodel.cpp:1601
    LibreOffice#40 0x00007fffe3c5aa3f in QStandardItemModel::insertRow (this=0x555560766e90, row=0, items=...) at /home/michi/development/git/qt5/qtbase/src/gui/itemmodels/qstandarditemmodel.cpp:2680
    LibreOffice#41 0x00007fffe2a4b5ea in QStandardItemModel::insertRow (this=0x555560766e90, arow=0, aitem=0x55556078ad80) at qtbase/src/gui/itemmodels/qstandarditemmodel.h:401
    LibreOffice#42 0x00007fffe2a419f7 in QComboBox::insertItem (this=0x55556077ac40, index=0, icon=..., text=..., userData=...) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qcombobox.cpp:2593
    LibreOffice#43 0x00007fffe57c1ea7 in QComboBox::insertItem (this=0x55556077ac40, aindex=0, atext=..., auserData=...) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qcombobox.h:228
    LibreOffice#44 0x00007fffe589ccd3 in QtInstanceComboBox::insert(int, rtl::OUString const&, rtl::OUString const*, rtl::OUString const*, VirtualDevice*)::$_0::operator()() const (this=0x55556078b1a0) at vcl/qt6/../qt5/QtInstanceComboBox.cxx:45
    LibreOffice#45 0x00007fffe589cba5 in std::__invoke_impl<void, QtInstanceComboBox::insert(int, rtl::OUString const&, rtl::OUString const*, rtl::OUString const*, VirtualDevice*)::$_0&>(std::__invoke_other, QtInstanceComboBox::insert(int, rtl::OUString const&, rtl::OUString const*, rtl::OUString const*, VirtualDevice*)::$_0&) (__f=...) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:63
    LibreOffice#46 0x00007fffe589cb65 in std::__invoke_r<void, QtInstanceComboBox::insert(int, rtl::OUString const&, rtl::OUString const*, rtl::OUString const*, VirtualDevice*)::$_0&>(QtInstanceComboBox::insert(int, rtl::OUString const&, rtl::OUString const*, rtl::OUString const*, VirtualDevice*)::$_0&) (__fn=...) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:113
    LibreOffice#47 0x00007fffe589ca4d in std::_Function_handler<void(), QtInstanceComboBox::insert(int, rtl::OUString const&, rtl::OUString const*, rtl::OUString const*, VirtualDevice*)::$_0>::_M_invoke (__functor=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:292
    LibreOffice#48 0x00007fffe584803e in std::function<void()>::operator() (this=0x7fffffff9210) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:593
    LibreOffice#49 0x00007fffe583f17f in QtInstance::RunInMainThread (this=0x5555555f8540, func=...) at vcl/qt6/../qt5/QtInstance.cxx:206
    LibreOffice#50 0x00007fffe5898fcf in QtInstanceComboBox::insert (this=0x555560788f60, nPos=0, rStr="Default - English (UK)", pId=0x7fffffff9558, pIconName=0x0, pImageSurface=0x0) at vcl/qt6/../qt5/QtInstanceComboBox.cxx:37
    LibreOffice#51 0x00007ffff115d8fb in weld::ComboBox::insert (this=0x555560789108, pos=-1, rItem=...) at include/vcl/weld/ComboBox.hxx:89
    LibreOffice#52 0x00007ffff115af02 in weld::ComboBox::append (this=0x555560789108, rItem=...) at include/vcl/weld/ComboBox.hxx:96
    LibreOffice#53 0x00007ffff114d012 in SvxLanguageBox::SetLanguageList
        (this=0x555560788f10, nLangList=(SvxLanguageListFlags::ALL | SvxLanguageListFlags::ONLY_KNOWN), bHasLangNone=false, bLangNoneIsLangAll=false, bCheckSpellAvail=false, bDefaultLangExist=true, eDefaultLangType=..., nDefaultType=4)
        at /home/michi/development/git/libreoffice/svx/source/dialog/langbox.cxx:323
    LibreOffice#54 0x00007fff8a6c405e in SvxNumberFormatTabPage::Init_Impl (this=0x5555606d5ea0) at /home/michi/development/git/libreoffice/cui/source/tabpages/numfmt.cxx:318
    LibreOffice#55 0x00007fff8a6c2e3d in SvxNumberFormatTabPage::SvxNumberFormatTabPage
        (this=0x5555606d5ea0, pPage=0x555560718098, pController=0x55555a7234c0, rCoreAttrs=SfxItemSet of pool 0x55555b593c40 with parent 0x0 and Which ranges: [(17, 18), (40, 70), (1000, 1012), (4021, 4079), (10085, 10085), (10932, 10932), (11090, 11090)] = {...}) at /home/michi/development/git/libreoffice/cui/source/tabpages/numfmt.cxx:247
    LibreOffice#56 0x00007fff8a6cc2ee in std::make_unique<SvxNumberFormatTabPage, weld::Container*&, weld::DialogController*&, SfxItemSet const&>
        (__args=@0x7fffffffa160: 0x555560718098, __args=@0x7fffffffa158: 0x55555a7234c0, __args=SfxItemSet of pool 0x55555b593c40 with parent 0x0 and Which ranges: [(17, 18), (40, 70), (1000, 1012), (4021, 4079), (10085, 10085), (10932, 10932), (11090, 11090)] = {...}) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/unique_ptr.h:1084
    LibreOffice#57 0x00007fff8a6c46d9 in SvxNumberFormatTabPage::Create (pPage=0x555560718098, pController=0x55555a7234c0, rAttrSet=0x55555b5c41f0) at /home/michi/development/git/libreoffice/cui/source/tabpages/numfmt.cxx:326
    LibreOffice#58 0x00007ffff399ed1d in SfxTabDialogController::CreatePages (this=0x55555a7234c0) at /home/michi/development/git/libreoffice/sfx2/source/dialog/tabdlg.cxx:946
    LibreOffice#59 0x00007ffff399fd19 in SfxTabDialogController::Start_Impl (this=0x55555a7234c0) at /home/michi/development/git/libreoffice/sfx2/source/dialog/tabdlg.cxx:1034
    LibreOffice#60 0x00007ffff39a011e in SfxTabDialogController::runAsync (rController=std::shared_ptr<SfxTabDialogController> (use count 3, weak count 1) = {...}, rFunc=...)
        at /home/michi/development/git/libreoffice/sfx2/source/dialog/tabdlg.cxx:1091
    LibreOffice#61 0x00007fff8b0da287 in chart::ChartController::executeDlg_ObjectProperties_withUndoGuard
        (this=0x55555c98cd40, xUndoGuard=std::shared_ptr<chart::UndoGuard> (empty) = {...}, rObjectCID="CID/D=0:CS=0:Axis=0,0", bSuccessOnUnchanged=false)
        at /home/michi/development/git/libreoffice/chart2/source/controller/main/ChartController_Properties.cxx:778
    LibreOffice#62 0x00007fff8b0d94fc in chart::ChartController::executeDlg_ObjectProperties (this=0x55555c98cd40, rSelectedObjectCID="CID/D=0:CS=0:Axis=0,0")
        at /home/michi/development/git/libreoffice/chart2/source/controller/main/ChartController_Properties.cxx:695
    LibreOffice#63 0x00007fff8b0d7368 in chart::ChartController::executeDispatch_FormatObject (this=0x55555c98cd40, rDispatchCommand=u"FormatAxis")
        at /home/michi/development/git/libreoffice/chart2/source/controller/main/ChartController_Properties.cxx:651
    LibreOffice#64 0x00007fff8b0a72a3 in chart::ChartController::dispatch (this=0x55555c98cd40, rURL=..., rArgs=empty uno::Sequence) at /home/michi/development/git/libreoffice/chart2/source/controller/main/ChartController.cxx:1226
    LibreOffice#65 0x00007fff8b1512fc in chart::ControllerCommandDispatch::dispatch (this=0x55555b6ae620, URL=..., Arguments=empty uno::Sequence)
        at /home/michi/development/git/libreoffice/chart2/source/controller/main/ControllerCommandDispatch.cxx:933
    LibreOffice#66 0x00007ffff4b03874 in framework::(anonymous namespace)::AsyncMenuExecute (data=0x55555b573710) at /home/michi/development/git/libreoffice/framework/source/uielement/menubarmanager.cxx:793
    LibreOffice#67 0x00007fffedc46db1 in Link<void*, void>::Call (this=0x55555b574058, data=0x55555b573710) at include/tools/link.hxx:105
    LibreOffice#68 0x00007fffedc426d1 in ImplHandleUserEvent (pSVEvent=0x55555b574050) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2314
    #69 0x00007fffedc3f5ff in ImplWindowFrameProc (_pWindow=0x555556d919d0, nEvent=SalEvent::UserEvent, pEvent=0x55555b574050) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2871
    #70 0x00007fffe582034c in SalFrame::CallCallback (this=0x555556949a50, nEvent=SalEvent::UserEvent, pEvent=0x55555b574050) at vcl/inc/salframe.hxx:310
    #71 0x00007fffe58421df in QtInstance::ProcessEvent (this=0x5555555f8540, aEvent=...) at vcl/qt6/../qt5/QtInstance.cxx:600
    #72 0x00007fffee22366d in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffffffb990) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
    #73 0x00007fffee22353b in SalUserEventList::DispatchUserEvents (this=0x5555555f85b0, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
    #74 0x00007fffe583e921 in QtInstance::ImplYield (this=0x5555555f8540, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:496
    #75 0x00007fffe5841da1 in QtInstance::DoYield (this=0x5555555f8540, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:518
    #76 0x00007fffee2ee966 in InnerYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:389
    #77 0x00007fffee2ee1ef in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:502
    #78 0x00007fffee2edfd0 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:364
    #79 0x00007ffff7b228b5 in desktop::Desktop::Main (this=0x7fffffffd540) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1681
    #80 0x00007fffee3179d6 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230
    #81 0x00007fffee3194f9 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
    #82 0x00007ffff7b9c86a in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
    #83 0x0000555555555a2d in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
    #84 0x0000555555555a07 in main (argc=2, argv=0x7fffffffd748) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49

Change-Id: I5ecf1c0e0f60b5f215bb21894e98f93ce4516e07
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197468
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
bise86 pushed a commit to bise86/LibreOffice that referenced this pull request Sep 29, 2026
... and position for each document"

The changes to LoadEnv in

    commit 8ce2cf3
    Date:   Mon May 12 01:29:55 2025 +0700

        tdf#41777 Add window size and position for each document

to create new frames when loading existing documents from
the start center and close the backing window cause
crashes for the tdf#170399 scenario of starting the template manager
from the start center and then editing a template by selecting
the "Edit" entry from its context menu.

Revert the changes to that class for now, to fix the crashes.

In a quick test with the gen VCL plugin, this causes documents
opened from the start center to no longer be restored in the
position that they were in previously, while opening documents
directly (i.e. not from start center) still results in them
getting restored at the previous location. (Tested with two
different documents that were saved and closed in different
locations on the screen and both were restored at their
original location.)

This partially reverts commit 8ce2cf3.

Backtrace for the gen VCL plugin without this commit in place:

    warn:legacy.osl:835647:835647:vcl/source/window/window.cxx:307: Window ( 14VclDrawingArea()) with live SystemWindows destroyed:  18MenuFloatingWindow()
    Window ( 14VclDrawingArea()) with live SystemWindows destroyed:  18MenuFloatingWindow()

    Thread 1 "soffice.bin" received signal SIGABRT, Aborted.
    __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
    ⚠ warning: 44  ./nptl/pthread_kill.c: No such file or directory
    (gdb) bt
    #0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
    LibreOffice#1  0x00007ffff769749f in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
    LibreOffice#2  0x00007ffff7640942 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
    LibreOffice#3  0x00007ffff76284ac in __GI_abort () at ./stdlib/abort.c:77
    LibreOffice#4  0x00007fffee2339db in SalAbort (rErrorText="Window ( 14VclDrawingArea()) with live SystemWindows destroyed:  18MenuFloatingWindow()", bDumpCore=true) at /home/michi/development/git/libreoffice/vcl/source/app/salplug.cxx:403
    LibreOffice#5  0x00007fffee2ff4b1 in Application::Abort (rErrorText="Window ( 14VclDrawingArea()) with live SystemWindows destroyed:  18MenuFloatingWindow()") at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:300
    LibreOffice#6  0x00007fffedc25c54 in vcl::Window::dispose (this=0x5555573055d0) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:308
    LibreOffice#7  0x00007fffedc9e1c6 in Control::dispose (this=0x5555573055d0) at /home/michi/development/git/libreoffice/vcl/source/control/ctrl.cxx:62
    LibreOffice#8  0x00007fffedea0d53 in VclReferenceBase::disposeOnce (this=0x555557305890) at /home/michi/development/git/libreoffice/vcl/source/outdev/vclreferencebase.cxx:38
    LibreOffice#9  0x00007fffefd29a75 in VclPtr<vcl::Window>::disposeAndClear (this=0x7ffffffe72d0) at include/vcl/vclptr.hxx:208
    LibreOffice#10 0x00007ffff0069f57 in UnoWrapper::WindowDestroyed (this=0x5555568aaf90, pWindow=0x555557168d30) at /home/michi/development/git/libreoffice/toolkit/source/helper/unowrapper.cxx:250
    LibreOffice#11 0x00007fffedc24eca in vcl::Window::dispose (this=0x555557168d30) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:217
    LibreOffice#12 0x00007fffedea0d53 in VclReferenceBase::disposeOnce (this=0x555557168d80) at /home/michi/development/git/libreoffice/vcl/source/outdev/vclreferencebase.cxx:38
    LibreOffice#13 0x00007fffefd29a75 in VclPtr<vcl::Window>::disposeAndClear (this=0x7ffffffe8798) at include/vcl/vclptr.hxx:208
    LibreOffice#14 0x00007fffefd1c382 in VCLXWindow::dispose (this=0x5555577d6d80) at /home/michi/development/git/libreoffice/toolkit/source/awt/vclxwindow.cxx:905
    LibreOffice#15 0x00007ffff0069ec2 in UnoWrapper::WindowDestroyed (this=0x5555568aaf90, pWindow=0x5555573c4dd0) at /home/michi/development/git/libreoffice/toolkit/source/helper/unowrapper.cxx:244
    LibreOffice#16 0x00007fffedc24eca in vcl::Window::dispose (this=0x5555573c4dd0) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:217
    LibreOffice#17 0x00007fffedafd800 in VclScrolledWindow::dispose (this=0x5555573c4dd0) at /home/michi/development/git/libreoffice/vcl/source/window/layout.cxx:1926
    LibreOffice#18 0x00007fffedea0d53 in VclReferenceBase::disposeOnce (this=0x5555573c4e48) at /home/michi/development/git/libreoffice/vcl/source/outdev/vclreferencebase.cxx:38
    LibreOffice#19 0x00007fffefd29a75 in VclPtr<vcl::Window>::disposeAndClear (this=0x7ffffffe9eb8) at include/vcl/vclptr.hxx:208
    LibreOffice#20 0x00007fffefd1c382 in VCLXWindow::dispose (this=0x55555788b020) at /home/michi/development/git/libreoffice/toolkit/source/awt/vclxwindow.cxx:905
    LibreOffice#21 0x00007ffff0069ec2 in UnoWrapper::WindowDestroyed (this=0x5555568aaf90, pWindow=0x555557722300) at /home/michi/development/git/libreoffice/toolkit/source/helper/unowrapper.cxx:244
    LibreOffice#22 0x00007fffedc24eca in vcl::Window::dispose (this=0x555557722300) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:217
    LibreOffice#23 0x00007fffedea0d53 in VclReferenceBase::disposeOnce (this=0x555557722350) at /home/michi/development/git/libreoffice/vcl/source/outdev/vclreferencebase.cxx:38
    LibreOffice#24 0x00007fffefd29a75 in VclPtr<vcl::Window>::disposeAndClear (this=0x7ffffffeb5b8) at include/vcl/vclptr.hxx:208
    LibreOffice#25 0x00007fffefd1c382 in VCLXWindow::dispose (this=0x5555577a9df0) at /home/michi/development/git/libreoffice/toolkit/source/awt/vclxwindow.cxx:905
    LibreOffice#26 0x00007ffff0069ec2 in UnoWrapper::WindowDestroyed (this=0x5555568aaf90, pWindow=0x55555772fe50) at /home/michi/development/git/libreoffice/toolkit/source/helper/unowrapper.cxx:244
    LibreOffice#27 0x00007fffedc24eca in vcl::Window::dispose (this=0x55555772fe50) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:217
    LibreOffice#28 0x00007fffedafb566 in VclFrame::dispose (this=0x55555772fe50) at /home/michi/development/git/libreoffice/vcl/source/window/layout.cxx:1493
    LibreOffice#29 0x00007fffedea0d53 in VclReferenceBase::disposeOnce (this=0x55555772fea8) at /home/michi/development/git/libreoffice/vcl/source/outdev/vclreferencebase.cxx:38
    LibreOffice#30 0x00007fffefd29a75 in VclPtr<vcl::Window>::disposeAndClear (this=0x7ffffffeccd8) at include/vcl/vclptr.hxx:208
    LibreOffice#31 0x00007fffefd1c382 in VCLXWindow::dispose (this=0x5555577c1ac0) at /home/michi/development/git/libreoffice/toolkit/source/awt/vclxwindow.cxx:905
    LibreOffice#32 0x00007ffff0069ec2 in UnoWrapper::WindowDestroyed (this=0x5555568aaf90, pWindow=0x5555572db4d0) at /home/michi/development/git/libreoffice/toolkit/source/helper/unowrapper.cxx:244
    LibreOffice#33 0x00007fffedc24eca in vcl::Window::dispose (this=0x5555572db4d0) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:217
    LibreOffice#34 0x00007fffedea0d53 in VclReferenceBase::disposeOnce (this=0x5555572db520) at /home/michi/development/git/libreoffice/vcl/source/outdev/vclreferencebase.cxx:38
    LibreOffice#35 0x00007fffefd29a75 in VclPtr<vcl::Window>::disposeAndClear (this=0x7ffffffee3d8) at include/vcl/vclptr.hxx:208
    LibreOffice#36 0x00007fffefd1c382 in VCLXWindow::dispose (this=0x5555577c5650) at /home/michi/development/git/libreoffice/toolkit/source/awt/vclxwindow.cxx:905
    LibreOffice#37 0x00007ffff0069ec2 in UnoWrapper::WindowDestroyed (this=0x5555568aaf90, pWindow=0x5555576ebfe0) at /home/michi/development/git/libreoffice/toolkit/source/helper/unowrapper.cxx:244
    LibreOffice#38 0x00007fffedc24eca in vcl::Window::dispose (this=0x5555576ebfe0) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:217
    LibreOffice#39 0x00007fffedea0d53 in VclReferenceBase::disposeOnce (this=0x5555576ec030) at /home/michi/development/git/libreoffice/vcl/source/outdev/vclreferencebase.cxx:38
    LibreOffice#40 0x00007fffefd29a75 in VclPtr<vcl::Window>::disposeAndClear (this=0x7ffffffefad8) at include/vcl/vclptr.hxx:208
    LibreOffice#41 0x00007fffefd1c382 in VCLXWindow::dispose (this=0x5555577c8d10) at /home/michi/development/git/libreoffice/toolkit/source/awt/vclxwindow.cxx:905
    LibreOffice#42 0x00007ffff0069ec2 in UnoWrapper::WindowDestroyed (this=0x5555568aaf90, pWindow=0x555557806110) at /home/michi/development/git/libreoffice/toolkit/source/helper/unowrapper.cxx:244
    LibreOffice#43 0x00007fffedc24eca in vcl::Window::dispose (this=0x555557806110) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:217
    LibreOffice#44 0x00007fffedbc4b04 in SystemWindow::dispose (this=0x555557806110) at /home/michi/development/git/libreoffice/vcl/source/window/syswin.cxx:119
    LibreOffice#45 0x00007fffeda8e38c in Dialog::dispose (this=0x555557806110) at /home/michi/development/git/libreoffice/vcl/source/window/dialog.cxx:632
    LibreOffice#46 0x00007fffedea0d53 in VclReferenceBase::disposeOnce (this=0x5555578061f0) at /home/michi/development/git/libreoffice/vcl/source/outdev/vclreferencebase.cxx:38
    LibreOffice#47 0x00007fffefd29a75 in VclPtr<vcl::Window>::disposeAndClear (this=0x7fffffff1338) at include/vcl/vclptr.hxx:208
    LibreOffice#48 0x00007fffefd1c382 in VCLXWindow::dispose (this=0x555557897d70) at /home/michi/development/git/libreoffice/toolkit/source/awt/vclxwindow.cxx:905
    LibreOffice#49 0x00007ffff0069ec2 in UnoWrapper::WindowDestroyed (this=0x5555568aaf90, pWindow=0x5555578924d0) at /home/michi/development/git/libreoffice/toolkit/source/helper/unowrapper.cxx:244
    LibreOffice#50 0x00007fffedc24eca in vcl::Window::dispose (this=0x5555578924d0) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:217
    LibreOffice#51 0x00007fffed9c1dc4 in ImplBorderWindow::dispose (this=0x5555578924d0) at /home/michi/development/git/libreoffice/vcl/source/window/brdwin.cxx:1615
    LibreOffice#52 0x00007fffedea0d53 in VclReferenceBase::disposeOnce (this=0x555557892530) at /home/michi/development/git/libreoffice/vcl/source/outdev/vclreferencebase.cxx:38
    LibreOffice#53 0x00007fffefd29a75 in VclPtr<vcl::Window>::disposeAndClear (this=0x7fffffff2b68) at include/vcl/vclptr.hxx:208
    LibreOffice#54 0x00007ffff006a6a7 in UnoWrapper::WindowDestroyed (this=0x5555568aaf90, pWindow=0x555556ef0dc0) at /home/michi/development/git/libreoffice/toolkit/source/helper/unowrapper.cxx:308
    LibreOffice#55 0x00007fffedc24eca in vcl::Window::dispose (this=0x555556ef0dc0) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:217
    LibreOffice#56 0x00007fffedbc4b04 in SystemWindow::dispose (this=0x555556ef0dc0) at /home/michi/development/git/libreoffice/vcl/source/window/syswin.cxx:119
    LibreOffice#57 0x00007fffedc596c1 in WorkWindow::dispose (this=0x555556ef0dc0) at /home/michi/development/git/libreoffice/vcl/source/window/wrkwin.cxx:127
    LibreOffice#58 0x00007fffedea0d53 in VclReferenceBase::disposeOnce (this=0x555556ef0e80) at /home/michi/development/git/libreoffice/vcl/source/outdev/vclreferencebase.cxx:38
    LibreOffice#59 0x00007fffefd29a75 in VclPtr<vcl::Window>::disposeAndClear (this=0x7fffffff40e8) at include/vcl/vclptr.hxx:208
    LibreOffice#60 0x00007fffefd1c382 in VCLXWindow::dispose (this=0x5555570cde30) at /home/michi/development/git/libreoffice/toolkit/source/awt/vclxwindow.cxx:905
    LibreOffice#61 0x00007ffff49f5fd9 in (anonymous namespace)::XFrameImpl::disposing (this=0x555556dd1610) at /home/michi/development/git/libreoffice/framework/source/services/frame.cxx:2184
    LibreOffice#62 0x00007ffff573a1f0 in cppu::WeakComponentImplHelperBase::dispose (this=0x555556dd1610) at /home/michi/development/git/libreoffice/cppuhelper/source/implbase.cxx:104
    LibreOffice#63 0x00007ffff4a02ba5 in cppu::PartialWeakComponentImplHelper<com::sun::star::lang::XServiceInfo, com::sun::star::frame::XFrame2, com::sun::star::awt::XWindowListener, com::sun::star::awt::XTopWindowListener, com::sun::star::awt::XFocusListener, com::sun::star::document::XActionLockable, com::sun::star::util::XCloseable, com::sun::star::frame::XComponentLoader, com::sun::star::frame::XTitle, com::sun::star::frame::XTitleChangeBroadcaster, com::sun::star::beans::XPropertySet, com::sun::star::beans::XPropertySetInfo>::dispose (this=0x555556dd1610) at include/cppuhelper/compbase.hxx:90
    LibreOffice#64 0x00007ffff49fb4d5 in (anonymous namespace)::XFrameImpl::close (this=0x555556dd1610, bDeliverOwnership=0 '\000') at /home/michi/development/git/libreoffice/framework/source/services/frame.cxx:1731
    LibreOffice#65 0x00007ffff4829850 in framework::pattern::frame::closeIt (xResource=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x555556dd1680) at framework/source/inc/pattern/frame.hxx:57
    LibreOffice#66 0x00007ffff49b92fd in framework::LoadEnv::impl_reactForLoadingState (this=0x7fffffff57b8) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:1655
    LibreOffice#67 0x00007ffff49b8cf6 in framework::LoadEnv::impl_setResult (this=0x7fffffff57b8, bResult=true) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:537
    LibreOffice#68 0x00007ffff49b8b31 in framework::LoadEnv::impl_loadContent (this=0x7fffffff57b8) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:1184
    #69 0x00007ffff49b5c85 in framework::LoadEnv::start (this=0x7fffffff57b8) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:417
    #70 0x00007ffff49b3982 in framework::LoadEnv::startLoading
        (this=0x7fffffff57b8, sURL="file:///home/michi/development/git/libreoffice/instdir/share/template/common/officorr/Modern_business_letter_sans_serif.ott", lMediaDescriptor=uno::Sequence of length 3 = {...}, xBaseFrame=uno::Reference to (framework::Desktop *) 0x5555568ac098, sTarget="_default", nSearchFlags=0, eFeature=LoadEnvFeatures::WorkWithUI) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:313
    #71 0x00007ffff49b2282 in framework::LoadEnv::loadComponentFromURL
        (xLoader=uno::Reference to (framework::Desktop *) 0x5555568ac0a8, xContext=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x55555559d808, sURL="file:///home/michi/development/git/libreoffice/instdir/share/template/common/officorr/Modern_business_letter_sans_serif.ott", sTarget="_default", nSearchFlags=0, lArgs=uno::Sequence of length 3 = {...}) at /home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:169
    #72 0x00007ffff49e45d2 in framework::Desktop::loadComponentFromURL
        (this=0x5555568ac030, sURL="file:///home/michi/development/git/libreoffice/instdir/share/template/common/officorr/Modern_business_letter_sans_serif.ott", sTargetFrameName="_default", nSearchFlags=0, lArguments=uno::Sequence of length 3 = {...}) at /home/michi/development/git/libreoffice/framework/source/services/desktop.cxx:594
    #73 0x00007ffff49e4734 in non-virtual thunk to framework::Desktop::loadComponentFromURL(rtl::OUString const&, rtl::OUString const&, int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) ()
        at /home/michi/development/git/libreoffice/instdir/program/libfwklo.so
    #74 0x00007ffff3c6ef72 in SfxTemplateManagerDlg::EditTemplateHdl (this=0x7fffffffa218, rTemplatePath="file:///home/michi/development/git/libreoffice/instdir/share/template/common/officorr/Modern_business_letter_sans_serif.ott")
        at /home/michi/development/git/libreoffice/sfx2/source/doc/templatedlg.cxx:715
    #75 0x00007ffff3c67eed in SfxTemplateManagerDlg::LinkStubEditTemplateHdl (instance=0x7fffffffa218, data="file:///home/michi/development/git/libreoffice/instdir/share/template/common/officorr/Modern_business_letter_sans_serif.ott")
        at /home/michi/development/git/libreoffice/sfx2/source/doc/templatedlg.cxx:704
    #76 0x00007ffff36af081 in Link<rtl::OUString const&, void>::Call (this=0x7fffffffa520, data="file:///home/michi/development/git/libreoffice/instdir/share/template/common/officorr/Modern_business_letter_sans_serif.ott")
        at include/tools/link.hxx:105
    #77 0x00007ffff382c9ab in TemplateDlgLocalView::ContextMenuSelectHdl (this=0x7fffffffa320, rIdent=u"edit") at /home/michi/development/git/libreoffice/sfx2/source/control/templatedlglocalview.cxx:154
    #78 0x00007ffff382c66a in TemplateDlgLocalView::createContextMenu (this=0x7fffffffa320, bIsDefault=false, bIsBuiltIn=true, bIsSingleSel=true, rDefaultImg="res/odt_16_8.png")
        at /home/michi/development/git/libreoffice/sfx2/source/control/templatedlglocalview.cxx:140
    #79 0x00007ffff3c6e710 in SfxTemplateManagerDlg::CreateContextMenuHdl (this=0x7fffffffa218, pItem=0x55555788ca90) at /home/michi/development/git/libreoffice/sfx2/source/doc/templatedlg.cxx:680
    #80 0x00007ffff3c67e5d in SfxTemplateManagerDlg::LinkStubCreateContextMenuHdl (instance=0x7fffffffa218, data=0x55555788ca90) at /home/michi/development/git/libreoffice/sfx2/source/doc/templatedlg.cxx:649
    #81 0x00007ffff381bce1 in Link<TemplateViewItem*, void>::Call (this=0x7fffffffa4e0, data=0x55555788ca90) at include/tools/link.hxx:105
    #82 0x00007ffff3816e34 in TemplateLocalView::Command (this=0x7fffffffa320, rCEvt=...) at /home/michi/development/git/libreoffice/sfx2/source/control/templatelocalview.cxx:718
    #83 0x00007fffee228e11 in weld::CustomWeld::DoCommand (this=0x55555779d480, rPos=...) at /home/michi/development/git/libreoffice/vcl/source/app/customweld.cxx:102
    #84 0x00007fffee228b1d in weld::CustomWeld::LinkStubDoCommand (instance=0x55555779d480, data=...) at /home/michi/development/git/libreoffice/vcl/source/app/customweld.cxx:100
    #85 0x00007fffeda99ed6 in Link<CommandEvent const&, bool>::Call (this=0x555557703ef0, data=...) at include/tools/link.hxx:105
    #86 0x00007fffee2813f1 in weld::Widget::signal_command (this=0x555557703ee0, rCEvt=...) at include/vcl/weld/weld.hxx:109
    #87 0x00007fffee247e74 in SalInstanceWidget::CommandHdl (this=0x555557703eb0, rEvent=...) at /home/michi/development/git/libreoffice/vcl/source/app/salvtables.cxx:819
    #88 0x00007fffee244ccd in SalInstanceWidget::LinkStubCommandHdl (instance=0x555557703eb0, data=...) at /home/michi/development/git/libreoffice/vcl/source/app/salvtables.cxx:817
    #89 0x00007fffeda99ed6 in Link<CommandEvent const&, bool>::Call (this=0x5555577f1080, data=...) at include/tools/link.hxx:105
    #90 0x00007fffedc2f524 in vcl::Window::Command (this=0x5555573055d0, rCEvt=...) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:1933
    #91 0x00007fffedc4df45 in ImplCallCommand (pChild=..., nEvt=CommandEventId::ContextMenu, pData=0x0, bMouse=true, pPos=0x7fffffff7950) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:258
    #92 0x00007fffedc4d68c in ImplHandleMouseEvent (xWindow=..., nSVEvent=NotifyEventType::MOUSEBUTTONDOWN, bMouseLeave=false, nX=125, nY=130, nMsgTime=71004093, nCode=4, nMode=MouseEventModifiers::NONE)
        at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:827
    #93 0x00007fffedc51581 in ImplHandleSalMouseButtonDown (pWindow=0x5555578924d0, pEvent=0x7fffffff8998) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2367
    #94 0x00007fffedc501f1 in ImplWindowFrameProc (_pWindow=0x5555578924d0, nEvent=SalEvent::MouseButtonDown, pEvent=0x7fffffff8998) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2705
    #95 0x00007fffe6215dcc in SalFrame::CallCallback (this=0x555557805e30, nEvent=SalEvent::MouseButtonDown, pEvent=0x7fffffff8998) at vcl/inc/salframe.hxx:310
    #96 0x00007fffe62be199 in X11SalFrame::HandleMouseEvent (this=0x555557805e30, pEvent=0x7fffffff8e68) at /home/michi/development/git/libreoffice/vcl/unx/generic/window/salframe.cxx:2575
    #97 0x00007fffe62c1e97 in X11SalFrame::Dispatch (this=0x555557805e30, pEvent=0x7fffffff8e68) at /home/michi/development/git/libreoffice/vcl/unx/generic/window/salframe.cxx:3642
    #98 0x00007fffe6231f7b in SalX11Display::Dispatch (this=0x555556884440, pEvent=0x7fffffff8e68) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/saldisp.cxx:1966
    #99 0x00007fffe6231802 in SalX11Display::Yield (this=0x555556884440) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/saldisp.cxx:1865
    #100 0x00007fffe62267df in DisplayYield (fd=5, data=0x555556884440) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/saldisp.cxx:317
    #101 0x00007fffe622235c in (anonymous namespace)::YieldEntry::HandleNextEvent (this=0x7fffe63191e8 <yieldTable+200>) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/saldata.cxx:559
    #102 0x00007fffe6222261 in SalXLib::Yield (this=0x5555555a3b00, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/saldata.cxx:751
    #103 0x00007fffe623f29d in X11SalInstance::DoYield (this=0x5555555a1ba0, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/salinst.cxx:189
    #104 0x00007fffee300306 in InnerYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:389
    #105 0x00007fffee2ffb8f in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:502
    #106 0x00007fffeda927db in Dialog::Execute (this=0x555557806110) at /home/michi/development/git/libreoffice/vcl/source/window/dialog.cxx:1079
    #107 0x00007fffee2505ee in SalInstanceDialog::run (this=0x5555575f5100) at /home/michi/development/git/libreoffice/vcl/source/app/salvtables.cxx:1859
    #108 0x00007fffee6b4c6e in weld::DialogController::run (this=0x7fffffffa218) at /home/michi/development/git/libreoffice/vcl/source/weld/DialogController.cxx:16
    #109 0x00007ffff3c68a94 in SfxTemplateManagerDlg::run (this=0x7fffffffa218) at /home/michi/development/git/libreoffice/sfx2/source/doc/templatedlg.cxx:262
    #110 0x00007ffff36578af in SfxApplication::NewDocExec_Impl (this=0x555556dbccf0, rReq=...) at /home/michi/development/git/libreoffice/sfx2/source/appl/appopen.cxx:473
    #111 0x00007ffff3650dd5 in SfxStubSfxApplicationNewDocExec_Impl (pShell=0x555556dbccf0, rReq=...) at workdir/SdiTarget/sfx2/sdi/sfxslots.hxx:1310
    #112 0x00007ffff37aa26e in SfxDispatcher::Call_Impl (this=0x555556979a30, rShell=..., rSlot=..., rReq=..., bRecord=true) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:256
    #113 0x00007ffff37b0156 in SfxDispatcher::PostMsgHandler (this=0x555556979a30, pReq=std::unique_ptr<SfxRequest> = {...}) at /home/michi/development/git/libreoffice/sfx2/source/control/dispatch.cxx:997
    #114 0x00007ffff3ca5458 in SfxHintPoster::DoEvent_Impl (this=0x555556db3930, pPostedHint=0x5555576ed980) at /home/michi/development/git/libreoffice/sfx2/source/notify/hintpost.cxx:74
    #115 0x00007ffff3ca539d in SfxHintPoster::LinkStubDoEvent_Impl (instance=0x555556db3930, data=0x5555576ed980) at /home/michi/development/git/libreoffice/sfx2/source/notify/hintpost.cxx:54
    #116 0x00007fffedc583f1 in Link<void*, void>::Call (this=0x5555577cabb8, data=0x5555576ed980) at include/tools/link.hxx:105
    #117 0x00007fffedc53d11 in ImplHandleUserEvent (pSVEvent=0x5555577cabb0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2314
    #118 0x00007fffedc50c3f in ImplWindowFrameProc (_pWindow=0x555556db2f40, nEvent=SalEvent::UserEvent, pEvent=0x5555577cabb0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2871
    #119 0x00007fffee830cbc in SalFrame::CallCallback (this=0x555556b048a0, nEvent=SalEvent::UserEvent, pEvent=0x5555577cabb0) at vcl/inc/salframe.hxx:310
    #120 0x00007fffee85721f in SalGenericDisplay::ProcessEvent (this=0x555556884440, aEvent=...) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:66
    #121 0x00007fffee234c9d in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7fffffffb390) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
    #122 0x00007fffee234b6b in SalUserEventList::DispatchUserEvents (this=0x555556884440, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
    #123 0x00007fffee857175 in SalGenericDisplay::DispatchInternalEvent (this=0x555556884440, bHandleAllCurrentEvent=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/gendisp.cxx:51
    #124 0x00007fffe6231784 in SalX11Display::Yield (this=0x555556884440) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/saldisp.cxx:1856
    #125 0x00007fffe62267df in DisplayYield (fd=5, data=0x555556884440) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/saldisp.cxx:317
    #126 0x00007fffe622235c in (anonymous namespace)::YieldEntry::HandleNextEvent (this=0x7fffe63191e8 <yieldTable+200>) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/saldata.cxx:559
    #127 0x00007fffe6221bc9 in SalXLib::Yield (this=0x5555555a3b00, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/saldata.cxx:655
    #128 0x00007fffe623f29d in X11SalInstance::DoYield (this=0x5555555a1ba0, bWait=true, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/unx/generic/app/salinst.cxx:189
    #129 0x00007fffee300306 in InnerYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:389
    #130 0x00007fffee2ffb8f in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:502
    #131 0x00007fffee2ff970 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:364
    #132 0x00007ffff7b228b5 in desktop::Desktop::Main (this=0x7fffffffd550) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1681
    #133 0x00007fffee329376 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230
    #134 0x00007fffee32ae99 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
    #135 0x00007ffff7b9c86a in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
    #136 0x0000555555555a2d in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
    #137 0x0000555555555a07 in main (argc=1, argv=0x7fffffffd758) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49

Change-Id: I06da3836405b46671785824fbcee8db863048685
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197637
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
bise86 pushed a commit to bise86/LibreOffice that referenced this pull request Sep 29, 2026
As has been done almost everywhere else already, switch
from defining (skeleton) tab pages in the .ui file for the
database "Advanced Settings" dialog and adding the actual
content only later.

Instead, completely have the logic to add them (including
the tab label to use) in C++ code, as is done elsewhere.

This prevents the situation where trying to remove
the tab page that was defined in the UI file but
isn't known to the SfxTabDialogController yet
would result in an assert getting triggered when using
the qt6 VCL plugin with SAL_VCL_QT_USE_WELDED_WIDGETS=1
when triggering the dialog for a case where the
"Generated Values" tab page isn't meant to be shown.

Seen with upcoming commit

    Change-Id: I2eab17ed0aff12aa3c650f35c8a1b7d737091842
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Mar 9 21:00:01 2026 +0100

        tdf#130857 qt weld: Support DB "Advanced Settings" dialog

(See the commit message of that commit for more details,
but don't apply the extra local change mentioned in there
so that the "Generated Values" tab page will not be added.)

Backtrace how the

    assert(!m_pImpl->aData.empty() && "no Pages registered");

at the beginning of SfxTabDialogController::DeactivatePage
would be triggered otherwise:

    Thread 1 received signal SIGABRT, Aborted.
    __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
    ⚠ warning: 44  ./nptl/pthread_kill.c: No such file or directory
    (rr) bt
    #0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
    LibreOffice#1  0x00007f0bdc8a147f in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:89
    LibreOffice#2  0x00007f0bdc84a942 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
    LibreOffice#3  0x00007f0bdc8324ac in __GI_abort () at ./stdlib/abort.c:77
    LibreOffice#4  0x00007f0bdc832420 in __assert_fail_base (fmt=<optimized out>, assertion=<optimized out>, file=<optimized out>, line=<optimized out>, function=0x7f0bd847b283 "bool SfxTabDialogController::DeactivatePage(std::u16string_view)")
        at ./assert/assert.c:118
    LibreOffice#5  0x00007f0bd8bc655d in SfxTabDialogController::DeactivatePage (this=0x55f6d18af070, aPage=u"generated") at /home/michi/development/git/libreoffice/sfx2/source/dialog/tabdlg.cxx:372
    LibreOffice#6  0x00007f0bd8bc64aa in SfxTabDialogController::DeactivatePageHdl (this=0x55f6d18af070, rPage="generated") at /home/michi/development/git/libreoffice/sfx2/source/dialog/tabdlg.cxx:358
    LibreOffice#7  0x00007f0bd8bc474d in SfxTabDialogController::LinkStubDeactivatePageHdl (instance=0x55f6d18af070, data="generated") at /home/michi/development/git/libreoffice/sfx2/source/dialog/tabdlg.cxx:356
    LibreOffice#8  0x00007f0bca4f6ee6 in Link<rtl::OUString const&, bool>::Call (this=0x55f6d18aebd8, data="generated") at include/tools/link.hxx:105
    LibreOffice#9  0x00007f0bca4f135e in QtInstanceNotebook::currentTabChanged (this=0x55f6d18ae9e0) at vcl/qt6/../qt5/QtInstanceNotebook.cxx:191
    LibreOffice#10 0x00007f0bca4f7a91 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceNotebook::*)()>::call(void (QtInstanceNotebook::*)(), QtInstanceNotebook*, void**)::{lambda()LibreOffice#1}::operator()() const (this=0x7ffecd74f740) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:128
    LibreOffice#11 0x00007f0bca4f79c9 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceNotebook::*)()>::call(void (QtInstanceNotebook::*)(), QtInstanceNotebook*, void**)::{lambda()LibreOffice#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceNotebook::*)()>::call(void (QtInstanceNotebook::*)(), QtInstanceNotebook*, void**)::{lambda()LibreOffice#1}&&) (args=0x7ffecd74fb20, fn=...) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:66
    LibreOffice#12 0x00007f0bca4f78fb in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceNotebook::*)()>::call(void (QtInstanceNotebook::*)(), QtInstanceNotebook*, void**)
        (f=(void (QtInstanceNotebook::*)(class QtInstanceNotebook * const)) 0x7f0bca4f1300 <QtInstanceNotebook::currentTabChanged()>, o=0x55f6d18ae9e0, arg=0x7ffecd74fb20)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
    LibreOffice#13 0x00007f0bca4f787d in QtPrivate::FunctionPointer<void (QtInstanceNotebook::*)()>::call<QtPrivate::List<>, void>(void (QtInstanceNotebook::*)(), QtInstanceNotebook*, void**)
        (f=(void (QtInstanceNotebook::*)(class QtInstanceNotebook * const)) 0x7f0bca4f1300 <QtInstanceNotebook::currentTabChanged()>, o=0x55f6d18ae9e0, arg=0x7ffecd74fb20)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:175
    LibreOffice#14 0x00007f0bca4f77a6 in QtPrivate::QCallableObject<void (QtInstanceNotebook::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
        (which=1, this_=0x55f6d1899530, r=0x55f6d18ae9e0, a=0x7ffecd74fb20, ret=0x0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:546
    LibreOffice#15 0x00007f0bc92e95f2 in QtPrivate::QSlotObjectBase::call (this=0x55f6d1899530, r=0x55f6d18ae9e0, a=0x7ffecd74fb20) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:462
    LibreOffice#16 0x00007f0bc951c112 in doActivate<false> (sender=0x55f6d1e562e0, signal_index=7, argv=0x7ffecd74fb20) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4372
    LibreOffice#17 0x00007f0bc95124b3 in QMetaObject::activate (sender=0x55f6d1e562e0, m=0x7f0bc7f7bcb0 <QTabWidget::staticMetaObject>, local_signal_index=0, argv=0x7ffecd74fb20)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4432
    LibreOffice#18 0x00007f0bc73a69fb in QMetaObject::activate<void, int> (sender=0x55f6d1e562e0, mo=0x7f0bc7f7bcb0 <QTabWidget::staticMetaObject>, local_signal_index=0, ret=0x0, args=@0x7ffecd74fb64: 0) at qtbase/src/corelib/kernel/qobjectdefs.h:320
    LibreOffice#19 0x00007f0bc77fde78 in QTabWidget::currentChanged (this=0x55f6d1e562e0, _t1=0) at qtbase/src/widgets/Widgets_autogen/include/moc_qtabwidget.cpp:263
    LibreOffice#20 0x00007f0bc77fdc4b in QTabWidgetPrivate::showTab (this=0x55f6d1889c50, index=0) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qtabwidget.cpp:761
    LibreOffice#21 0x00007f0bc780118a in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<int>, void, void (QTabWidgetPrivate::*)(int)>::call(void (QTabWidgetPrivate::*)(int), QTabWidgetPrivate*, void**)::{lambda()LibreOffice#1}::operator()() const (this=0x7ffecd74fc30) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:128
    LibreOffice#22 0x00007f0bc7800ffd in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<int>, void, void (QTabWidgetPrivate::*)(int)>::call(void (QTabWidgetPrivate::*)(int), QTabWidgetPrivate*, void**)::{lambda()LibreOffice#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<int>, void, void (QTabWidgetPrivate::*)(int)>::call(void (QTabWidgetPrivate::*)(int), QTabWidgetPrivate*, void**)::{lambda()LibreOffice#1}&&) (args=0x7ffecd750030, fn=...) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:66
    LibreOffice#23 0x00007f0bc7800f87 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<int>, void, void (QTabWidgetPrivate::*)(int)>::call
        (f=(void (QTabWidgetPrivate::*)(class QTabWidgetPrivate * const, int)) 0x7f0bc77fdbe0 <QTabWidgetPrivate::showTab(int)>, o=0x55f6d1889c50, arg=0x7ffecd750030) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
    LibreOffice#24 0x00007f0bc7800ef1 in QtPrivate::FunctionPointer<void (QTabWidgetPrivate::*)(int)>::call<QtPrivate::List<int>, void>
        (f=(void (QTabWidgetPrivate::*)(class QTabWidgetPrivate * const, int)) 0x7f0bc77fdbe0 <QTabWidgetPrivate::showTab(int)>, o=0x55f6d1889c50, arg=0x7ffecd750030) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:175
    LibreOffice#25 0x00007f0bc7800e20 in QtPrivate::QPrivateSlotObject<void (QTabWidgetPrivate::*)(int), QtPrivate::List<int>, void>::impl (which=1, this_=0x55f6d1d6ecb0, r=0x55f6d1e562e0, a=0x7ffecd750030, ret=0x0)
        at qtbase/src/corelib/kernel/qobject_p.h:273
    LibreOffice#26 0x00007f0bc92e95f2 in QtPrivate::QSlotObjectBase::call (this=0x55f6d1d6ecb0, r=0x55f6d1e562e0, a=0x7ffecd750030) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:462
    LibreOffice#27 0x00007f0bc951c112 in doActivate<false> (sender=0x55f6d0aa9aa0, signal_index=7, argv=0x7ffecd750030) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4372
    LibreOffice#28 0x00007f0bc95124b3 in QMetaObject::activate (sender=0x55f6d0aa9aa0, m=0x7f0bc7f7a098 <QTabBar::staticMetaObject>, local_signal_index=0, argv=0x7ffecd750030)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4432
    LibreOffice#29 0x00007f0bc73a69fb in QMetaObject::activate<void, int> (sender=0x55f6d0aa9aa0, mo=0x7f0bc7f7a098 <QTabBar::staticMetaObject>, local_signal_index=0, ret=0x0, args=@0x7ffecd750074: 0) at qtbase/src/corelib/kernel/qobjectdefs.h:320
    LibreOffice#30 0x00007f0bc77c3308 in QTabBar::currentChanged (this=0x55f6d0aa9aa0, _t1=0) at qtbase/src/widgets/Widgets_autogen/include/moc_qtabbar.cpp:269
    LibreOffice#31 0x00007f0bc77c27af in QTabBar::setCurrentIndex (this=0x55f6d0aa9aa0, index=0) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qtabbar.cpp:1469
    LibreOffice#32 0x00007f0bc77c2f07 in QTabBar::removeTab (this=0x55f6d0aa9aa0, index=0) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qtabbar.cpp:1096
    LibreOffice#33 0x00007f0bc77fc3ea in QTabWidgetPrivate::removeTab (this=0x55f6d1889c50, index=0) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qtabwidget.cpp:767
    LibreOffice#34 0x00007f0bc780118a in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<int>, void, void (QTabWidgetPrivate::*)(int)>::call(void (QTabWidgetPrivate::*)(int), QTabWidgetPrivate*, void**)::{lambda()LibreOffice#1}::operator()() const (this=0x7ffecd7502b0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:128
    LibreOffice#35 0x00007f0bc7800ffd in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<int>, void, void (QTabWidgetPrivate::*)(int)>::call(void (QTabWidgetPrivate::*)(int), QTabWidgetPrivate*, void**)::{lambda()LibreOffice#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<int>, void, void (QTabWidgetPrivate::*)(int)>::call(void (QTabWidgetPrivate::*)(int), QTabWidgetPrivate*, void**)::{lambda()LibreOffice#1}&&) (args=0x7ffecd7506b0, fn=...) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:66
    LibreOffice#36 0x00007f0bc7800f87 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<int>, void, void (QTabWidgetPrivate::*)(int)>::call
        (f=(void (QTabWidgetPrivate::*)(class QTabWidgetPrivate * const, int)) 0x7f0bc77fc3b0 <QTabWidgetPrivate::removeTab(int)>, o=0x55f6d1889c50, arg=0x7ffecd7506b0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
    LibreOffice#37 0x00007f0bc7800ef1 in QtPrivate::FunctionPointer<void (QTabWidgetPrivate::*)(int)>::call<QtPrivate::List<int>, void>
        (f=(void (QTabWidgetPrivate::*)(class QTabWidgetPrivate * const, int)) 0x7f0bc77fc3b0 <QTabWidgetPrivate::removeTab(int)>, o=0x55f6d1889c50, arg=0x7ffecd7506b0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:175
    LibreOffice#38 0x00007f0bc7800e20 in QtPrivate::QPrivateSlotObject<void (QTabWidgetPrivate::*)(int), QtPrivate::List<int>, void>::impl (which=1, this_=0x55f6d1d73e10, r=0x55f6d1e562e0, a=0x7ffecd7506b0, ret=0x0)
        at qtbase/src/corelib/kernel/qobject_p.h:273
    LibreOffice#39 0x00007f0bc92e95f2 in QtPrivate::QSlotObjectBase::call (this=0x55f6d1d73e10, r=0x55f6d1e562e0, a=0x7ffecd7506b0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:462
    LibreOffice#40 0x00007f0bc951c112 in doActivate<false> (sender=0x55f6d1e56310, signal_index=8, argv=0x7ffecd7506b0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4372
    LibreOffice#41 0x00007f0bc95124b3 in QMetaObject::activate (sender=0x55f6d1e56310, m=0x7f0bc7f796e0 <QStackedWidget::staticMetaObject>, local_signal_index=1, argv=0x7ffecd7506b0)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4432
    LibreOffice#42 0x00007f0bc73a69fb in QMetaObject::activate<void, int> (sender=0x55f6d1e56310, mo=0x7f0bc7f796e0 <QStackedWidget::staticMetaObject>, local_signal_index=1, ret=0x0, args=@0x7ffecd7506f4: 0)
        at qtbase/src/corelib/kernel/qobjectdefs.h:320
    LibreOffice#43 0x00007f0bc77b6c5d in QStackedWidget::widgetRemoved (this=0x55f6d1e56310, _t1=0) at qtbase/src/widgets/Widgets_autogen/include/moc_qstackedwidget.cpp:194
    LibreOffice#44 0x00007f0bc77b7dda in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<int>, void, void (QStackedWidget::*)(int)>::call(void (QStackedWidget::*)(int), QStackedWidget*, void**)::{lambda()LibreOffice#1}::operator()() const (this=0x7ffecd750780) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:128
    LibreOffice#45 0x00007f0bc77b7ced in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<int>, void, void (QStackedWidget::*)(int)>::call(void (QStackedWidget::*)(int), QStackedWidget*, void**)::{lambda()LibreOffice#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<int>, void, void (QStackedWidget::*)(int)>::call(void (QStackedWidget::*)(int), QStackedWidget*, void**)::{lambda()LibreOffice#1}&&) (args=0x7ffecd750b70, fn=...) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:66
    LibreOffice#46 0x00007f0bc77b7c07 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<int>, void, void (QStackedWidget::*)(int)>::call
        (f=(void (QStackedWidget::*)(class QStackedWidget * const, int)) 0x7f0bc77b6c20 <QStackedWidget::widgetRemoved(int)>, o=0x55f6d1e56310, arg=0x7ffecd750b70) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
    LibreOffice#47 0x00007f0bc77b7b71 in QtPrivate::FunctionPointer<void (QStackedWidget::*)(int)>::call<QtPrivate::List<int>, void>
        (f=(void (QStackedWidget::*)(class QStackedWidget * const, int)) 0x7f0bc77b6c20 <QStackedWidget::widgetRemoved(int)>, o=0x55f6d1e56310, arg=0x7ffecd750b70) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:175
    LibreOffice#48 0x00007f0bc77b7a9b in QtPrivate::QCallableObject<void (QStackedWidget::*)(int), QtPrivate::List<int>, void>::impl (which=1, this_=0x55f6d18a6a70, r=0x55f6d1e56310, a=0x7ffecd750b70, ret=0x0)
        at qtbase/src/corelib/kernel/qobjectdefs_impl.h:546
    LibreOffice#49 0x00007f0bc92e95f2 in QtPrivate::QSlotObjectBase::call (this=0x55f6d18a6a70, r=0x55f6d1e56310, a=0x7ffecd750b70) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:462
    LibreOffice#50 0x00007f0bc951c112 in doActivate<false> (sender=0x55f6d1d94df0, signal_index=3, argv=0x7ffecd750b70) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4372
    LibreOffice#51 0x00007f0bc95124b3 in QMetaObject::activate (sender=0x55f6d1d94df0, m=0x7f0bc7f64618 <QStackedLayout::staticMetaObject>, local_signal_index=0, argv=0x7ffecd750b70)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4432
    LibreOffice#52 0x00007f0bc73a69fb in QMetaObject::activate<void, int> (sender=0x55f6d1d94df0, mo=0x7f0bc7f64618 <QStackedLayout::staticMetaObject>, local_signal_index=0, ret=0x0, args=@0x7ffecd750bb4: 0)
        at qtbase/src/corelib/kernel/qobjectdefs.h:320
    LibreOffice#53 0x00007f0bc7445098 in QStackedLayout::widgetRemoved (this=0x55f6d1d94df0, _t1=0) at qtbase/src/widgets/Widgets_autogen/include/moc_qstackedlayout.cpp:185
    LibreOffice#54 0x00007f0bc7444faf in QStackedLayout::takeAt (this=0x55f6d1d94df0, index=0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qstackedlayout.cpp:261
    LibreOffice#55 0x00007f0bc743414c in QLayout::removeWidget (this=0x55f6d1d94df0, widget=0x55f6cfb71cb0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qlayout.cpp:1479
    LibreOffice#56 0x00007f0bc77b6e8d in QStackedWidget::removeWidget (this=0x55f6d1e56310, widget=0x55f6cfb71cb0) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qstackedwidget.cpp:177
    LibreOffice#57 0x00007f0bc77fda72 in QTabWidget::removeTab (this=0x55f6d1e562e0, index=0) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qtabwidget.cpp:632
    LibreOffice#58 0x00007f0bca4f4a63 in QtInstanceNotebook::remove_page(rtl::OUString const&)::$_0::operator()() const (this=0x7ffecd750e60) at vcl/qt6/../qt5/QtInstanceNotebook.cxx:104
    LibreOffice#59 0x00007f0bca4f4a25 in std::__invoke_impl<void, QtInstanceNotebook::remove_page(rtl::OUString const&)::$_0&>(std::__invoke_other, QtInstanceNotebook::remove_page(rtl::OUString const&)::$_0&) (__f=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:63
    LibreOffice#60 0x00007f0bca4f49d5 in std::__invoke_r<void, QtInstanceNotebook::remove_page(rtl::OUString const&)::$_0&>(QtInstanceNotebook::remove_page(rtl::OUString const&)::$_0&) (__fn=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:113
    LibreOffice#61 0x00007f0bca4f48ed in std::_Function_handler<void(), QtInstanceNotebook::remove_page(rtl::OUString const&)::$_0>::_M_invoke (__functor=...) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:292
    LibreOffice#62 0x00007f0bca44a4de in std::function<void()>::operator() (this=0x7ffecd750e60) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:593
    LibreOffice#63 0x00007f0bca44102f in QtInstance::RunInMainThread (this=0x55f6ce948eb0, func=...) at vcl/qt6/../qt5/QtInstance.cxx:209
    LibreOffice#64 0x00007f0bca4f24fa in QtInstanceNotebook::remove_page (this=0x55f6d18ae9e0, rIdent="generated") at vcl/qt6/../qt5/QtInstanceNotebook.cxx:104
    LibreOffice#65 0x00007f0bd8bc99ad in SfxTabDialogController::RemoveTabPage (this=0x55f6d18af070, rId="generated") at /home/michi/development/git/libreoffice/sfx2/source/dialog/tabdlg.cxx:827
    LibreOffice#66 0x00007f0b8f42863d in dbaui::AdvancedSettingsDialog::AdvancedSettingsDialog
        (this=0x55f6d18af070, pParent=0x55f6d158ae20, _pItems=0x55f6d15af940, _rxContext=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x55f6ce92c458, _aDataSourceName=uno::Any("string": "file:///home/michi/Documents/New%20Database90.odb")) at /home/michi/development/git/libreoffice/dbaccess/source/ui/dlg/advancedsettings.cxx:381
    LibreOffice#67 0x00007f0b8f6da456 in std::make_unique<dbaui::AdvancedSettingsDialog, weld::Window*, SfxItemSet*, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>&, com::sun::star::uno::Any&>
        (__args=@0x7ffecd751248: 0x55f6d158ae20, __args=@0x7ffecd751240: 0x55f6d15af940, __args=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x55f6ce92c458, __args=uno::Any("string": "file:///home/michi/Documents/New%20Database90.odb")) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/unique_ptr.h:1084
    LibreOffice#68 0x00007f0b8f6d9e1f in dbaui::(anonymous namespace)::OAdvancedSettingsDialog::createDialog (this=0x55f6d15971d0, rParent=uno::Reference to (VCLXTopWindow *) 0x55f6d01bc780)
        at /home/michi/development/git/libreoffice/dbaccess/source/ui/uno/AdvancedSettingsDlg.cxx:103
    #69 0x00007f0bd586da5e in svt::OGenericUnoDialog::impl_ensureDialog_lck (this=0x55f6d15971d0) at /home/michi/development/git/libreoffice/svtools/source/uno/genericunodialog.cxx:169
    #70 0x00007f0bd586dcec in svt::OGenericUnoDialog::execute (this=0x55f6d15971d0) at /home/michi/development/git/libreoffice/svtools/source/uno/genericunodialog.cxx:200
    #71 0x00007f0b8f23e1a9 in dbaui::OApplicationController::openDialog (this=0x55f6d01db510, _sServiceName="com.sun.star.sdb.AdvancedDatabaseSettingsDialog")
        at /home/michi/development/git/libreoffice/dbaccess/source/ui/app/AppControllerGen.cxx:205
    #72 0x00007f0b8f1ea90a in dbaui::OApplicationController::Execute (this=0x55f6d01db510, _nId=12256, aArgs=empty uno::Sequence) at /home/michi/development/git/libreoffice/dbaccess/source/ui/app/AppController.cxx:1294
    #73 0x00007f0b8f3363a3 in dbaui::OGenericUnoController::executeChecked (this=0x55f6d01db510, _rCommand=..., aArgs=empty uno::Sequence) at /home/michi/development/git/libreoffice/dbaccess/source/ui/browser/genericcontroller.cxx:974
    #74 0x00007f0b8f3331da in dbaui::OGenericUnoController::dispatch (this=0x55f6d01db510, _aURL=..., aArgs=empty uno::Sequence) at /home/michi/development/git/libreoffice/dbaccess/source/ui/browser/genericcontroller.cxx:586
    #75 0x00007f0bd9d06c74 in framework::(anonymous namespace)::AsyncMenuExecute (data=0x55f6d1e5cae0) at /home/michi/development/git/libreoffice/framework/source/uielement/menubarmanager.cxx:793
    #76 0x00007f0bd2d7b301 in Link<void*, void>::Call (this=0x55f6d1e5bba8, data=0x55f6d1e5cae0) at include/tools/link.hxx:105
    #77 0x00007f0bd2d76c21 in ImplHandleUserEvent (pSVEvent=0x55f6d1e5bba0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2314
    #78 0x00007f0bd2d73b4f in ImplWindowFrameProc (_pWindow=0x55f6cfb62b50, nEvent=SalEvent::UserEvent, pEvent=0x55f6d1e5bba0) at /home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2871
    #79 0x00007f0bca42228c in SalFrame::CallCallback (this=0x55f6cfc41890, nEvent=SalEvent::UserEvent, pEvent=0x55f6d1e5bba0) at vcl/inc/salframe.hxx:310
    #80 0x00007f0bca4441cf in QtInstance::ProcessEvent (this=0x55f6ce948eb0, aEvent=...) at vcl/qt6/../qt5/QtInstance.cxx:614
    #81 0x00007f0bd3350b9d in SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const (this=0x7ffecd752cd0) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
    #82 0x00007f0bd3350a6b in SalUserEventList::DispatchUserEvents (this=0x55f6ce948f18, bHandleAllCurrentEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
    #83 0x00007f0bca4407d1 in QtInstance::ImplYield (this=0x55f6ce948eb0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:510
    #84 0x00007f0bca443d91 in QtInstance::DoYield (this=0x55f6ce948eb0, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:532
    #85 0x00007f0bd3419006 in InnerYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:390
    #86 0x00007f0bd341888f in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:503
    #87 0x00007f0bd3418670 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:365
    #88 0x00007f0bdcb22c05 in desktop::Desktop::Main (this=0x7ffecd754880) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1680
    #89 0x00007f0bd3441d56 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:231
    #90 0x00007f0bd3443889 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:249
    #91 0x00007f0bdcb9cc6a in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
    #92 0x000055f6b5a4b9fd in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
    #93 0x000055f6b5a4b9d7 in main (argc=2, argv=0x7ffecd754a88) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49

Change-Id: I3dc605a965589abf4dbcdf289460aa31507df30a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201362
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
bise86 pushed a commit to bise86/LibreOffice that referenced this pull request Sep 29, 2026
Don't first create a Bitmap, write that to a stream
and then load the QPixmap from that stream, but
directly get the stream and load the QPixmap from it.

This should not only be more efficient, but not
trying to create the intermediate Bitmap object also avoids
triggering an infinite recursion when done (too)
early on startup, which was seen when using
loadQPixmapIcon in QtFrame::SetIcon.

(getPixbuf in the gtk vcl plugin implementation
in vcl/unx/gtk3/gtkinst.cxx also does similarly.)

Sample local change to trigger the infinite recursion
previously:

    diff --git a/vcl/qt5/QtFrame.cxx b/vcl/qt5/QtFrame.cxx
    index 6d0c0ac..b646fd7694dd 100644
    --- a/vcl/qt5/QtFrame.cxx
    +++ b/vcl/qt5/QtFrame.cxx
    @@ -344,6 +344,8 @@ void QtFrame::SetIcon(sal_uInt16 nIcon)
             || !isWindow())
             return;

    +    loadQPixmapIcon(u"res/writer128.png"_ustr);
    +
         const QString sAppIcon = toQString(IconHelper::GetAppIconName(nIcon));
         QIcon aIcon = QIcon::fromTheme(sAppIcon);
         m_pQWidget->window()->setWindowIcon(aIcon);

Then, starting e.g. Writer would previosuly trigger an
infinite recursion. Partial backtrace:

    Thread 1 received signal SIGSEGV, Segmentation fault.
    0x00007f1c8790834f in QObject::event (this=0x5593589a5a80, e=0x7ffe98d56258) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:1452
    1452        switch (e->type()) {
    (rr) bt 100
    #0  0x00007f1c8790834f in QObject::event (this=0x5593589a5a80, e=0x7ffe98d56258) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:1452
    LibreOffice#1  0x00007f1c85872cbd in QWidget::event (this=0x5593589a5a80, event=0x7ffe98d56258) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:9467
    LibreOffice#2  0x00007f1c85af8b85 in QMainWindow::event (this=0x5593589a5a80, event=0x7ffe98d56258) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qmainwindow.cpp:1272
    LibreOffice#3  0x00007f1c857b1a20 in QApplicationPrivate::notify_helper (this=0x559356428970, receiver=0x5593589a5a80, e=0x7ffe98d56258) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3276
    LibreOffice#4  0x00007f1c857b58fb in QApplication::notify (this=0x5593563ce910, receiver=0x5593589a5a80, e=0x7ffe98d56258) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3222
    LibreOffice#5  0x00007f1c87838739 in QCoreApplication::notifyInternal2 (receiver=0x5593589a5a80, event=0x7ffe98d56258) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1113
    LibreOffice#6  0x00007f1c878393a9 in QCoreApplication::sendEvent (receiver=0x5593589a5a80, event=0x7ffe98d56258) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1553
    LibreOffice#7  0x00007f1c85854857 in QWidget::setParent (this=0x5593589a5cb0, parent=0x5593589a5a80, f=...) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:10901
    LibreOffice#8  0x00007f1c858746e9 in QWidget::setParent (this=0x5593589a5cb0, parent=0x5593589a5a80) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:10742
    LibreOffice#9  0x00007f1c8583080f in QLayout::addChildWidget (this=0x5593589a75a0, w=0x5593589a5cb0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qlayout.cpp:856
    LibreOffice#10 0x00007f1c85b0a1b0 in QMainWindowLayout::setCentralWidget (this=0x5593589a75a0, widget=0x5593589a5cb0) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qmainwindowlayout.cpp:2860
    LibreOffice#11 0x00007f1c85af7299 in QMainWindow::setCentralWidget (this=0x5593589a5a80, widget=0x5593589a5cb0) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qmainwindow.cpp:555
    LibreOffice#12 0x00007f1c8880d74b in QtFrame::QtFrame (this=0x5593589a6e80, pParent=0x0, nStyle=SalFrameStyleFlags::NOICON, bUseCairo=true) at vcl/qt6/../qt5/QtFrame.cxx:143
    LibreOffice#13 0x00007f1c8884480d in QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0::operator()() const (this=0x5593589a6e60) at vcl/qt6/../qt5/QtInstance.cxx:396
    LibreOffice#14 0x00007f1c88844785 in std::__invoke_impl<void, QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&>(std::__invoke_other, QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&) (__f=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:63
    LibreOffice#15 0x00007f1c88844745 in std::__invoke_r<void, QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&>(QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&) (__fn=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:113
    LibreOffice#16 0x00007f1c8884462d in std::_Function_handler<void(), QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0>::_M_invoke (__functor=...) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:292
    LibreOffice#17 0x00007f1c8884674e in std::function<void()>::operator() (this=0x7ffe98d567e8) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:593
    LibreOffice#18 0x00007f1c8883d46f in QtInstance::RunInMainThread (this=0x559356428580, func=...) at vcl/qt6/../qt5/QtInstance.cxx:210
    LibreOffice#19 0x00007f1c8883f91b in QtInstance::CreateFrame (this=0x559356428580, pParent=0x0, nStyle=SalFrameStyleFlags::NOICON) at vcl/qt6/../qt5/QtInstance.cxx:395
    LibreOffice#20 0x00007f1c911468d6 in vcl::Window::ImplInit (this=0x5593589a6620, pParent=0x0, nStyle=274877906944, pSystemParentData=0x0) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:1059
    LibreOffice#21 0x00007f1c90ee2de7 in ImplBorderWindow::ImplInit (this=0x5593589a6620, pParent=0x0, nStyle=274877906944, nTypeStyle=BorderWindowStyle::Frame, pSystemParentData=0x0)
        at /home/michi/development/git/libreoffice/vcl/source/window/brdwin.cxx:1568
    LibreOffice#22 0x00007f1c90ee3368 in ImplBorderWindow::ImplBorderWindow (this=0x5593589a6620, pParent=0x0, pSystemParentData=0x0, nStyle=274877906944, nTypeStyle=BorderWindowStyle::Frame)
        at /home/michi/development/git/libreoffice/vcl/source/window/brdwin.cxx:1597
    LibreOffice#23 0x00007f1c9117cb19 in VclPtrInstance<ImplBorderWindow>::VclPtrInstance<vcl::Window*&, SystemParentData*&, long&, BorderWindowStyle&>
        (this=0x7ffe98d56da0, arg=@0x7ffe98d56dc0: 0x0, arg=@0x7ffe98d56db0: 0x0, arg=@0x7ffe98d56db8: 274877906944, arg=@0x7ffe98d56dac: BorderWindowStyle::Frame) at include/vcl/vclptr.hxx:274
    LibreOffice#24 0x00007f1c9117b405 in WorkWindow::ImplInit (this=0x5593589a5d30, pParent=0x0, nStyle=274877906944, pSystemParentData=0x0) at /home/michi/development/git/libreoffice/vcl/source/window/wrkwin.cxx:51
    LibreOffice#25 0x00007f1c9117bc67 in WorkWindow::WorkWindow (this=0x5593589a5d30, pParent=0x0, nStyle=274877906944) at /home/michi/development/git/libreoffice/vcl/source/window/wrkwin.cxx:95
    LibreOffice#26 0x00007f1c9182e653 in VclPtr<WorkWindow>::Create<decltype(nullptr), long const&>(decltype(nullptr)&&, long const&) (arg=<error reading variable: Attempt to dereference a generic pointer.>, arg=@0x7f1c90505ea8: 274877906944)
        at include/vcl/vclptr.hxx:153
    LibreOffice#27 0x00007f1c9182b1bd in ImplGetDefaultContextWindow () at /home/michi/development/git/libreoffice/vcl/source/app/svdata.cxx:283
    LibreOffice#28 0x00007f1c9182af8a in ImplGetDefaultWindow () at /home/michi/development/git/libreoffice/vcl/source/app/svdata.cxx:264
    LibreOffice#29 0x00007f1c9181c62d in Application::GetDefaultDevice () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:1111
    LibreOffice#30 0x00007f1c916fc79d in ImageRequestParameters::scalePercentage (this=0x7ffe98d57970) at /home/michi/development/git/libreoffice/vcl/source/image/ImplImageTree.cxx:79
    LibreOffice#31 0x00007f1c916ffc08 in (anonymous namespace)::createVariant (rParameters=...) at /home/michi/development/git/libreoffice/vcl/source/image/ImplImageTree.cxx:382
    LibreOffice#32 0x00007f1c916ff343 in ImplImageTree::doLoadImage (this=0x559357ba6d30, rParameters=...) at /home/michi/development/git/libreoffice/vcl/source/image/ImplImageTree.cxx:428
    LibreOffice#33 0x00007f1c916ff0d4 in ImplImageTree::loadImage (this=0x559357ba6d30, rName="res/writer128.png", rStyle="breeze", rBitmap=..., localized=true, eFlags=ImageLoadFlags::NONE, nScalePercentage=-1)
        at /home/michi/development/git/libreoffice/vcl/source/image/ImplImageTree.cxx:365
    LibreOffice#34 0x00007f1c916faa21 in ImageTree::loadImage (this=0x7f1c929bc3f0 <ImageTree::get()::s_ImageTree>, rName="res/writer128.png", rStyle="breeze", rBitmap=..., bLocalized=true, nScalePercentage=-1, eFlags=ImageLoadFlags::NONE)
        at /home/michi/development/git/libreoffice/vcl/source/image/ImageTree.cxx:47
    LibreOffice#35 0x00007f1c916faaac in ImageTree::loadImage (this=0x7f1c929bc3f0 <ImageTree::get()::s_ImageTree>, rName="res/writer128.png", rStyle="breeze", rBitmap=..., bLocalized=true, eFlags=ImageLoadFlags::NONE)
        at /home/michi/development/git/libreoffice/vcl/source/image/ImageTree.cxx:54
    LibreOffice#36 0x00007f1c91671656 in Bitmap::loadFromIconTheme (this=0x7ffe98d57ed0, rIconName="res/writer128.png") at /home/michi/development/git/libreoffice/vcl/source/bitmap/bitmap.cxx:228
    LibreOffice#37 0x00007f1c91671543 in Bitmap::Bitmap (this=0x7ffe98d57ed0, rIconName="res/writer128.png") at /home/michi/development/git/libreoffice/vcl/source/bitmap/bitmap.cxx:217
    LibreOffice#38 0x00007f1c887bf2a2 in loadQPixmapIcon (rIconName="res/writer128.png") at include/vcl/qt/QtUtils.hxx:80
    LibreOffice#39 0x00007f1c8880e04d in QtFrame::SetIcon (this=0x5593589a4420, nIcon=1) at vcl/qt6/../qt5/QtFrame.cxx:347
    LibreOffice#40 0x00007f1c8880d88c in QtFrame::QtFrame (this=0x5593589a4420, pParent=0x0, nStyle=SalFrameStyleFlags::NOICON, bUseCairo=true) at vcl/qt6/../qt5/QtFrame.cxx:156
    LibreOffice#41 0x00007f1c8884480d in QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0::operator()() const (this=0x5593589a4400) at vcl/qt6/../qt5/QtInstance.cxx:396
    LibreOffice#42 0x00007f1c88844785 in std::__invoke_impl<void, QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&>(std::__invoke_other, QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&) (__f=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:63
    LibreOffice#43 0x00007f1c88844745 in std::__invoke_r<void, QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&>(QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&) (__fn=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:113
    LibreOffice#44 0x00007f1c8884462d in std::_Function_handler<void(), QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0>::_M_invoke (__functor=...) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:292
    LibreOffice#45 0x00007f1c8884674e in std::function<void()>::operator() (this=0x7ffe98d583a8) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:593
    LibreOffice#46 0x00007f1c8883d46f in QtInstance::RunInMainThread (this=0x559356428580, func=...) at vcl/qt6/../qt5/QtInstance.cxx:210
    LibreOffice#47 0x00007f1c8883f91b in QtInstance::CreateFrame (this=0x559356428580, pParent=0x0, nStyle=SalFrameStyleFlags::NOICON) at vcl/qt6/../qt5/QtInstance.cxx:395
    LibreOffice#48 0x00007f1c911468d6 in vcl::Window::ImplInit (this=0x5593589a3bc0, pParent=0x0, nStyle=274877906944, pSystemParentData=0x0) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:1059
    LibreOffice#49 0x00007f1c90ee2de7 in ImplBorderWindow::ImplInit (this=0x5593589a3bc0, pParent=0x0, nStyle=274877906944, nTypeStyle=BorderWindowStyle::Frame, pSystemParentData=0x0)
        at /home/michi/development/git/libreoffice/vcl/source/window/brdwin.cxx:1568
    LibreOffice#50 0x00007f1c90ee3368 in ImplBorderWindow::ImplBorderWindow (this=0x5593589a3bc0, pParent=0x0, pSystemParentData=0x0, nStyle=274877906944, nTypeStyle=BorderWindowStyle::Frame)
        at /home/michi/development/git/libreoffice/vcl/source/window/brdwin.cxx:1597
    LibreOffice#51 0x00007f1c9117cb19 in VclPtrInstance<ImplBorderWindow>::VclPtrInstance<vcl::Window*&, SystemParentData*&, long&, BorderWindowStyle&>
        (this=0x7ffe98d58960, arg=@0x7ffe98d58980: 0x0, arg=@0x7ffe98d58970: 0x0, arg=@0x7ffe98d58978: 274877906944, arg=@0x7ffe98d5896c: BorderWindowStyle::Frame) at include/vcl/vclptr.hxx:274
    LibreOffice#52 0x00007f1c9117b405 in WorkWindow::ImplInit (this=0x5593589a32d0, pParent=0x0, nStyle=274877906944, pSystemParentData=0x0) at /home/michi/development/git/libreoffice/vcl/source/window/wrkwin.cxx:51
    LibreOffice#53 0x00007f1c9117bc67 in WorkWindow::WorkWindow (this=0x5593589a32d0, pParent=0x0, nStyle=274877906944) at /home/michi/development/git/libreoffice/vcl/source/window/wrkwin.cxx:95
    LibreOffice#54 0x00007f1c9182e653 in VclPtr<WorkWindow>::Create<decltype(nullptr), long const&>(decltype(nullptr)&&, long const&) (arg=<error reading variable: Attempt to dereference a generic pointer.>, arg=@0x7f1c90505ea8: 274877906944)
        at include/vcl/vclptr.hxx:153
    LibreOffice#55 0x00007f1c9182b1bd in ImplGetDefaultContextWindow () at /home/michi/development/git/libreoffice/vcl/source/app/svdata.cxx:283
    LibreOffice#56 0x00007f1c9182af8a in ImplGetDefaultWindow () at /home/michi/development/git/libreoffice/vcl/source/app/svdata.cxx:264
    LibreOffice#57 0x00007f1c9181c62d in Application::GetDefaultDevice () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:1111
    LibreOffice#58 0x00007f1c916fc79d in ImageRequestParameters::scalePercentage (this=0x7ffe98d59530) at /home/michi/development/git/libreoffice/vcl/source/image/ImplImageTree.cxx:79
    LibreOffice#59 0x00007f1c916ffc08 in (anonymous namespace)::createVariant (rParameters=...) at /home/michi/development/git/libreoffice/vcl/source/image/ImplImageTree.cxx:382
    LibreOffice#60 0x00007f1c916ff343 in ImplImageTree::doLoadImage (this=0x559357ba6d30, rParameters=...) at /home/michi/development/git/libreoffice/vcl/source/image/ImplImageTree.cxx:428
    LibreOffice#61 0x00007f1c916ff0d4 in ImplImageTree::loadImage (this=0x559357ba6d30, rName="res/writer128.png", rStyle="breeze", rBitmap=..., localized=true, eFlags=ImageLoadFlags::NONE, nScalePercentage=-1)
        at /home/michi/development/git/libreoffice/vcl/source/image/ImplImageTree.cxx:365
    LibreOffice#62 0x00007f1c916faa21 in ImageTree::loadImage (this=0x7f1c929bc3f0 <ImageTree::get()::s_ImageTree>, rName="res/writer128.png", rStyle="breeze", rBitmap=..., bLocalized=true, nScalePercentage=-1, eFlags=ImageLoadFlags::NONE)
        at /home/michi/development/git/libreoffice/vcl/source/image/ImageTree.cxx:47
    LibreOffice#63 0x00007f1c916faaac in ImageTree::loadImage (this=0x7f1c929bc3f0 <ImageTree::get()::s_ImageTree>, rName="res/writer128.png", rStyle="breeze", rBitmap=..., bLocalized=true, eFlags=ImageLoadFlags::NONE)
        at /home/michi/development/git/libreoffice/vcl/source/image/ImageTree.cxx:54
    LibreOffice#64 0x00007f1c91671656 in Bitmap::loadFromIconTheme (this=0x7ffe98d59a90, rIconName="res/writer128.png") at /home/michi/development/git/libreoffice/vcl/source/bitmap/bitmap.cxx:228
    LibreOffice#65 0x00007f1c91671543 in Bitmap::Bitmap (this=0x7ffe98d59a90, rIconName="res/writer128.png") at /home/michi/development/git/libreoffice/vcl/source/bitmap/bitmap.cxx:217
    LibreOffice#66 0x00007f1c887bf2a2 in loadQPixmapIcon (rIconName="res/writer128.png") at include/vcl/qt/QtUtils.hxx:80
    LibreOffice#67 0x00007f1c8880e04d in QtFrame::SetIcon (this=0x5593589a19c0, nIcon=1) at vcl/qt6/../qt5/QtFrame.cxx:347
    LibreOffice#68 0x00007f1c8880d88c in QtFrame::QtFrame (this=0x5593589a19c0, pParent=0x0, nStyle=SalFrameStyleFlags::NOICON, bUseCairo=true) at vcl/qt6/../qt5/QtFrame.cxx:156
    #69 0x00007f1c8884480d in QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0::operator()() const (this=0x5593589a19a0) at vcl/qt6/../qt5/QtInstance.cxx:396
    #70 0x00007f1c88844785 in std::__invoke_impl<void, QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&>(std::__invoke_other, QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&) (__f=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:63
    #71 0x00007f1c88844745 in std::__invoke_r<void, QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&>(QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&) (__fn=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:113
    #72 0x00007f1c8884462d in std::_Function_handler<void(), QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0>::_M_invoke (__functor=...) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:292
    #73 0x00007f1c8884674e in std::function<void()>::operator() (this=0x7ffe98d59f68) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:593
    #74 0x00007f1c8883d46f in QtInstance::RunInMainThread (this=0x559356428580, func=...) at vcl/qt6/../qt5/QtInstance.cxx:210
    #75 0x00007f1c8883f91b in QtInstance::CreateFrame (this=0x559356428580, pParent=0x0, nStyle=SalFrameStyleFlags::NOICON) at vcl/qt6/../qt5/QtInstance.cxx:395
    #76 0x00007f1c911468d6 in vcl::Window::ImplInit (this=0x5593589a1160, pParent=0x0, nStyle=274877906944, pSystemParentData=0x0) at /home/michi/development/git/libreoffice/vcl/source/window/window.cxx:1059
    #77 0x00007f1c90ee2de7 in ImplBorderWindow::ImplInit (this=0x5593589a1160, pParent=0x0, nStyle=274877906944, nTypeStyle=BorderWindowStyle::Frame, pSystemParentData=0x0)
        at /home/michi/development/git/libreoffice/vcl/source/window/brdwin.cxx:1568
    #78 0x00007f1c90ee3368 in ImplBorderWindow::ImplBorderWindow (this=0x5593589a1160, pParent=0x0, pSystemParentData=0x0, nStyle=274877906944, nTypeStyle=BorderWindowStyle::Frame)
        at /home/michi/development/git/libreoffice/vcl/source/window/brdwin.cxx:1597
    #79 0x00007f1c9117cb19 in VclPtrInstance<ImplBorderWindow>::VclPtrInstance<vcl::Window*&, SystemParentData*&, long&, BorderWindowStyle&>
        (this=0x7ffe98d5a520, arg=@0x7ffe98d5a540: 0x0, arg=@0x7ffe98d5a530: 0x0, arg=@0x7ffe98d5a538: 274877906944, arg=@0x7ffe98d5a52c: BorderWindowStyle::Frame) at include/vcl/vclptr.hxx:274
    #80 0x00007f1c9117b405 in WorkWindow::ImplInit (this=0x5593589a0870, pParent=0x0, nStyle=274877906944, pSystemParentData=0x0) at /home/michi/development/git/libreoffice/vcl/source/window/wrkwin.cxx:51
    #81 0x00007f1c9117bc67 in WorkWindow::WorkWindow (this=0x5593589a0870, pParent=0x0, nStyle=274877906944) at /home/michi/development/git/libreoffice/vcl/source/window/wrkwin.cxx:95
    #82 0x00007f1c9182e653 in VclPtr<WorkWindow>::Create<decltype(nullptr), long const&>(decltype(nullptr)&&, long const&) (arg=<error reading variable: Attempt to dereference a generic pointer.>, arg=@0x7f1c90505ea8: 274877906944)
        at include/vcl/vclptr.hxx:153
    #83 0x00007f1c9182b1bd in ImplGetDefaultContextWindow () at /home/michi/development/git/libreoffice/vcl/source/app/svdata.cxx:283
    #84 0x00007f1c9182af8a in ImplGetDefaultWindow () at /home/michi/development/git/libreoffice/vcl/source/app/svdata.cxx:264
    #85 0x00007f1c9181c62d in Application::GetDefaultDevice () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:1111
    #86 0x00007f1c916fc79d in ImageRequestParameters::scalePercentage (this=0x7ffe98d5b0f0) at /home/michi/development/git/libreoffice/vcl/source/image/ImplImageTree.cxx:79
    #87 0x00007f1c916ffc08 in (anonymous namespace)::createVariant (rParameters=...) at /home/michi/development/git/libreoffice/vcl/source/image/ImplImageTree.cxx:382
    #88 0x00007f1c916ff343 in ImplImageTree::doLoadImage (this=0x559357ba6d30, rParameters=...) at /home/michi/development/git/libreoffice/vcl/source/image/ImplImageTree.cxx:428
    #89 0x00007f1c916ff0d4 in ImplImageTree::loadImage (this=0x559357ba6d30, rName="res/writer128.png", rStyle="breeze", rBitmap=..., localized=true, eFlags=ImageLoadFlags::NONE, nScalePercentage=-1)
        at /home/michi/development/git/libreoffice/vcl/source/image/ImplImageTree.cxx:365
    #90 0x00007f1c916faa21 in ImageTree::loadImage (this=0x7f1c929bc3f0 <ImageTree::get()::s_ImageTree>, rName="res/writer128.png", rStyle="breeze", rBitmap=..., bLocalized=true, nScalePercentage=-1, eFlags=ImageLoadFlags::NONE)
        at /home/michi/development/git/libreoffice/vcl/source/image/ImageTree.cxx:47
    #91 0x00007f1c916faaac in ImageTree::loadImage (this=0x7f1c929bc3f0 <ImageTree::get()::s_ImageTree>, rName="res/writer128.png", rStyle="breeze", rBitmap=..., bLocalized=true, eFlags=ImageLoadFlags::NONE)
        at /home/michi/development/git/libreoffice/vcl/source/image/ImageTree.cxx:54
    #92 0x00007f1c91671656 in Bitmap::loadFromIconTheme (this=0x7ffe98d5b650, rIconName="res/writer128.png") at /home/michi/development/git/libreoffice/vcl/source/bitmap/bitmap.cxx:228
    #93 0x00007f1c91671543 in Bitmap::Bitmap (this=0x7ffe98d5b650, rIconName="res/writer128.png") at /home/michi/development/git/libreoffice/vcl/source/bitmap/bitmap.cxx:217
    #94 0x00007f1c887bf2a2 in loadQPixmapIcon (rIconName="res/writer128.png") at include/vcl/qt/QtUtils.hxx:80
    #95 0x00007f1c8880e04d in QtFrame::SetIcon (this=0x55935899ef60, nIcon=1) at vcl/qt6/../qt5/QtFrame.cxx:347
    #96 0x00007f1c8880d88c in QtFrame::QtFrame (this=0x55935899ef60, pParent=0x0, nStyle=SalFrameStyleFlags::NOICON, bUseCairo=true) at vcl/qt6/../qt5/QtFrame.cxx:156
    #97 0x00007f1c8884480d in QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0::operator()() const (this=0x55935899ef40) at vcl/qt6/../qt5/QtInstance.cxx:396
    #98 0x00007f1c88844785 in std::__invoke_impl<void, QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&>(std::__invoke_other, QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&) (__f=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:63
    #99 0x00007f1c88844745 in std::__invoke_r<void, QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&>(QtInstance::CreateFrame(SalFrame*, SalFrameStyleFlags)::$_0&) (__fn=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:113
    (More stack frames follow...)

Change-Id: I86af1c1d55aa3cbbcc708ccbefbff3556030819d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201486
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
bise86 pushed a commit to bise86/LibreOffice that referenced this pull request Sep 29, 2026
As is the case in other weld methods, signals about
the change of the toggle status for entries in weld::TreeView
are not supposed to be emitted when the change happens
programatically and not by manual user interaction.

Therefore, disable notify events in weld::TreeView::set_toggle
by renaming the actual toolkit-specific implementations to
do_set_toggle and making the weld::TreeView::set_toggle
base class method block signals while calling
the virtual methods.

See also e.g. weld::TreeView::insert which
uses the same approach.

This aligns the behavior of the Qt implementation
with the other ones. For example, the vcl/SalInstanceTreeView
implementation only calls weld::TreeView::signal_toggled
from SalInstanceTreeView::ToggleHdl. That one is set
via SvLBoxButtonData::SetLink in the SalInstanceTreeView ctor.
The link is called in SvLBoxButtonData::CallLink, called from
SvLBoxButton::ClickHdl, which only gets called in response
to either mouse or keyboard events.

This fixes a nullptr deref seen with the qt6 VCL
plugin and env var SAL_VCL_QT_USE_WELDED_WIDGETS=1
for the following scenario:

* start Writer
* insert an Image via "Insert" -> "Image"
* with image selected, open context menu
* activate the "Insert Caption" context menu
  entry
* in the "Insert Caption" dialog, press the
  "Auto..." button

Crash/Backtrace without this commit in place:

    Thread 1 received signal SIGSEGV, Segmentation fault.
    rtl::OUString::isEmpty (this=0x18) at include/rtl/ustring.hxx:831
    831             return pData->length == 0;
    (rr) bt
    #0  rtl::OUString::isEmpty (this=0x18) at include/rtl/ustring.hxx:831
    LibreOffice#1  0x00007fd2dba98d4b in SwCaptionOptPage::UpdateEntry (this=0x55e123635a80, nSelEntry=0) at /home/michi/development/git/libreoffice/sw/source/ui/config/optload.cxx:1238
    LibreOffice#2  0x00007fd2dba9e0aa in SwCaptionOptPage::ToggleEntryHdl (this=0x55e123635a80, rRowCol={...}) at /home/michi/development/git/libreoffice/sw/source/ui/config/optload.cxx:1347
    LibreOffice#3  0x00007fd2dba9601d in SwCaptionOptPage::LinkStubToggleEntryHdl (instance=0x55e123635a80, data={...}) at /home/michi/development/git/libreoffice/sw/source/ui/config/optload.cxx:1345
    LibreOffice#4  0x00007fd37d724a91 in Link<std::pair<weld::TreeIter const&, int> const&, void>::Call (this=0x55e11e257910, data={...}) at include/tools/link.hxx:105
    LibreOffice#5  0x00007fd37d71d2f1 in weld::TreeView::signal_toggled (this=0x55e11e2578e8, rIterCol={...}) at include/vcl/weld/TreeView.hxx:109
    LibreOffice#6  0x00007fd37d7052dd in QtInstanceTreeView::handleDataChanged (this=0x55e11e2576c0, rTopLeft=..., rBottomRight=..., rRoles=...) at vcl/qt6/../qt5/QtInstanceTreeView.cxx:981
    LibreOffice#7  0x00007fd37d72529a in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call(void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QtInstanceTreeView*, void**)::{lambda()LibreOffice#1}::operator()() const (this=0x7ffdc7bcb6b0)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:128
    LibreOffice#8  0x00007fd37d7251a9 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call(void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QtInstanceTreeView*, void**)::{lambda()LibreOffice#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call(void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QtInstanceTreeView*, void**)::{lambda()LibreOffice#1}&&) (args=0x7ffdc7bcbaa0, fn=...)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:66
    LibreOffice#9  0x00007fd37d7250e3 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call
        (f=(void (QtInstanceTreeView::*)(QtInstanceTreeView * const, const QModelIndex &, const QModelIndex &, const QList<int> &)) 0x7fd37d705170 <QtInstanceTreeView::handleDataChanged(QModelIndex const&, QModelIndex const&, QList<int> const&)>, o=0x55e11e2576c0, arg=0x7ffdc7bcbaa0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
    LibreOffice#10 0x00007fd37d72505d in QtPrivate::FunctionPointer<void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call<QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void>
        (f=(void (QtInstanceTreeView::*)(QtInstanceTreeView * const, const QModelIndex &, const QModelIndex &, const QList<int> &)) 0x7fd37d705170 <QtInstanceTreeView::handleDataChanged(QModelIndex const&, QModelIndex const&, QList<int> const&)>, o=0x55e11e2576c0, arg=0x7ffdc7bcbaa0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:175
    LibreOffice#11 0x00007fd37d724f86 in QtPrivate::QCallableObject<void (QtInstanceTreeView::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void>::impl
        (which=1, this_=0x55e1283a4630, r=0x55e11e2576c0, a=0x7ffdc7bcbaa0, ret=0x0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:546
    LibreOffice#12 0x00007fd37c4ee572 in QtPrivate::QSlotObjectBase::call (this=0x55e1283a4630, r=0x55e11e2576c0, a=0x7ffdc7bcbaa0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:462
    LibreOffice#13 0x00007fd37c724c6c in doActivate<false> (sender=0x55e127fd8030, signal_index=3, argv=0x7ffdc7bcbaa0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4386
    LibreOffice#14 0x00007fd37c71af23 in QMetaObject::activate (sender=0x55e127fd8030, m=0x7fd37d100d10 <QAbstractItemModel::staticMetaObject>, local_signal_index=0, argv=0x7ffdc7bcbaa0)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4447
    LibreOffice#15 0x00007fd37cbc76fe in QMetaObject::activate<void, QModelIndex, QModelIndex, QList<int> > (sender=0x55e127fd8030, mo=0x7fd37d100d10 <QAbstractItemModel::staticMetaObject>, local_signal_index=0, ret=0x0, args=..., args=..., args=...)
        at qtbase/src/corelib/kernel/qobjectdefs.h:320
    LibreOffice#16 0x00007fd37cbc27c0 in QAbstractItemModel::dataChanged (this=0x55e127fd8030, _t1=..., _t2=..., _t3=...) at qtbase/src/corelib/Core_autogen/include/moc_qabstractitemmodel.cpp:658
    LibreOffice#17 0x00007fd37cc6a184 in QSortFilterProxyModelPrivate::_q_sourceDataChanged (this=0x55e1285d77a0, source_top_left=..., source_bottom_right=..., roles=...)
        at /home/michi/development/git/qt5/qtbase/src/corelib/itemmodels/qsortfilterproxymodel.cpp:1627
    LibreOffice#18 0x00007fd37ccaf63e in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call(void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QSortFilterProxyModelPrivate*, void**)::{lambda()LibreOffice#1}::operator()() const
        (this=0x7ffdc7bcbff0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:128
    LibreOffice#19 0x00007fd37ccaf59d in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call(void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QSortFilterProxyModelPrivate*, void**)::{lambda()LibreOffice#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call(void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QSortFilterProxyModelPrivate*, void**)::{lambda()LibreOffice#1}&&)
        (args=0x7ffdc7bcc3f0, fn=...) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:66
    LibreOffice#20 0x00007fd37ccaf557 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul, 1ul, 2ul>, QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void, void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call
        (f=(void (QSortFilterProxyModelPrivate::*)(QSortFilterProxyModelPrivate * const, const QModelIndex &, const QModelIndex &, const QList<int> &)) 0x7fd37cc691f0 <QSortFilterProxyModelPrivate::_q_sourceDataChanged(QModelIndex const&, QModelIndex const&, QList<int> const&)>, o=0x55e1285d77a0, arg=0x7ffdc7bcc3f0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
    LibreOffice#21 0x00007fd37ccaf4c1 in QtPrivate::FunctionPointer<void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&)>::call<QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void>
        (f=(void (QSortFilterProxyModelPrivate::*)(QSortFilterProxyModelPrivate * const, const QModelIndex &, const QModelIndex &, const QList<int> &)) 0x7fd37cc691f0 <QSortFilterProxyModelPrivate::_q_sourceDataChanged(QModelIndex const&, QModelIndex const&, QList<int> const&)>, o=0x55e1285d77a0, arg=0x7ffdc7bcc3f0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:175
    LibreOffice#22 0x00007fd37ccaf3f0 in QtPrivate::QPrivateSlotObject<void (QSortFilterProxyModelPrivate::*)(QModelIndex const&, QModelIndex const&, QList<int> const&), QtPrivate::List<QModelIndex const&, QModelIndex const&, QList<int> const&>, void>::impl (which=1, this_=0x55e127fd8a30, r=0x55e127fd8030, a=0x7ffdc7bcc3f0, ret=0x0) at qtbase/src/corelib/kernel/qobject_p.h:273
    LibreOffice#23 0x00007fd37c4ee572 in QtPrivate::QSlotObjectBase::call (this=0x55e127fd8a30, r=0x55e127fd8030, a=0x7ffdc7bcc3f0) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:462
    LibreOffice#24 0x00007fd37c724c6c in doActivate<false> (sender=0x55e127fd75c0, signal_index=3, argv=0x7ffdc7bcc3f0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4386
    LibreOffice#25 0x00007fd37c71af23 in QMetaObject::activate (sender=0x55e127fd75c0, m=0x7fd37d100d10 <QAbstractItemModel::staticMetaObject>, local_signal_index=0, argv=0x7ffdc7bcc3f0)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4447
    LibreOffice#26 0x00007fd37cbc76fe in QMetaObject::activate<void, QModelIndex, QModelIndex, QList<int> > (sender=0x55e127fd75c0, mo=0x7fd37d100d10 <QAbstractItemModel::staticMetaObject>, local_signal_index=0, ret=0x0, args=..., args=..., args=...)
        at qtbase/src/corelib/kernel/qobjectdefs.h:320
    LibreOffice#27 0x00007fd37cbc27c0 in QAbstractItemModel::dataChanged (this=0x55e127fd75c0, _t1=..., _t2=..., _t3=...) at qtbase/src/corelib/Core_autogen/include/moc_qabstractitemmodel.cpp:658
    LibreOffice#28 0x00007fd37ba75cdd in QStandardItemModelPrivate::itemChanged (this=0x55e127fd8430, item=0x55e128008f00, roles=...) at /home/michi/development/git/qt5/qtbase/src/gui/itemmodels/qstandarditemmodel.cpp:568
    LibreOffice#29 0x00007fd37ba78c11 in QStandardItem::setData (this=0x55e128008f00, value=..., role=10) at /home/michi/development/git/qt5/qtbase/src/gui/itemmodels/qstandarditemmodel.cpp:909
    LibreOffice#30 0x00007fd37ba791dd in QStandardItem::setCheckable (this=0x55e128008f00, checkable=true) at /home/michi/development/git/qt5/qtbase/src/gui/itemmodels/qstandarditemmodel.cpp:1345
    LibreOffice#31 0x00007fd37d712230 in QtInstanceTreeView::set_toggle(weld::TreeIter const&, TriState, int)::$_0::operator()() const (this=0x55e128009370) at vcl/qt6/../qt5/QtInstanceTreeView.cxx:364
    LibreOffice#32 0x00007fd37d7121a5 in std::__invoke_impl<void, QtInstanceTreeView::set_toggle(weld::TreeIter const&, TriState, int)::$_0&>(std::__invoke_other, QtInstanceTreeView::set_toggle(weld::TreeIter const&, TriState, int)::$_0&) (__f=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:63
    LibreOffice#33 0x00007fd37d712165 in std::__invoke_r<void, QtInstanceTreeView::set_toggle(weld::TreeIter const&, TriState, int)::$_0&>(QtInstanceTreeView::set_toggle(weld::TreeIter const&, TriState, int)::$_0&) (__fn=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/invoke.h:113
    LibreOffice#34 0x00007fd37d71203d in std::_Function_handler<void(), QtInstanceTreeView::set_toggle(weld::TreeIter const&, TriState, int)::$_0>::_M_invoke (__functor=...)
        at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:292
    LibreOffice#35 0x00007fd37d62b07e in std::function<void()>::operator() (this=0x7ffdc7bcc838) at /usr/lib/gcc/x86_64-linux-gnu/15/../../../../include/c++/15/bits/std_function.h:593
    LibreOffice#36 0x00007fd37d62282f in QtInstance::RunInMainThread (this=0x55e11e0d3580, func=...) at vcl/qt6/../qt5/QtInstance.cxx:216
    LibreOffice#37 0x00007fd37d708783 in QtInstanceTreeView::set_toggle (this=0x55e11e2576c0, rIter=..., eState=TRISTATE_FALSE, nCol=-1) at vcl/qt6/../qt5/QtInstanceTreeView.cxx:362
    LibreOffice#38 0x00007fd386df11c3 in weld::TreeView::set_toggle (this=0x55e11e2578e8, row=0, eState=TRISTATE_FALSE, col=-1) at /home/michi/development/git/libreoffice/vcl/source/weld/TreeView.cxx:37
    LibreOffice#39 0x00007fd2dba97561 in SwCaptionOptPage::Reset (this=0x55e123635a80, rSet=0x7ffdc7bccec0) at /home/michi/development/git/libreoffice/sw/source/ui/config/optload.cxx:1100
    LibreOffice#40 0x00007fd38c0d8c50 in SfxSingleTabDialogController::SetTabPage (this=0x7ffdc7bcce68, xTabPage=std::unique_ptr<SfxTabPage> = {...}) at /home/michi/development/git/libreoffice/sfx2/source/dialog/basedlgs.cxx:269
    LibreOffice#41 0x00007fd2dba930fd in SwCaptionOptDlg::SwCaptionOptDlg (this=0x7ffdc7bcce68, pParent=0x55e1282eefa0, rSet=SfxItemSet of pool 0x55e11fee13b0 with parent 0x0 and Which ranges: [(1, 165), (1000, 1253), (4021, 4081)])
        at /home/michi/development/git/libreoffice/sw/source/ui/config/optload.cxx:857
    LibreOffice#42 0x00007fd2dbc1e524 in SwCaptionDialog::CaptionHdl (this=0x55e12817af00) at /home/michi/development/git/libreoffice/sw/source/ui/frmdlg/cption.cxx:376
    LibreOffice#43 0x00007fd2dbc1cc1d in SwCaptionDialog::LinkStubCaptionHdl (instance=0x55e12817af00, data=...) at /home/michi/development/git/libreoffice/sw/source/ui/frmdlg/cption.cxx:373
    LibreOffice#44 0x00007fd37d66c901 in Link<weld::Button&, void>::Call (this=0x55e128105858, data=...) at include/tools/link.hxx:105
    LibreOffice#45 0x00007fd37d66be5c in weld::Button::signal_clicked (this=0x55e128105850) at include/vcl/weld/Button.hxx:37
    LibreOffice#46 0x00007fd37d669b7d in QtInstanceButton::buttonClicked (this=0x55e1281056b0) at vcl/qt6/../qt5/QtInstanceButton.cxx:114
    LibreOffice#47 0x00007fd37d66cd21 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceButton::*)()>::call(void (QtInstanceButton::*)(), QtInstanceButton*, void**)::{lambda()LibreOffice#1}::operator()() const (this=0x7ffdc7bcd0b0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:128
    LibreOffice#48 0x00007fd37d66cc59 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceButton::*)()>::call(void (QtInstanceButton::*)(), QtInstanceButton*, void**)::{lambda()LibreOffice#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceButton::*)()>::call(void (QtInstanceButton::*)(), QtInstanceButton*, void**)::{lambda()LibreOffice#1}&&)
        (args=0x7ffdc7bcd490, fn=...) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:66
    LibreOffice#49 0x00007fd37d66cb8b in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (QtInstanceButton::*)()>::call(void (QtInstanceButton::*)(), QtInstanceButton*, void**)
        (f=(void (QtInstanceButton::*)(QtInstanceButton * const)) 0x7fd37d669b40 <QtInstanceButton::buttonClicked()>, o=0x55e1281056b0, arg=0x7ffdc7bcd490) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
    LibreOffice#50 0x00007fd37d66cb0d in QtPrivate::FunctionPointer<void (QtInstanceButton::*)()>::call<QtPrivate::List<>, void>(void (QtInstanceButton::*)(), QtInstanceButton*, void**)
        (f=(void (QtInstanceButton::*)(QtInstanceButton * const)) 0x7fd37d669b40 <QtInstanceButton::buttonClicked()>, o=0x55e1281056b0, arg=0x7ffdc7bcd490) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:175
    LibreOffice#51 0x00007fd37d66ca36 in QtPrivate::QCallableObject<void (QtInstanceButton::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
        (which=1, this_=0x55e1285a0ac0, r=0x55e1281056b0, a=0x7ffdc7bcd490, ret=0x0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:546
    LibreOffice#52 0x00007fd37c4ee572 in QtPrivate::QSlotObjectBase::call (this=0x55e1285a0ac0, r=0x55e1281056b0, a=0x7ffdc7bcd490) at qtbase/src/corelib/kernel/qobjectdefs_impl.h:462
    LibreOffice#53 0x00007fd37c724c6c in doActivate<false> (sender=0x55e1283c55e0, signal_index=9, argv=0x7ffdc7bcd490) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4386
    LibreOffice#54 0x00007fd37c71af23 in QMetaObject::activate (sender=0x55e1283c55e0, m=0x7fd37b190f60 <QAbstractButton::staticMetaObject>, local_signal_index=2, argv=0x7ffdc7bcd490)
        at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:4447
    LibreOffice#55 0x00007fd37a5a7bcb in QMetaObject::activate<void, bool> (sender=0x55e1283c55e0, mo=0x7fd37b190f60 <QAbstractButton::staticMetaObject>, local_signal_index=2, ret=0x0, args=@0x7ffdc7bcd4d7: false)
        at qtbase/src/corelib/kernel/qobjectdefs.h:320
    LibreOffice#56 0x00007fd37a803742 in QAbstractButton::clicked (this=0x55e1283c55e0, _t1=false) at qtbase/src/widgets/Widgets_autogen/include/moc_qabstractbutton.cpp:254
    LibreOffice#57 0x00007fd37a803657 in QAbstractButtonPrivate::emitClicked (this=0x55e128483d30) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qabstractbutton.cpp:382
    LibreOffice#58 0x00007fd37a8034af in QAbstractButtonPrivate::click (this=0x55e128483d30) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qabstractbutton.cpp:375
    LibreOffice#59 0x00007fd37a8049df in QAbstractButton::mouseReleaseEvent (this=0x55e1283c55e0, e=0x7ffdc7bce8a0) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qabstractbutton.cpp:984
    LibreOffice#60 0x00007fd37a673eed in QWidget::event (this=0x55e1283c55e0, event=0x7ffdc7bce8a0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidget.cpp:8993
    LibreOffice#61 0x00007fd37a8047fc in QAbstractButton::event (this=0x55e1283c55e0, e=0x7ffdc7bce8a0) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qabstractbutton.cpp:941
    LibreOffice#62 0x00007fd37a988051 in QPushButton::event (this=0x55e1283c55e0, e=0x7ffdc7bce8a0) at /home/michi/development/git/qt5/qtbase/src/widgets/widgets/qpushbutton.cpp:697
    LibreOffice#63 0x00007fd37a5b2db0 in QApplicationPrivate::notify_helper (this=0x55e11e0d3900, receiver=0x55e1283c55e0, e=0x7ffdc7bce8a0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3264
    LibreOffice#64 0x00007fd37a5b4a4c in QApplication::notify (this=0x55e11e0792f0, receiver=0x55e1283c55e0, e=0x7ffdc7bce8a0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:2744
    LibreOffice#65 0x00007fd37c63e8b9 in QCoreApplication::notifyInternal2 (receiver=0x55e1283c55e0, event=0x7ffdc7bce8a0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1117
    LibreOffice#66 0x00007fd37c63f5b9 in QCoreApplication::sendSpontaneousEvent (receiver=0x55e1283c55e0, event=0x7ffdc7bce8a0) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1576
    LibreOffice#67 0x00007fd37a5b36d3 in QApplicationPrivate::sendMouseEvent
        (receiver=0x55e1283c55e0, event=0x7ffdc7bce8a0, alienWidget=0x55e1283c55e0, nativeWidget=0x55e124371270, buttonDown=0x7fd37b1cd6b0 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false)
        at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:2343
    LibreOffice#68 0x00007fd37a6b373d in QWidgetWindow::handleMouseEvent (this=0x55e125710bd0, event=0x7ffdc7bcf998) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidgetwindow.cpp:696
    #69 0x00007fd37a6b1da7 in QWidgetWindow::event (this=0x55e125710bd0, event=0x7ffdc7bcf998) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qwidgetwindow.cpp:301
    #70 0x00007fd37a5b2db0 in QApplicationPrivate::notify_helper (this=0x55e11e0d3900, receiver=0x55e125710bd0, e=0x7ffdc7bcf998) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3264
    #71 0x00007fd37a5b6caf in QApplication::notify (this=0x55e11e0792f0, receiver=0x55e125710bd0, e=0x7ffdc7bcf998) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3214
    #72 0x00007fd37c63e8b9 in QCoreApplication::notifyInternal2 (receiver=0x55e125710bd0, event=0x7ffdc7bcf998) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1117
    #73 0x00007fd37c63f5b9 in QCoreApplication::sendSpontaneousEvent (receiver=0x55e125710bd0, event=0x7ffdc7bcf998) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1576
    #74 0x00007fd37b477f07 in QGuiApplicationPrivate::processMouseEvent (e=0x55e1281f8d90) at /home/michi/development/git/qt5/qtbase/src/gui/kernel/qguiapplication.cpp:2513
    #75 0x00007fd37b477041 in QGuiApplicationPrivate::processWindowSystemEvent (e=0x55e1281f8d90) at /home/michi/development/git/qt5/qtbase/src/gui/kernel/qguiapplication.cpp:2237
    #76 0x00007fd37b565bcd in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at /home/michi/development/git/qt5/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:1112
    #77 0x00007fd37bdc179b in userEventSourceDispatch (source=0x55e11e0ed250) at /home/michi/development/git/qt5/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:39
    #78 0x00007fd38150f68e in g_main_dispatch (context=context@entry=0x7fd370000fd0) at ../../../glib/gmain.c:3591
    #79 0x00007fd381512a1f in g_main_context_dispatch_unlocked (context=0x7fd370000fd0) at ../../../glib/gmain.c:4451
    #80 g_main_context_iterate_unlocked (context=context@entry=0x7fd370000fd0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4516
    #81 0x00007fd3815131b0 in g_main_context_iteration (context=0x7fd370000fd0, may_block=1) at ../../../glib/gmain.c:4582
    #82 0x00007fd37ccd3c9b in QEventDispatcherGlib::processEvents (this=0x55e11e079ad0, flags=...) at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:402
    #83 0x00007fd37bdc1598 in QPAEventDispatcherGlib::processEvents (this=0x55e11e079ad0, flags=...) at /home/michi/development/git/qt5/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:90
    #84 0x00007fd37d622092 in QtInstance::ImplYield (this=0x55e11e0d3580, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:467
    #85 0x00007fd37d625251 in QtInstance::DoYield (this=0x55e11e0d3580, bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:478
    #86 0x00007fd386a28a26 in InnerYield (i_bWait=true, i_bAllEvents=false) at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:389
    #87 0x00007fd386a282af in Application::Yield () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:502
    #88 0x00007fd386a28090 in Application::Execute () at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:364
    #89 0x00007fd39011f0f5 in desktop::Desktop::Main (this=0x7ffdc7bd1b40) at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1679
    #90 0x00007fd386a51c0c in ImplSVMainRun () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:234
    #91 0x00007fd37d62d751 in SalInstance::SVMainRun (this=0x55e11e0d3590) at vcl/inc/salinst.hxx:108
    #92 0x00007fd386a51132 in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:221
    #93 0x00007fd386a52cc9 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:252
    #94 0x00007fd39019916a in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
    #95 0x000055e0e26279fd in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
    #96 0x000055e0e26279d7 in main (argc=2, argv=0x7ffdc7bd1d48) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49

Change-Id: Idc24e1eacdb512ec288476712a53fd5dc606f246
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207156
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
cyberluke pushed a commit to cyberluke/libreoffice-fork that referenced this pull request Sep 30, 2026
…m-debounce

fix: re-arm a debounce fire suppressed while a request was in flight
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants