From ca144203721d5283f0b93fd93fa449a9908beafb Mon Sep 17 00:00:00 2001 From: Galunid Date: Sat, 27 Apr 2024 23:16:13 +0200 Subject: [PATCH] Add relevant nil guards to prevent reflow crashes (#11715) closes #10854 #9272 #4481 --- frontend/document/koptinterface.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/frontend/document/koptinterface.lua b/frontend/document/koptinterface.lua index 9481d0163..c9fd8eb01 100644 --- a/frontend/document/koptinterface.lua +++ b/frontend/document/koptinterface.lua @@ -1064,6 +1064,10 @@ function KoptInterface:getWordFromReflowPosition(doc, boxes, pos) local pageno = pos.page local scratch_reflowed_page_boxes = self:getReflowedTextBoxesFromScratch(doc, pageno) + if not DEBUG.dassert(scratch_reflowed_page_boxes and next(scratch_reflowed_page_boxes) ~= nil, "scratch_reflowed_page_boxes shouldn't be nil/{}") then + return + end + local scratch_reflowed_word_box = self:getWordFromBoxes(scratch_reflowed_page_boxes, pos) local reflowed_page_boxes = self:getReflowedTextBoxes(doc, pageno) @@ -1237,8 +1241,15 @@ function KoptInterface:getTextFromReflowPositions(doc, native_boxes, pos0, pos1) local reflowed_page_boxes = self:getReflowedTextBoxes(doc, pageno) local scratch_reflowed_word_box0 = self:getWordFromBoxes(scratch_reflowed_page_boxes, pos0) + if not DEBUG.dassert(scratch_reflowed_word_box0 and next(scratch_reflowed_word_box0) ~= nil, "scratch_reflowed_word_box0 shouldn't be nil/{}") then + return + end local reflowed_word_box0 = self:getWordFromBoxes(reflowed_page_boxes, pos0) + local scratch_reflowed_word_box1 = self:getWordFromBoxes(scratch_reflowed_page_boxes, pos1) + if not DEBUG.dassert(scratch_reflowed_word_box1 and next(scratch_reflowed_word_box1) ~= nil, "scratch_reflowed_word_box1 shouldn't be nil/{}") then + return + end local reflowed_word_box1 = self:getWordFromBoxes(reflowed_page_boxes, pos1) local reflowed_pos_abs0 = scratch_reflowed_word_box0.box:center()