From 91ff6ce2d81c299153d99fe0eba7f4bfa9d742b7 Mon Sep 17 00:00:00 2001 From: hius07 <62179190+hius07@users.noreply.github.com> Date: Mon, 13 Feb 2023 01:14:49 +0200 Subject: [PATCH] ReaderBookmark: fix comparing positions (#10109) --- frontend/apps/reader/modules/readerbookmark.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/frontend/apps/reader/modules/readerbookmark.lua b/frontend/apps/reader/modules/readerbookmark.lua index 4b83fe6c1..0c602e586 100644 --- a/frontend/apps/reader/modules/readerbookmark.lua +++ b/frontend/apps/reader/modules/readerbookmark.lua @@ -245,13 +245,19 @@ function ReaderBookmark:isBookmarkInPositionOrder(a, b) if compare_xp then if compare_xp == 0 then -- both bookmarks with the same start if a.highlighted and b.highlighted then -- both are highlights, compare ends - return self.ui.document:compareXPointers(a.pos1, b.pos1) < 0 + compare_xp = self.ui.document:compareXPointers(a.pos1, b.pos1) + if compare_xp then + return compare_xp < 0 + end + logger.warn("Invalid xpointer in highlight:", a.pos1, b.pos1) + return end return a.highlighted -- have page bookmarks before highlights end return compare_xp < 0 end -- if compare_xp is nil, some xpointer is invalid and will be sorted first to page 1 + logger.warn("Invalid xpointer in highlight:", a.page, b.page) end return a_page > b_page end