Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bump crengine: better linebreaks at em-dash, fb2 fixes #1160

Merged
merged 1 commit into from
Aug 18, 2020

Conversation

poire-z
Copy link
Contributor

@poire-z poire-z commented Aug 17, 2020

Includes:

libunibreak: add patch to export internal function get_char_lb_class_lang() as lb_get_char_class().


This change is Reviewable

@poire-z
Copy link
Contributor Author

poire-z commented Aug 17, 2020

Hold this one, I'm getting some crashes possibly related:

Invalid write of size 4
   at 0x13326372: TextLangCfg::TextLangCfg(lString16) (textlang.cpp:739)
   by 0x133268FE: TextLangMan::getTextLangCfg(lString16) (textlang.cpp:181)
   by 0x13326B8A: TextLangMan::getTextLangCfg(ldomNode*) (textlang.cpp:194)
   by 0x132BAD33: ldomNode::renderFinalBlock(LVRef<LFormattedText>&, RenderRectAccessor*, int, BlockFloatFootprint*) (lvtinydom.cpp:17975)
   by 0x133A1AB7: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:7305)
   by 0x133A0F0E: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:6998)
   by 0x133A0F0E: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:6998)
   by 0x133A0F0E: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:6998)
   by 0x1339DA6B: renderBlockElement(LVRendPageContext&, ldomNode*, int, int, int, int, int, int, int*, int) (lvrend.cpp:7523)
   by 0x1339E249: renderBlockElement(LVRendPageContext&, ldomNode*, int, int, int, int, int, int, int*) (lvrend.cpp:7543)
   by 0x132B191D: ldomDocument::render(LVRendPageList*, LVDocViewCallback*, int, int, bool, int, LVProtectedFastRef<LVFont>, int, LVFastRef<CRPropAccessor>, int, int) (lvtinydom.cpp:4693)
   by 0x13369081: LVDocView::Render(int, int, LVRendPageList*) (lvdocview.cpp:2790)
 Address 0xdcf32e8 is 0 bytes after a block of size 200 alloc'd
   at 0x4835DEF: operator new(unsigned long) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x133268EF: TextLangMan::getTextLangCfg(lString16) (textlang.cpp:181)
   by 0x13326B8A: TextLangMan::getTextLangCfg(ldomNode*) (textlang.cpp:194)
   by 0x132BAD33: ldomNode::renderFinalBlock(LVRef<LFormattedText>&, RenderRectAccessor*, int, BlockFloatFootprint*) (lvtinydom.cpp:17975)
   by 0x133A1AB7: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:7305)
   by 0x133A0F0E: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:6998)
   by 0x133A0F0E: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:6998)
   by 0x133A0F0E: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:6998)
   by 0x1339DA6B: renderBlockElement(LVRendPageContext&, ldomNode*, int, int, int, int, int, int, int*, int) (lvrend.cpp:7523)
   by 0x1339E249: renderBlockElement(LVRendPageContext&, ldomNode*, int, int, int, int, int, int, int*) (lvrend.cpp:7543)
   by 0x132B191D: ldomDocument::render(LVRendPageList*, LVDocViewCallback*, int, int, bool, int, LVProtectedFastRef<LVFont>, int, LVFastRef<CRPropAccessor>, int, int) (lvtinydom.cpp:4693)
   by 0x13369081: LVDocView::Render(int, int, LVRendPageList*) (lvdocview.cpp:2790)

Invalid read of size 4
   at 0x114E136A: get_char_lb_class (linebreak.c:405)
   by 0x114E15F8: get_char_lb_class_lang (linebreak.c:456)
   by 0x114E1895: lb_process_next_char (linebreak.c:716)
   by 0x1339B754: getRenderedWidths(ldomNode*, int&, int&, int, bool, int, int&, int&, bool&, int&, int, TextLangCfg*, bool, bool) (lvrend.cpp:10072)
   by 0x1339A1FC: getRenderedWidths(ldomNode*, int&, int&, int, bool, int, int&, int&, bool&, int&, int, TextLangCfg*, bool, bool) (lvrend.cpp:9579)
   by 0x1339A4FF: getRenderedWidths(ldomNode*, int&, int&, int, bool, int, int&, int&, bool&, int&, int, TextLangCfg*, bool, bool) (lvrend.cpp:9695)
   by 0x1339BE06: getRenderedWidths(ldomNode*, int&, int&, int, bool, int) (lvrend.cpp:9409)
   by 0x133A92AE: CCRTable::PlaceCells() (lvrend.cpp:870)
   by 0x1339DED4: CCRTable (lvrend.cpp:2057)
   by 0x1339DED4: renderTable(LVRendPageContext&, ldomNode*, int, int, int, bool, int&, int, bool, bool, bool) (lvrend.cpp:2065)
   by 0x1339FA90: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:6791)
   by 0x133A0F0E: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:6998)
   by 0x133A0F0E: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:6998)
 Address 0xdcf32e8 is 0 bytes after a block of size 200 alloc'd
   at 0x4835DEF: operator new(unsigned long) (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
   by 0x133268EF: TextLangMan::getTextLangCfg(lString16) (textlang.cpp:181)
   by 0x13326B8A: TextLangMan::getTextLangCfg(ldomNode*) (textlang.cpp:194)
   by 0x132BAD33: ldomNode::renderFinalBlock(LVRef<LFormattedText>&, RenderRectAccessor*, int, BlockFloatFootprint*) (lvtinydom.cpp:17975)
   by 0x133A1AB7: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:7305)
   by 0x133A0F0E: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:6998)
   by 0x133A0F0E: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:6998)
   by 0x133A0F0E: renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, int) (lvrend.cpp:6998)
   by 0x1339DA6B: renderBlockElement(LVRendPageContext&, ldomNode*, int, int, int, int, int, int, int*, int) (lvrend.cpp:7523)
   by 0x1339E249: renderBlockElement(LVRendPageContext&, ldomNode*, int, int, int, int, int, int, int*) (lvrend.cpp:7543)
   by 0x132B191D: ldomDocument::render(LVRendPageList*, LVDocViewCallback*, int, int, bool, int, LVProtectedFastRef<LVFont>, int, LVFastRef<CRPropAccessor>, int, int) (lvtinydom.cpp:4693)
   by 0x13369081: LVDocView::Render(int, int, LVRendPageList*) (lvdocview.cpp:2790)

Includes:
- (Upstream) LVBase64NodeStream: fix possible segfault
- (Upstream) Fix getting encoding from HTML META tags
- FB2: also look for cover in <src-title-info>
- FB2: fix cover image colors
- FB2: don't draw cover in scroll mode
- TextLang: better linebreaks at em-dash (EN/ES/FR)
- TextLang: increase _lb_props static array size

libunibreak: add patch to export internal function
get_char_lb_class_lang() as lb_get_char_class().
@poire-z poire-z merged commit 65d3ee1 into koreader:master Aug 18, 2020
@poire-z poire-z deleted the bump_crengine branch August 18, 2020 10:08
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.

1 participant