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

--- Comment #9 from Dave Gilbert <[email protected]> ---
The oddity seems to happen during:

1712        xTxtImport->InsertControlCharacter(
ControlCharacter::APPEND_PARAGRAPH );

in:
#0  XMLParaContext::endFastElement(int) (this=0x15f1400) at
/discs/fast/core/xmloff/source/text/txtparai.cxx:1715
#1  0x00007fffed1eb0ed in SvXMLImport::endFastElement(int) (this=0x49b1450,
Element=197980) at /discs/fast/core/xmloff/source/core/xmlimp.cxx:870
#2  0x00007fffd02399dd in (anonymous namespace)::Entity::endElement()
(this=0x499e190) at /discs/fast/core/sax/source/fastparser/fastparser.cxx:515

specifically (my line numbers are off a little from debug)

b sw/source/filter/xml/XMLRedlineImportHelper.cxx:728  (i.e. the triggering
recursive check)
(click to load, hit the breakpoint)
p pDoc
b endElement
(gdb) p *((SwDoc *)0x1958470)->m_pNodes

(ok...)
c
c
<still good at this point>

goes into:
SvXMLImport::endFastElement (this=0x49d20b0, Element=197980) at
/discs/fast/core/xmloff/source/core/xmlimp.cxx:o58
and then
#0  XMLParaContext::endFastElement(int) (this=0x15f1400) at
/discs/fast/core/xmloff/source/text/txtparai.cxx:1688

and I think it's the call to:
1712        xTxtImport->InsertControlCharacter(
ControlCharacter::APPEND_PARAGRAPH );
that breaks it:

(gdb) p *((SwDoc *)0x1957c70)->m_pNodes
$56 = {<BigPtrArray> = BigPtrArray of length 11 = {
[   0] 0x4967ec0            StartNode/SwNormalStartNode parent-start: 0x4967ec0
end: 0x4968e30, 
[   1] 0x4968e30              EndNode start: 0x4967ec0, 
[   2] 0x4969240            StartNode/SwNormalStartNode parent-start: 0x4967ec0
end: 0x4969000, 
[   3] 0x4969000              EndNode start: 0x4969240, 
[   4] 0x495edf0            StartNode/SwNormalStartNode parent-start: 0x4967ec0
end: 0x496aec0, 
[   5] 0x496aec0              EndNode start: 0x495edf0, 
[   6] 0x4968020            StartNode/SwNormalStartNode parent-start: 0x4967ec0
end: 0x4968740, 
[   7] 0x4968740              EndNode start: 0x4968020, 
[   8] 0x49697f0            StartNode/SwNormalStartNode parent-start: 0x4967ec0
end: 0x4967bf0, 
[   9]  0x45a1458            TextNode "", 
[  10] 0x4967bf0              EndNode start: 0x49697f0}, m_vIndices =
0x49810a8, m_rMyDoc = @0x1957c70, m_pEndOfPostIts = 0x4968e30, 
  m_pEndOfInserts = 0x4969000, m_pEndOfAutotext = 0x496aec0, m_pEndOfRedlines =
0x4968740, m_pEndOfContent = std::unique_ptr<SwNode> = {get() = 0x4967bf0}, 
  m_aOutlineNodes = {<o3tl::sorted_vector<SwNode*, CompareSwOutlineNodes,
o3tl::find_unique, true>> = {m_vector = std::vector of length 0, capacity 0}, 
    static npos = 18446744073709551615}, m_bInNodesDel = false,
m_bInDelUpdOutline = false}
(gdb) n
1712        xTxtImport->InsertControlCharacter(
ControlCharacter::APPEND_PARAGRAPH );
(gdb) n
1715        Reference < XTextCursor > xAttrCursor;
(gdb) p *((SwDoc *)0x1957c70)->m_pNodes
$57 = {<BigPtrArray> = BigPtrArray of length 12 = {
[   0] 0x4967ec0            StartNode/SwNormalStartNode parent-start: 0x4967ec0
end: 0x4968e30, 
[   1] 0x4968e30              EndNode start: 0x4967ec0, 
[   2] 0x4969240            StartNode/SwNormalStartNode parent-start: 0x4967ec0
end: 0x4969000, 
[   3] 0x4969000              EndNode start: 0x4969240, 
[   4] 0x495edf0            StartNode/SwNormalStartNode parent-start: 0x4967ec0
end: 0x496aec0, 
[   5] 0x496aec0              EndNode start: 0x495edf0, 
[   6] 0x4968020            StartNode/SwNormalStartNode parent-start: 0x4967ec0
end: 0x4968740, 
[   7] 0x4968740              EndNode start: 0x4968020, 
[   8] 0x49e15c8             TextNode "", 
[   9] 0x49697f0            StartNode/SwNormalStartNode parent-start: 0x4967ec0
end: 0x4967bf0, 
[  10]  0x45a1458            TextNode "", 
[  11] 0x4967bf0              EndNode start: 0x49697f0}, m_vIndices =
0x49810a8, m_rMyDoc = @0x1957c70, m_pEndOfPostIts = 0x4968e30, 
  m_pEndOfInserts = 0x4969000, m_pEndOfAutotext = 0x496aec0, m_pEndOfRedlines =
0x4968740, m_pEndOfContent = std::unique_ptr<SwNode> = {get() = 0x4967bf0}, 
  m_aOutlineNodes = {<o3tl::sorted_vector<SwNode*, CompareSwOutlineNodes,
o3tl::find_unique, true>> = {m_vector = std::vector of length 0, capacity 0}, 
    static npos = 18446744073709551615}, m_bInNodesDel = false,
m_bInDelUpdOutline = false}

which makes me think this is trying to modify the text that was deleted by the
recursion fix up??

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

Reply via email to