-
Notifications
You must be signed in to change notification settings - Fork 100
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
Updates from koreader/crengine #299
Commits on May 27, 2021
-
XML parsing: correctly parse CDATA (#397)
"<div>abc <![CDATA[d<e&>f]]> ghi</div>" will now add into the DOM 3 text nodes: "abc " , "d<e&>f" and " ghi", as it's supposed to happen in XML/XHTML. (In HTML, browsers would not do any specific parsing, with possibly strange results. We do it too in plain HTML.)
Configuration menu - View commit details
-
Copy full SHA for ea9e649 - Browse repository at this point
Copy the full SHA ea9e649View commit details -
Based on koreader/crengine#399: 3a28fe9 'LVDrawBuf: Various C++11 twe…
…aks & cleanups' by NiLuJe * Mark getter functions as const * Simplify LVGrayDrawBuf::Invert * LVColorDrawBuf::Clear @ 32bpp: Cache the color value Helps avoid noise on debug builds. (Because I sure hope an optimized build would have hoisted that).
Configuration menu - View commit details
-
Copy full SHA for b0201d4 - Browse repository at this point
Copy the full SHA b0201d4View commit details -
Based on koreader/crengine#399: b65f1e3 'LVImg: Various C++11 tweaks …
…& cleanups' by NiLuJe * Mark getter functions as const * We don't need stbiw outside of lvimg (Probably requires a recent stbiw, the one shipped w/ NanoSVG is hilariously old. Harmless if unsupported, though).
Configuration menu - View commit details
-
Copy full SHA for 9dc6fd9 - Browse repository at this point
Copy the full SHA 9dc6fd9View commit details -
LVTinyDom: Update xxHash to v0.8.0
And make it private & inlined, as only lvtinydom uses it.
Configuration menu - View commit details
-
Copy full SHA for 78b2561 - Browse repository at this point
Copy the full SHA 78b2561View commit details -
Configuration menu - View commit details
-
Copy full SHA for eb3644d - Browse repository at this point
Copy the full SHA eb3644dView commit details -
Configuration menu - View commit details
-
Copy full SHA for a3c5843 - Browse repository at this point
Copy the full SHA a3c5843View commit details -
LVTinyDom: Port ldomPack/ldomUnpack to ZSTD
* Move ldomPack/ldomUnpack to the CacheFile class, as that the only class that uses it. * Which implies duplicating (zlib) unpack in PDBFile for pdbfmt... * Lazy init ZSTD ressources, and keep 'em around as long as sensible.
Configuration menu - View commit details
-
Copy full SHA for a342f43 - Browse repository at this point
Copy the full SHA a342f43View commit details -
* crengine: enabled zstd cache compression.
* crengine: allow to set global cache compression type (none, zlib, zstd). * crengine: allow use zlib cache compression even if zstd available (selected by setCacheCompressionType() global functions). In the future, can be implemented selection in the settings dialog.
Configuration menu - View commit details
-
Copy full SHA for 1cfe4b3 - Browse repository at this point
Copy the full SHA 1cfe4b3View commit details
Commits on May 28, 2021
-
* add thirdparty
zstd
to repo.* Android: add static library zstd to dependencies.
Configuration menu - View commit details
-
Copy full SHA for 7f61948 - Browse repository at this point
Copy the full SHA 7f61948View commit details -
Android cmake project: rename all thirdparty bundled static libraries…
… to exclude any conflicts in the future.
Configuration menu - View commit details
-
Copy full SHA for 617cf84 - Browse repository at this point
Copy the full SHA 617cf84View commit details -
Configuration menu - View commit details
-
Copy full SHA for 64fc974 - Browse repository at this point
Copy the full SHA 64fc974View commit details -
It turns out it's not just LVImg that wants inverted alpha: it's *all* CRe... So, we'll be handling the pixel format conversion entirely in KOReader instead, as dealing with the alpha here is kind of hairy without basically rewiring all the things. :(
Configuration menu - View commit details
-
Copy full SHA for fe7a080 - Browse repository at this point
Copy the full SHA fe7a080View commit details -
Android: optimized pixel format conversion from crengine BGRX to andr…
…oid RGBA. Conversion time was reduced by about 50%: Nokia 8: 18 ms => 9 ms x86 emu: 1.6 ms => 0.6 ms
Configuration menu - View commit details
-
Copy full SHA for dcc77dd - Browse repository at this point
Copy the full SHA dcc77ddView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0da210c - Browse repository at this point
Copy the full SHA 0da210cView commit details -
XML parsing: slightly better parsing of <script>
Handle content as text, but don't stop just at any '<', only at '</script>', as <script> may contain tags. Not doing that might put a lot of javascript as document text content. Note that <script> content is "display: none" by default.
Configuration menu - View commit details
-
Copy full SHA for db7f67e - Browse repository at this point
Copy the full SHA db7f67eView commit details -
Update German hyphenation patterns (#406)
Upstream update of the German patterns (roughly 800 changes)
Configuration menu - View commit details
-
Copy full SHA for 5f8c16a - Browse repository at this point
Copy the full SHA 5f8c16aView commit details -
Update German hyphenation patterns in android resources
(from cr3gui/data/hyph/german_hyphen.pattern).
Configuration menu - View commit details
-
Copy full SHA for 9f0ce43 - Browse repository at this point
Copy the full SHA 9f0ce43View commit details
Commits on May 31, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 72b99fa - Browse repository at this point
Copy the full SHA 72b99faView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5bc60e1 - Browse repository at this point
Copy the full SHA 5bc60e1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1f1aaff - Browse repository at this point
Copy the full SHA 1f1aaffView commit details -
resizeImage(): restore original scaling options code
It was hardcoded'ly removed as part of 9214bfc when implementing support for CSS width & height for images, so they don't get in the way. Removed the hardcoding so the original CoolReader settings can work again. We can still disable that from frontend code.
Configuration menu - View commit details
-
Copy full SHA for 14379db - Browse repository at this point
Copy the full SHA 14379dbView commit details -
CSS: parse and store min/max-width/height
Increase nb of bitmaps from 2 to 3 lUInt32 as we're going over 64 properties.
Configuration menu - View commit details
-
Copy full SHA for d8f6d09 - Browse repository at this point
Copy the full SHA d8f6d09View commit details -
Add getStyledImageSize() ensuring min/max-width/height
Compute image size according to CSS2 specs, ensuring CSS width, height, min-width, min-height, max-width and max-height. Used in lvtextfm when drawing images, and when estimating block widths in getRenderedWidths() instead of the previous wrong computation. Limitation: heights in % are not supported and ignored.
Configuration menu - View commit details
-
Copy full SHA for 15608a5 - Browse repository at this point
Copy the full SHA 15608a5View commit details -
renderBlockElementEnhanced(): ensure min/max-width/height
Ensure min-width, min-height, max-width (but not max-height) on block elements, inline-block/table, block floats and floating images (min-height in % not supported). Ensure min-width on the table element itself (but not supported on the table inner elements like cells and cols).
Configuration menu - View commit details
-
Copy full SHA for fdddc7d - Browse repository at this point
Copy the full SHA fdddc7dView commit details -
Add LVDocView::getDocumentRenderingHash()
So frontends can know if the rendering or the number of pages have changed (instead of relying of the document height, which is not a strictly accurate indicator of changes).
Configuration menu - View commit details
-
Copy full SHA for 52eb1ad - Browse repository at this point
Copy the full SHA 52eb1adView commit details -
Configuration menu - View commit details
-
Copy full SHA for 26be90f - Browse repository at this point
Copy the full SHA 26be90fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 731857f - Browse repository at this point
Copy the full SHA 731857fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 38f688a - Browse repository at this point
Copy the full SHA 38f688aView commit details -
getStyledImageSize(): tweak min/max-width/height computations
Ensure "the rules above are applied again" from the specs when ensuring max/min-height, meaning some bits of the width computations have to be ensured again.
Configuration menu - View commit details
-
Copy full SHA for 832f114 - Browse repository at this point
Copy the full SHA 832f114View commit details -
getStyledImageSize(): don't ignore FB2/SVG <image> element
Also handle <image> just as <img> in the few places we did not yet: when handling floats.
Configuration menu - View commit details
-
Copy full SHA for cf15ffd - Browse repository at this point
Copy the full SHA cf15ffdView commit details -
getStyledImageSize(): hack to handle sizing via SVG wrappers
Quite often seen in EPUBs (may be generated by some Calibre plugin) to force an image to scale to the page (100%) while keeping aspect ratio. (Positionning is not ensured: horizontal centering may be via the publisher CSS, but vertical centering can't and is not ensured.)
Configuration menu - View commit details
-
Copy full SHA for 31c3918 - Browse repository at this point
Copy the full SHA 31c3918View commit details
Commits on Jun 1, 2021
-
Fix max img height when small line-height
An image having its bottom on the baseline, don't account for the strut added space below when this space would be negative (ie. with line-height: 0, which might be explicitely used to kill that strut added bottom blank space).
Configuration menu - View commit details
-
Copy full SHA for fd6fd3b - Browse repository at this point
Copy the full SHA fd6fd3bView commit details -
getRenderedWidths(): fix consecutive non-collapsable spaces
Measured widths could be wrong when other unicode space chars are used, which should not collapse.
Configuration menu - View commit details
-
Copy full SHA for e1504f3 - Browse repository at this point
Copy the full SHA e1504f3View commit details -
Configuration menu - View commit details
-
Copy full SHA for fc77590 - Browse repository at this point
Copy the full SHA fc77590View commit details -
Configuration menu - View commit details
-
Copy full SHA for b844dbb - Browse repository at this point
Copy the full SHA b844dbbView commit details -
Since 25d1ce2, lengthToPx() can access the document and get the root font size. But we need to pass it to lvpagesplitter though.
Configuration menu - View commit details
-
Copy full SHA for fc12d9c - Browse repository at this point
Copy the full SHA fc12d9cView commit details -
LVString: Fix a c/p issue in lString8::atoi64
Sidebar: this is what templates are for. Code probably not exercised much of anywhere, definitely not in KOReader. Fix #412
Configuration menu - View commit details
-
Copy full SHA for 3790cef - Browse repository at this point
Copy the full SHA 3790cefView commit details -
LVTextFm: Simplify and fix resizeImage logic
As discussed in #409 Basically: * If !arbitraryImageScaling: try integer scaling, from maxScaleMult to 1. If nothing fits the bounding box, fall back to arbitrary scaling. Get rid of the weird mutlitplier and magic scratch pixels, because when they weren't introducins egregious errors, they were actually *introducing* rounding errors! * Simplify the classic scaling code, based on Qt's algorithm. No floats or weird multiplier needed, because we *always* MUL before we DIV. And if no rounding was deemed necessary by Qt, then implicit truncation is probably good enough for us, too ;).
Configuration menu - View commit details
-
Copy full SHA for 2b38949 - Browse repository at this point
Copy the full SHA 2b38949View commit details -
LVXMLParser::ReadText(): fix parsing at buffer boundaries
Avoid '</sc' at buffer end to miss matching '</script>' if it would come next when reading from file stream. A bit of clean up of this part of the code, added comments as I understand what bits are supposed to do.
Configuration menu - View commit details
-
Copy full SHA for 6464e87 - Browse repository at this point
Copy the full SHA 6464e87View commit details -
TextLang: fix lang_tag first part comparison
"en" and "en-US" do start with "en", but "eno" should not.
Configuration menu - View commit details
-
Copy full SHA for bf038f2 - Browse repository at this point
Copy the full SHA bf038f2View commit details -
CSS font-family: fix parsing of 'inherit' and '!important'
Proper parsing of "!important" at end of font-family. Also try to handle "inherit" in the most compatible way, even if not per current specs: "inherit" is nowadays invalid when not standalone. We have seen books with 'font-family: "Some Font", inherit', that Calibre 3.x would render with "Some Font", while Firefox and Calibre 5.x would consider the whole declaration invalid. So, best to just ignore any non-standalone "inherit", and keep parsing the font names.
Configuration menu - View commit details
-
Copy full SHA for d32591b - Browse repository at this point
Copy the full SHA d32591bView commit details -
CSS: support a few -epub-* and -webkit-* properties
Mentionned in early specs of EPUB3 (and later deprecated), or only supported as -webkit- at some point in the past, so these can be found in some books without the newer alternatives.
Configuration menu - View commit details
-
Copy full SHA for c4bd5b2 - Browse repository at this point
Copy the full SHA c4bd5b2View commit details -
Text fragment flags: add LTEXT_HAS_EXTRA
Replace LTEXT_HIDDEN and have "visibility: hidden" use it. This might allow adding support for rare CSS text properties (like "visibility", "line-break) without wasting a bit in the LTEXT_ flags. Have any generated content (list item markes, pseudo elements, BiDi markers) pass their originated node to AddSourceLine() so we always have access to the node to fetch these extra properties.
Configuration menu - View commit details
-
Copy full SHA for dc70164 - Browse repository at this point
Copy the full SHA dc70164View commit details -
Configuration menu - View commit details
-
Copy full SHA for af78726 - Browse repository at this point
Copy the full SHA af78726View commit details -
Configuration menu - View commit details
-
Copy full SHA for 88ffbc6 - Browse repository at this point
Copy the full SHA 88ffbc6View commit details
Commits on Jun 2, 2021
-
Based on koreader/crengine#426: 4acb2ea34c6e01cd099862c0bf80e24dd7a1a…
…171 'LVImg: Simplify JPG & PNG decoding' by NiLuJe * Avoid unnecessary per-scanline allocs in PNG
Configuration menu - View commit details
-
Copy full SHA for 1d8551c - Browse repository at this point
Copy the full SHA 1d8551cView commit details -
Configuration menu - View commit details
-
Copy full SHA for fc18c9d - Browse repository at this point
Copy the full SHA fc18c9dView commit details -
LVString: fix ::insert(pos, count, char)
It was working somehow as we mostly use them with count=1, but it was wrong when count >=2.
Configuration menu - View commit details
-
Copy full SHA for bc62a23 - Browse repository at this point
Copy the full SHA bc62a23View commit details -
toStringV2(): fix (again) when target node is a boxing node
Follow up to 5330750: when getting a non-boxing parent or child, be sure we actually get one (as we can have nested boxing elements, like tabularBoxes with completed incomplete tables).
Configuration menu - View commit details
-
Copy full SHA for 3243799 - Browse repository at this point
Copy the full SHA 3243799View commit details -
LVFontCache::find(): give more weight to first fonts in list
When there are multiple font names in a list (ie, with CSS 'font-family: "Font1", "Font2"', multiple fonts may get the same higher score. We keep the first best match in the loop, but at the end, we prefer an instantiated font to a not yet instantiated one with the same match. Depending on various things, it may not be the first one. So, provide an additional weight to font by their order in the list.
Configuration menu - View commit details
-
Copy full SHA for c58fad4 - Browse repository at this point
Copy the full SHA c58fad4View commit details -
Page splitting: more accurate rendering progress
Fix accounting of erm_final rendering by not ignoring those done in sub-flows/contexts (floats, inline-blocks, tables).
Configuration menu - View commit details
-
Copy full SHA for 16c6623 - Browse repository at this point
Copy the full SHA 16c6623View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9e801c7 - Browse repository at this point
Copy the full SHA 9e801c7View commit details -
Table cells getRenderedWidths(): provide rend_flags
To be consistent, as it will be drawn with these rend_flags.
Configuration menu - View commit details
-
Copy full SHA for 4d2ece7 - Browse repository at this point
Copy the full SHA 4d2ece7View commit details -
Tables rendering: tweak column widths algorithm
Use the cells max content width as the column widths when all these max widths fit (instead of using some heuristics about the sum of the means, which could lead to uneeded smaller widths and wraps).
Configuration menu - View commit details
-
Copy full SHA for 798cf82 - Browse repository at this point
Copy the full SHA 798cf82View commit details -
CSS: parse/handle "currentcolor", default for border-color
Allow parsing color value "currentcolor". Can be used with "color:" and "background-color:" even if useless, but it is the initial value for border-color, and the default when no color value is found in "border:" (ie. "border: solid thin").
Configuration menu - View commit details
-
Copy full SHA for 6fd22ac - Browse repository at this point
Copy the full SHA 6fd22acView commit details -
CSS: add units 'ch' (just like 'ex')
Represents the width, or more precisely the advance measure, of the glyph "0" (zero) in the element's font. In the cases where it is impractical to determine, it must be assumed to be 0.5em wide by 1em tall. So, let's handle it just as 'ex', assuming 0.5em.
Configuration menu - View commit details
-
Copy full SHA for 0abeb69 - Browse repository at this point
Copy the full SHA 0abeb69View commit details -
SVG images: proper alpha blending
Allow transparent SVG images to blend, instead of drawing them on a white background.
Configuration menu - View commit details
-
Copy full SHA for 426b303 - Browse repository at this point
Copy the full SHA 426b303View commit details
Commits on Jun 8, 2021
-
Use the correct font glyph cache item size & glyph image offset.
Based on koreader/crengine#441: 604132a303a3118a8a95322a7e344fc1b7bd4580 'LVFntMan: Ensure proper alignment of the glyph bitmap buffer in LVFon…' by NiLuJe
Configuration menu - View commit details
-
Copy full SHA for 67f0e3a - Browse repository at this point
Copy the full SHA 67f0e3aView commit details
Commits on Jun 9, 2021
-
Images: allow <img src="data:image/svg;-cr-plain,content">
In 'img src="..."' and 'background-image: url(...)', where we support "data:image/svg;base64,...", also support a non-standard "data:image/svg;-cr-plain,...". May be used to build SVG images at rendering time, and have the code set them as attribute or styles (will be useful to generate the MathML <msqrt> radical symbol).
Configuration menu - View commit details
-
Copy full SHA for 81dd8c1 - Browse repository at this point
Copy the full SHA 81dd8c1View commit details -
CSS: properly handle selectors with internal boxing element names
When checking selectors, we normally skip/enter/exit internal boxing elements when waking parents or siblings. This allows having selectors specifying one type of internal boxing elements - and so not skip them. Adds in advance a new internal elements: <mathBox>, which will be used for MathML support (which will use CSS selectors to do some part of its work).
Configuration menu - View commit details
-
Copy full SHA for 50f4064 - Browse repository at this point
Copy the full SHA 50f4064View commit details -
CSS ensure width on boxing element table sub-elements
As only us (and not publishers) can set widths on them, ensure them even if we normally don't on table sub-elements.
Configuration menu - View commit details
-
Copy full SHA for a87643d - Browse repository at this point
Copy the full SHA a87643dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5e66132 - Browse repository at this point
Copy the full SHA 5e66132View commit details -
MathML: adds LVInkMeasurementDrawBuf
Allows measuring the area taken by ink (glyphs, borders, images...) by just using the regular drawing code. (Easier than doing it using font and glyphs metrics...)
Configuration menu - View commit details
-
Copy full SHA for 229b5b8 - Browse repository at this point
Copy the full SHA 229b5b8View commit details -
Configuration menu - View commit details
-
Copy full SHA for f1d716d - Browse repository at this point
Copy the full SHA f1d716dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5f3db13 - Browse repository at this point
Copy the full SHA 5f3db13View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6bce2e3 - Browse repository at this point
Copy the full SHA 6bce2e3View commit details -
Configuration menu - View commit details
-
Copy full SHA for ba1ada2 - Browse repository at this point
Copy the full SHA ba1ada2View commit details -
MathML: plug MathML code into crengine core
Everything wrapped in #if MATHML_SUPPORT==1 / #endif, mostly for documentation purpose, to make it explicite a reader can skip it when not interested. lvtinydom.cpp DOM writers: add flag when entering <math>, so that MathMLHelper can complete and tweak the DOM as it is being built. lvrend.cpp: as most of the non trivial MathML elements (mfrac, msub, mover, msqrt...) are handled as inline-table, plug a few specific handler in the table rendering code, and in getRenderedWidths() to estimate inline-block/table elements min/max widths. Also have setNodeStyle() call setMathMLElementNodeStyle() on MathML elements to complete their styling. lvtextfm.cpp: alignLine() position inline-block boxes may call a specific method on MathML elements to tweak their position and size to ensure vertical stretching of MathML operators, so they adjust to the line box vertical space, adjusting the line height and baseline. lvrend.cpp renderFinalBlock() and lvtextfm.cpp: pass LTEXT_MATH_TRANSFORM flag to have stretchy final blocks drawn stretched.
Configuration menu - View commit details
-
Copy full SHA for a12eb32 - Browse repository at this point
Copy the full SHA a12eb32View commit details -
MathML: Fonts: allow drawing stretched glyphs
Simple (and ugly) way to draw MathML stretchy operators, for fences, arrows, ... to adjust to their neighbours. A more correct rendering would require more changes here and in lvtextfm.cpp, to use OT Math fonts glyph variants and glyph construction features.
Configuration menu - View commit details
-
Copy full SHA for adffc27 - Browse repository at this point
Copy the full SHA adffc27View commit details -
Configuration menu - View commit details
-
Copy full SHA for 984d743 - Browse repository at this point
Copy the full SHA 984d743View commit details -
Configuration menu - View commit details
-
Copy full SHA for b61f163 - Browse repository at this point
Copy the full SHA b61f163View commit details -
==536==ERROR: AddressSanitizer: global-buffer-overflow on address 0x555559aa5784 at pc 0x5555576f898a bp 0x7fffffffadb0 sp 0x7fffffffada0 READ of size 4 at 0x555559aa5784 thread T0 00 0x5555576f8989 in LVFreeTypeFace::measureText(char32_t const*, int, unsigned short*, unsigned char*, int, char32_t, TextLangCfg*, int, bool, unsigned int, unsigned int) coolreader/crengine/src/lvfont/lvfreetypeface.cpp:1756 01 0x5555570c6ab4 in ldomDocument::createXPointer(lvPoint, int, bool, ldomNode*) coolreader/crengine/src/lvtinydom.cpp:9059 02 0x5555570c5fbe in ldomDocument::createXPointer(lvPoint, int, bool, ldomNode*) coolreader/crengine/src/lvtinydom.cpp:9014 03 0x5555572fd8e3 in LVDocView::getNodeByPoint(lvPoint, bool) coolreader/crengine/src/lvdocview.cpp:2623 04 0x555556e154cb in CR3View::mouseMoveEvent(QMouseEvent*) coolreader/cr3qt/src/cr3widget.cpp:999 05 0x7ffff6c17947 in QWidget::event(QEvent*) (/usr/lib64/libQt5Widgets.so.5+0x1ad947) 06 0x7ffff6bd092e in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib64/libQt5Widgets.so.5+0x16692e) 07 0x7ffff6bd84cc in QApplication::notify(QObject*, QEvent*) (/usr/lib64/libQt5Widgets.so.5+0x16e4cc) 08 0x7ffff611c657 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/lib64/libQt5Core.so.5+0x2b1657) 09 0x7ffff6bd7660 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) (/usr/lib64/libQt5Widgets.so.5+0x16d660) 10 0x7ffff6c33a3a (/usr/lib64/libQt5Widgets.so.5+0x1c9a3a) 11 0x7ffff6c36d66 (/usr/lib64/libQt5Widgets.so.5+0x1ccd66) 12 0x7ffff6bd092e in QApplicationPrivate::notify_helper(QObject*, QEvent*) (/usr/lib64/libQt5Widgets.so.5+0x16692e) 13 0x7ffff6bd81f7 in QApplication::notify(QObject*, QEvent*) (/usr/lib64/libQt5Widgets.so.5+0x16e1f7) 14 0x7ffff611c657 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (/usr/lib64/libQt5Core.so.5+0x2b1657) 15 0x7ffff6533ce7 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (/usr/lib64/libQt5Gui.so.5+0x125ce7) 16 0x7ffff65352d4 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (/usr/lib64/libQt5Gui.so.5+0x1272d4) 17 0x7ffff650e56a in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib64/libQt5Gui.so.5+0x10056a) 18 0x7fffee994d99 (/usr/lib64/libQt5XcbQpa.so.5+0x77d99) 19 0x7ffff4eb8d66 in g_main_context_dispatch (/usr/lib64/libglib-2.0.so.0+0x58d66) 20 0x7ffff4eb8fff (/usr/lib64/libglib-2.0.so.0+0x58fff) 21 0x7ffff4eb908e in g_main_context_iteration (/usr/lib64/libglib-2.0.so.0+0x5908e) 22 0x7ffff617766c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib64/libQt5Core.so.5+0x30c66c) 23 0x7ffff611b212 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (/usr/lib64/libQt5Core.so.5+0x2b0212) 24 0x7ffff61234cf in QCoreApplication::exec() (/usr/lib64/libQt5Core.so.5+0x2b84cf) 25 0x555556dc571f in main coolreader/cr3qt/src/main.cpp:212 26 0x7ffff503fe39 in __libc_start_main (/lib64/libc.so.6+0x23e39) 27 0x555556d937d9 in _start (coolreader-debug-build/cr3qt/cr3+0x183f7d9) 0x555559aa5784 is located 0 bytes to the right of global variable 'empty_str_32' defined in 'coolreader/crengine/src/lvstring.cpp:59:16' (0x555559aa5780) of size 4 0x555559aa5784 is located 60 bytes to the left of global variable 'empty_chunk_32' defined in 'coolreader/crengine/src/lvstring.cpp:60:26' (0x555559aa57c0) of size 24 SUMMARY: AddressSanitizer: global-buffer-overflow coolreader/crengine/src/lvfont/lvfreetypeface.cpp:1756 in LVFreeTypeFace::measureText(char32_t const*, int, unsigned short*, unsigned char*, int, char32_t, TextLangCfg*, int, bool, unsigned int, unsigned int) Shadow bytes around the buggy address: 0x0aab2b34caa0: 00 f9 f9 f9 f9 f9 f9 f9 01 f9 f9 f9 f9 f9 f9 f9 0x0aab2b34cab0: 01 f9 f9 f9 f9 f9 f9 f9 00 f9 f9 f9 f9 f9 f9 f9 0x0aab2b34cac0: 00 00 00 00 01 f9 f9 f9 f9 f9 f9 f9 00 00 00 00 0x0aab2b34cad0: 01 f9 f9 f9 f9 f9 f9 f9 00 00 00 f9 f9 f9 f9 f9 0x0aab2b34cae0: 02 f9 f9 f9 f9 f9 f9 f9 00 00 00 f9 f9 f9 f9 f9 =>0x0aab2b34caf0:[04]f9 f9 f9 f9 f9 f9 f9 00 00 00 f9 f9 f9 f9 f9 0x0aab2b34cb00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0aab2b34cb10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0aab2b34cb20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0aab2b34cb30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0aab2b34cb40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Configuration menu - View commit details
-
Copy full SHA for 436968d - Browse repository at this point
Copy the full SHA 436968dView commit details -
Fixed coolreader/crengine/src/lvstring.cpp:127:42: runtime error: sig…
…ned integer overflow: 1775760480 * 31 cannot be represented in type 'int'
Configuration menu - View commit details
-
Copy full SHA for 69676c8 - Browse repository at this point
Copy the full SHA 69676c8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 58381dc - Browse repository at this point
Copy the full SHA 58381dcView commit details -
Text: dont adjust space after consecutive initial marks/dashes
Extend 2504a40 to keep doing it when multiple such initial quotation marks/dashes separated by spaces.
Configuration menu - View commit details
-
Copy full SHA for ec95484 - Browse repository at this point
Copy the full SHA ec95484View commit details -
Update German hyphenation patterns (#431)
New patterns based on dehyph-exptl 0.7.
Configuration menu - View commit details
-
Copy full SHA for 38d3aec - Browse repository at this point
Copy the full SHA 38d3aecView commit details -
Update German hyphenation patterns in android resources.
from cr3gui/data/hyph/german_hyphen.pattern from 38d3aec
Configuration menu - View commit details
-
Copy full SHA for f7d4740 - Browse repository at this point
Copy the full SHA f7d4740View commit details
Commits on Jun 10, 2021
-
Fix a TeX font name, and avoid some clang warning. (And fix 2 other compiler warnings.) DrawStretchedGlyph(): fix synthesized bold italic drawing similarly to c24628d with regular glyph drawing.
Configuration menu - View commit details
-
Copy full SHA for 3ad3314 - Browse repository at this point
Copy the full SHA 3ad3314View commit details -
Fix hyphenation on Armenian and Georgian text (#436)
getCharProp() is nearly no longer used when using libunibreak, but it is still used by lStr_findWordBounds() to detect words to try to hyphenate. It knowing only about latin, greek and cyrillic letters made hyphenation not detect any candidate word in Armenian and Georgian text. So, fallback to use utf8proc to detect letters in any other alphabet so hyphenation (including soft-hyphens) can work. Also detect RTL chars, as we don't want to hyphenate on soft-hyphens in Arabic or Hebrew, as the text rendering code currently can't draw hyphens on the left.
Configuration menu - View commit details
-
Copy full SHA for 2f7e1aa - Browse repository at this point
Copy the full SHA 2f7e1aaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3d3702b - Browse repository at this point
Copy the full SHA 3d3702bView commit details -
* add thirdparty
utf8proc
to repo.* Android: add static library utf8proc to dependencies.
Configuration menu - View commit details
-
Copy full SHA for 9a78fdf - Browse repository at this point
Copy the full SHA 9a78fdfView commit details -
fb2.css: ensure page break after <body>
In case footnotes' <body> don't come with a proper <title> that would have ensured this page break.
Configuration menu - View commit details
-
Copy full SHA for 0ec1371 - Browse repository at this point
Copy the full SHA 0ec1371View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6b0ea70 - Browse repository at this point
Copy the full SHA 6b0ea70View commit details -
Fix ignore occasional space at start of line
Rework 89b0650: ignore the space even if followed by another text node; just don't ignore it for the first line where it could have some purpose (eg. to add some indentation).
Configuration menu - View commit details
-
Copy full SHA for 2b80704 - Browse repository at this point
Copy the full SHA 2b80704View commit details
Commits on Jun 11, 2021
-
lvtinydom.cpp: bool hasInvisibleParent(ldomNode* node): null pointer …
…dereference fixed.
Configuration menu - View commit details
-
Copy full SHA for 2ad425d - Browse repository at this point
Copy the full SHA 2ad425dView commit details -
Direct leak of 64 byte(s) in 4 object(s) allocated from: 00 0x7fe9ec7f4087 in operator new(unsigned long) (/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libasan.so.6+0xb0087) 01 0x55b88bf8ac27 in OpcPart::readRelations() coolreader/crengine/src/lvopc.cpp:73 02 0x55b88bf89a55 in OpcPart::getRelatedPartName(char32_t const*, lString32) coolreader/crengine/src/lvopc.cpp:33 03 0x55b88bc814b3 in fb3ImportContext::openBook() coolreader/crengine/src/fb3fmt.cpp:142 04 0x55b88bc7f3b0 in ImportFb3Document(LVFastRef<LVStream>, ldomDocument*, LVDocViewCallback*, CacheLoadingCallback*) coolreader/crengine/src/fb3fmt.cpp:100 05 0x55b88b98f789 in LVDocView::loadDocumentInt(LVFastRef<LVStream>, bool) coolreader/crengine/src/lvdocview.cpp:4445 06 0x55b88b97ec85 in LVDocView::LoadDocument(char32_t const*, bool) coolreader/crengine/src/lvdocview.cpp:4127 07 0x55b88b452554 in CR3View::loadDocument(QString) coolreader/cr3qt/src/cr3widget.cpp:475 08 0x55b88b427628 in RecentBooksDlg::openBook(int) coolreader/cr3qt/src/recentdlg.cpp:131 09 0x55b88b4262c0 in RecentBooksDlg::on_buttonBox_accepted() coolreader/cr3qt/src/recentdlg.cpp:112 10 0x55b88b5fac7d in RecentBooksDlg::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) coolreader-debug-build/cr3qt/src/moc_recentdlg.cpp:100 11 0x55b88b5fb38d in RecentBooksDlg::qt_metacall(QMetaObject::Call, int, void**) coolreader-debug-build/cr3qt/src/moc_recentdlg.cpp:136 12 0x7fe9eb28968f (/usr/lib64/libQt5Core.so.5+0x2e768f) 13 0x7fe9ebec1d2d (/usr/lib64/libQt5Widgets.so.5+0x320d2d) Indirect leak of 512 byte(s) in 4 object(s) allocated from: 00 0x7fe9ec7f41f7 in operator new[](unsigned long) (/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libasan.so.6+0xb01f7) 01 0x55b88bbb24e8 in LVHashTable<lString32, lString32>::LVHashTable(int) coolreader/crengine/src/../include/lvhashtable.h:107 02 0x55b88bf8ac59 in OpcPart::readRelations() coolreader/crengine/src/lvopc.cpp:73 03 0x55b88bf89a55 in OpcPart::getRelatedPartName(char32_t const*, lString32) coolreader/crengine/src/lvopc.cpp:33 04 0x55b88bc814b3 in fb3ImportContext::openBook() coolreader/crengine/src/fb3fmt.cpp:142 05 0x55b88bc7f3b0 in ImportFb3Document(LVFastRef<LVStream>, ldomDocument*, LVDocViewCallback*, CacheLoadingCallback*) coolreader/crengine/src/fb3fmt.cpp:100 06 0x55b88b98f789 in LVDocView::loadDocumentInt(LVFastRef<LVStream>, bool) coolreader/crengine/src/lvdocview.cpp:4445 07 0x55b88b97ec85 in LVDocView::LoadDocument(char32_t const*, bool) coolreader/crengine/src/lvdocview.cpp:4127 08 0x55b88b452554 in CR3View::loadDocument(QString) coolreader/cr3qt/src/cr3widget.cpp:475 09 0x55b88b427628 in RecentBooksDlg::openBook(int) coolreader/cr3qt/src/recentdlg.cpp:131 10 0x55b88b4262c0 in RecentBooksDlg::on_buttonBox_accepted() coolreader/cr3qt/src/recentdlg.cpp:112 11 0x55b88b5fac7d in RecentBooksDlg::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) coolreader-debug-build/cr3qt/src/moc_recentdlg.cpp:100 12 0x55b88b5fb38d in RecentBooksDlg::qt_metacall(QMetaObject::Call, int, void**) coolreader-debug-build/cr3qt/src/moc_recentdlg.cpp:136 13 0x7fe9eb28968f (/usr/lib64/libQt5Core.so.5+0x2e768f) 14 0x7fe9ebec1d2d (/usr/lib64/libQt5Widgets.so.5+0x320d2d) Indirect leak of 96 byte(s) in 4 object(s) allocated from: 00 0x7fe9ec7f4087 in operator new(unsigned long) (/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libasan.so.6+0xb0087) 01 0x55b88bbb2273 in LVHashTable<lString32, lString32>::set(lString32 const&, lString32) coolreader/crengine/src/../include/lvhashtable.h:174 02 0x55b88bf8aec9 in OpcPart::readRelations() coolreader/crengine/src/lvopc.cpp:77 03 0x55b88bf89a55 in OpcPart::getRelatedPartName(char32_t const*, lString32) coolreader/crengine/src/lvopc.cpp:33 04 0x55b88bc814b3 in fb3ImportContext::openBook() coolreader/crengine/src/fb3fmt.cpp:142 05 0x55b88bc7f3b0 in ImportFb3Document(LVFastRef<LVStream>, ldomDocument*, LVDocViewCallback*, CacheLoadingCallback*) coolreader/crengine/src/fb3fmt.cpp:100 06 0x55b88b98f789 in LVDocView::loadDocumentInt(LVFastRef<LVStream>, bool) coolreader/crengine/src/lvdocview.cpp:4445 07 0x55b88b97ec85 in LVDocView::LoadDocument(char32_t const*, bool) coolreader/crengine/src/lvdocview.cpp:4127 08 0x55b88b452554 in CR3View::loadDocument(QString) coolreader/cr3qt/src/cr3widget.cpp:475 09 0x55b88b427628 in RecentBooksDlg::openBook(int) coolreader/cr3qt/src/recentdlg.cpp:131 10 0x55b88b4262c0 in RecentBooksDlg::on_buttonBox_accepted() coolreader/cr3qt/src/recentdlg.cpp:112 11 0x55b88b5fac7d in RecentBooksDlg::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) coolreader-debug-build/cr3qt/src/moc_recentdlg.cpp:100 12 0x55b88b5fb38d in RecentBooksDlg::qt_metacall(QMetaObject::Call, int, void**) coolreader-debug-build/cr3qt/src/moc_recentdlg.cpp:136 13 0x7fe9eb28968f (/usr/lib64/libQt5Core.so.5+0x2e768f) 14 0x7fe9ebec1d2d (/usr/lib64/libQt5Widgets.so.5+0x320d2d)
Configuration menu - View commit details
-
Copy full SHA for 6f83962 - Browse repository at this point
Copy the full SHA 6f83962View commit details -
Direct leak of 64 byte(s) in 1 object(s) allocated from: 00 0x7ff64a52c087 in operator new(unsigned long) (/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libasan.so.6+0xb0087) 01 0x564d4a6375f6 in tinyNodeCollection::allocTinyElement(ldomNode*, unsigned short, unsigned short) coolreader/crengine/src/lvtinydom.cpp:16430 02 0x564d4a5573aa in ldomDocument::ldomDocument() coolreader/crengine/src/lvtinydom.cpp:4136 03 0x564d4a828137 in LVDocView::createEmptyDocument() coolreader/crengine/src/lvdocview.cpp:4797 04 0x564d4a81461b in LVDocView::loadDocumentInt(LVFastRef<LVStream>, bool) coolreader/crengine/src/lvdocview.cpp:4438 05 0x564d4a804bc5 in LVDocView::LoadDocument(char32_t const*, bool) coolreader/crengine/src/lvdocview.cpp:4127 06 0x564d4a2d8554 in CR3View::loadDocument(QString) coolreader/cr3qt/src/cr3widget.cpp:475 07 0x564d4a2d7d24 in CR3View::loadLastDocument() coolreader/cr3qt/src/cr3widget.cpp:468 08 0x564d4a33e8a8 in MainWindow::showEvent(QShowEvent*) coolreader/cr3qt/src/mainwindow.cpp:467 09 0x7ff649a86947 in QWidget::event(QEvent*) (/usr/lib64/libQt5Widgets.so.5+0x1ad947) 10 0x6150000223ff (<unknown module>)
Configuration menu - View commit details
-
Copy full SHA for 7a8b182 - Browse repository at this point
Copy the full SHA 7a8b182View commit details -
Direct leak of 128 byte(s) in 2 object(s) allocated from: 0 0x7f084fbb2087 in operator new(unsigned long) (/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libasan.so.6+0xb0087) 1 0x563f6643c10f in ldomNode::modify() coolreader/crengine/src/lvtinydom.cpp:19148 2 0x563f66430684 in ldomNode::removeChild(unsigned int) coolreader/crengine/src/lvtinydom.cpp:18643 3 0x563f6635598a in ldomNode::removeChildren(int, int) coolreader/crengine/src/lvtinydom.cpp:5845 4 0x563f663567a4 in ldomNode::autoboxChildren(int, int, bool) coolreader/crengine/src/lvtinydom.cpp:5995 5 0x563f6635d3b0 in ldomNode::initNodeRendMethod() coolreader/crengine/src/lvtinydom.cpp:6842 6 0x563f663632aa in ldomElementWriter::onBodyExit() coolreader/crengine/src/lvtinydom.cpp:7815 7 0x563f66364b37 in ldomElementWriter::~ldomElementWriter() coolreader/crengine/src/lvtinydom.cpp:7955 8 0x563f663d87ca in ldomDocumentWriterFilter::popUpTo(ldomElementWriter*, unsigned short, int) coolreader/crengine/src/lvtinydom.cpp:13895 9 0x563f663de026 in ldomDocumentWriterFilter::AutoOpenClosePop(int, unsigned short) coolreader/crengine/src/lvtinydom.cpp:14126 10 0x563f663ed679 in ldomDocumentWriterFilter::OnTagClose(char32_t const*, char32_t const*, bool) coolreader/crengine/src/lvtinydom.cpp:14657 11 0x563f6652b2e9 in LVXMLParser::Parse() coolreader/crengine/src/lvxml/lvxmlparser.cpp:278 12 0x563f6653df6f in LVHTMLParser::Parse() coolreader/crengine/src/lvxml/lvhtmlparser.cpp:157 13 0x563f66612696 in LVDocView::ParseDocument() coolreader/crengine/src/lvdocview.cpp:5023 14 0x563f66604181 in LVDocView::loadDocumentInt(LVFastRef<LVStream>, bool) coolreader/crengine/src/lvdocview.cpp:4744 15 0x563f665e2bf7 in LVDocView::LoadDocument(char32_t const*, bool) coolreader/crengine/src/lvdocview.cpp:4127 16 0x563f660b6554 in CR3View::loadDocument(QString) coolreader/cr3qt/src/cr3widget.cpp:475 17 0x563f66111b27 in MainWindow::on_actionOpen_triggered() coolreader/cr3qt/src/mainwindow.cpp:249 18 0x563f66250407 in MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) coolreader-debug-build/cr3qt/src/moc_mainwindow.cpp:253 19 0x563f66250f69 in MainWindow::qt_metacall(QMetaObject::Call, int, void**) coolreader-debug-build/cr3qt/src/moc_mainwindow.cpp:295 20 0x7f084e64768f (/usr/lib64/libQt5Core.so.5+0x2e768f) 21 0x7f084f0bdff1 in QAction::triggered(bool) (/usr/lib64/libQt5Widgets.so.5+0x15eff1) Direct leak of 64 byte(s) in 1 object(s) allocated from: 0 0x7f084fbb2087 in operator new(unsigned long) (/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libasan.so.6+0xb0087) 1 0x563f6643c10f in ldomNode::modify() coolreader/crengine/src/lvtinydom.cpp:19148 2 0x563f6642e7e5 in ldomNode::insertChildElement(unsigned int, unsigned short, unsigned short) coolreader/crengine/src/lvtinydom.cpp:18534 3 0x563f6635636f in ldomNode::autoboxChildren(int, int, bool) coolreader/crengine/src/lvtinydom.cpp:5974 4 0x563f6635d3b0 in ldomNode::initNodeRendMethod() coolreader/crengine/src/lvtinydom.cpp:6842 5 0x563f663632aa in ldomElementWriter::onBodyExit() coolreader/crengine/src/lvtinydom.cpp:7815 6 0x563f66364b37 in ldomElementWriter::~ldomElementWriter() coolreader/crengine/src/lvtinydom.cpp:7955 7 0x563f663d87ca in ldomDocumentWriterFilter::popUpTo(ldomElementWriter*, unsigned short, int) coolreader/crengine/src/lvtinydom.cpp:13895 8 0x563f663de026 in ldomDocumentWriterFilter::AutoOpenClosePop(int, unsigned short) coolreader/crengine/src/lvtinydom.cpp:14126 9 0x563f663ed679 in ldomDocumentWriterFilter::OnTagClose(char32_t const*, char32_t const*, bool) coolreader/crengine/src/lvtinydom.cpp:14657 10 0x563f6652b2e9 in LVXMLParser::Parse() coolreader/crengine/src/lvxml/lvxmlparser.cpp:278 11 0x563f6653df6f in LVHTMLParser::Parse() coolreader/crengine/src/lvxml/lvhtmlparser.cpp:157 12 0x563f66612696 in LVDocView::ParseDocument() coolreader/crengine/src/lvdocview.cpp:5023 13 0x563f66604181 in LVDocView::loadDocumentInt(LVFastRef<LVStream>, bool) coolreader/crengine/src/lvdocview.cpp:4744 14 0x563f665e2bf7 in LVDocView::LoadDocument(char32_t const*, bool) coolreader/crengine/src/lvdocview.cpp:4127 15 0x563f660b6554 in CR3View::loadDocument(QString) coolreader/cr3qt/src/cr3widget.cpp:475 16 0x563f66111b27 in MainWindow::on_actionOpen_triggered() coolreader/cr3qt/src/mainwindow.cpp:249 17 0x563f66250407 in MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) coolreader-debug-build/cr3qt/src/moc_mainwindow.cpp:253 18 0x563f66250f69 in MainWindow::qt_metacall(QMetaObject::Call, int, void**) coolreader-debug-build/cr3qt/src/moc_mainwindow.cpp:295 19 0x7f084e64768f (/usr/lib64/libQt5Core.so.5+0x2e768f) 20 0x7f084f0bdff1 in QAction::triggered(bool) (/usr/lib64/libQt5Widgets.so.5+0x15eff1) Direct leak of 64 byte(s) in 1 object(s) allocated from: 0 0x7f084fbb2087 in operator new(unsigned long) (/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libasan.so.6+0xb0087) 1 0x563f66415628 in tinyNodeCollection::allocTinyElement(ldomNode*, unsigned short, unsigned short) coolreader/crengine/src/lvtinydom.cpp:16424 2 0x563f6642eaa9 in ldomNode::insertChildElement(unsigned int, unsigned short, unsigned short) coolreader/crengine/src/lvtinydom.cpp:18538 3 0x563f6635636f in ldomNode::autoboxChildren(int, int, bool) coolreader/crengine/src/lvtinydom.cpp:5974 4 0x563f6635d3b0 in ldomNode::initNodeRendMethod() coolreader/crengine/src/lvtinydom.cpp:6842 5 0x563f663632aa in ldomElementWriter::onBodyExit() coolreader/crengine/src/lvtinydom.cpp:7815 6 0x563f66364b37 in ldomElementWriter::~ldomElementWriter() coolreader/crengine/src/lvtinydom.cpp:7955 7 0x563f663d87ca in ldomDocumentWriterFilter::popUpTo(ldomElementWriter*, unsigned short, int) coolreader/crengine/src/lvtinydom.cpp:13895 8 0x563f663de026 in ldomDocumentWriterFilter::AutoOpenClosePop(int, unsigned short) coolreader/crengine/src/lvtinydom.cpp:14126 9 0x563f663ed679 in ldomDocumentWriterFilter::OnTagClose(char32_t const*, char32_t const*, bool) coolreader/crengine/src/lvtinydom.cpp:14657 10 0x563f6652b2e9 in LVXMLParser::Parse() coolreader/crengine/src/lvxml/lvxmlparser.cpp:278 11 0x563f6653df6f in LVHTMLParser::Parse() coolreader/crengine/src/lvxml/lvhtmlparser.cpp:157 12 0x563f66612696 in LVDocView::ParseDocument() coolreader/crengine/src/lvdocview.cpp:5023 13 0x563f66604181 in LVDocView::loadDocumentInt(LVFastRef<LVStream>, bool) coolreader/crengine/src/lvdocview.cpp:4744 14 0x563f665e2bf7 in LVDocView::LoadDocument(char32_t const*, bool) coolreader/crengine/src/lvdocview.cpp:4127 15 0x563f660b6554 in CR3View::loadDocument(QString) coolreader/cr3qt/src/cr3widget.cpp:475 16 0x563f66111b27 in MainWindow::on_actionOpen_triggered() coolreader/cr3qt/src/mainwindow.cpp:249 17 0x563f66250407 in MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) coolreader-debug-build/cr3qt/src/moc_mainwindow.cpp:253 18 0x563f66250f69 in MainWindow::qt_metacall(QMetaObject::Call, int, void**) coolreader-debug-build/cr3qt/src/moc_mainwindow.cpp:295 19 0x7f084e64768f (/usr/lib64/libQt5Core.so.5+0x2e768f) 20 0x7f084f0bdff1 in QAction::triggered(bool) (/usr/lib64/libQt5Widgets.so.5+0x15eff1) Direct leak of 144 byte(s) in 2 object(s) allocated from: 0 0x7f63aca6a087 in operator new(unsigned long) (/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libasan.so.6+0xb0087) 1 0x55f5f438981a in CCRTable::LookupElem(ldomNode*, int, int) (coolreader-debug-build/cr3qt/cr3+0x1f6681a) 2 0x55f5f4388cb3 in CCRTable::LookupElem(ldomNode*, int, int) (coolreader-debug-build/cr3qt/cr3+0x1f65cb3) 3 0x55f5f43af7f9 in CCRTable::CCRTable(ldomNode*, int, bool, int, int, bool, bool, int, bool) coolreader/crengine/src/lvrend.cpp:2243 4 0x55f5f4310333 in renderTable(LVRendPageContext&, ldomNode*, int, int, int, bool, int, int&, int, bool, bool, bool) coolreader/crengine/src/lvrend.cpp:2276 5 0x55f5f433ff0c in renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, unsigned int) coolreader/crengine/src/lvrend.cpp:7639 6 0x55f5f4341c7b in renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, unsigned int) coolreader/crengine/src/lvrend.cpp:7860 7 0x55f5f43462bc in renderBlockElement(LVRendPageContext&, ldomNode*, int, int, int, int, int, int, int*, unsigned int) coolreader/crengine/src/lvrend.cpp:8393 8 0x55f5f43465cb in renderBlockElement(LVRendPageContext&, ldomNode*, int, int, int, int, int, int, int*) coolreader/crengine/src/lvrend.cpp:8409 9 0x55f5f42d05b0 in LVFormatter::measureText() coolreader/crengine/src/lvtextfm.cpp:2045 10 0x55f5f42eeb05 in LVFormatter::processParagraph(int, int, bool) coolreader/crengine/src/lvtextfm.cpp:3809 11 0x55f5f42f7062 in LVFormatter::splitParagraphs() coolreader/crengine/src/lvtextfm.cpp:4461 12 0x55f5f42f7aad in LVFormatter::format() coolreader/crengine/src/lvtextfm.cpp:4508 13 0x55f5f42aca7d in LFormattedText::Format(unsigned short, unsigned short, int, int, int, bool, BlockFloatFootprint*) coolreader/crengine/src/lvtextfm.cpp:4612 14 0x55f5f4051aa8 in ldomNode::renderFinalBlock(LVRef<LFormattedText>&, RenderRectAccessor*, int, BlockFloatFootprint*) coolreader/crengine/src/lvtinydom.cpp:19074 15 0x55f5f43432c8 in renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, unsigned int) coolreader/crengine/src/lvrend.cpp:8167 16 0x55f5f4341c7b in renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, unsigned int) coolreader/crengine/src/lvrend.cpp:7860 17 0x55f5f4341c7b in renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, unsigned int) coolreader/crengine/src/lvrend.cpp:7860 18 0x55f5f4341c7b in renderBlockElementEnhanced(FlowState*, ldomNode*, int, int, unsigned int) coolreader/crengine/src/lvrend.cpp:7860 19 0x55f5f43462bc in renderBlockElement(LVRendPageContext&, ldomNode*, int, int, int, int, int, int, int*, unsigned int) coolreader/crengine/src/lvrend.cpp:8393 20 0x55f5f43465cb in renderBlockElement(LVRendPageContext&, ldomNode*, int, int, int, int, int, int, int*) coolreader/crengine/src/lvrend.cpp:8409 21 0x55f5f3f627eb in ldomDocument::render(LVRendPageList*, LVDocViewCallback*, int, int, bool, int, LVProtectedFastRef<LVFont>, int, LVFastRef<CRPropAccessor>, int, int) coolreader/crengine/src/lvtinydom.cpp:5259 22 0x55f5f41d7d98 in LVDocView::Render(int, int, LVRendPageList*) coolreader/crengine/src/lvdocview.cpp:2897 23 0x55f5f4189a0f in LVDocView::checkRender() coolreader/crengine/src/lvdocview.cpp:636 24 0x55f5f41e707f in LVDocView::updateBookMarksRanges() coolreader/crengine/src/lvdocview.cpp:3396 25 0x55f5f41f40f5 in LVDocView::restorePosition() coolreader/crengine/src/lvdocview.cpp:3967 26 0x55f5f3ccf365 in CR3View::loadDocument(QString) coolreader/cr3qt/src/cr3widget.cpp:486 27 0x55f5f3ccdd24 in CR3View::loadLastDocument() coolreader/cr3qt/src/cr3widget.cpp:468 28 0x55f5f3d348a8 in MainWindow::showEvent(QShowEvent*) coolreader/cr3qt/src/mainwindow.cpp:467 29 0x7f63abfc4947 in QWidget::event(QEvent*) (/usr/lib64/libQt5Widgets.so.5+0x1ad947) Indirect leak of 896 byte(s) in 28 object(s) allocated from: 0 0x7fd0a64a4a88 in __interceptor_realloc (/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libasan.so.6+0xaea88) 1 0x560452fd10d6 in lxmlAttribute* cr_realloc<lxmlAttribute>(lxmlAttribute*, unsigned long) (coolreader-debug-build/cr3qt/cr3+0x1c890d6) 2 0x560452fab09e in ldomAttributeCollection::set(unsigned short, unsigned short, unsigned int) coolreader/crengine/src/lvtinydom.cpp:3933 3 0x560452f597b9 in ldomNode::setAttributeValue(unsigned short, unsigned short, char32_t const*) coolreader/crengine/src/lvtinydom.cpp:17001 4 0x560453498b0a in fixupMathML coolreader/crengine/src/mathml.cpp:2157 5 0x56045349635c in fixupMathMLRecursive coolreader/crengine/src/mathml.cpp:1737 6 0x560453496321 in fixupMathMLRecursive coolreader/crengine/src/mathml.cpp:1734 7 0x560453496321 in fixupMathMLRecursive coolreader/crengine/src/mathml.cpp:1734 8 0x560453496321 in fixupMathMLRecursive coolreader/crengine/src/mathml.cpp:1734 9 0x560453496321 in fixupMathMLRecursive coolreader/crengine/src/mathml.cpp:1734 10 0x560453496321 in fixupMathMLRecursive coolreader/crengine/src/mathml.cpp:1734 11 0x560453496321 in fixupMathMLRecursive coolreader/crengine/src/mathml.cpp:1734 12 0x560453496321 in fixupMathMLRecursive coolreader/crengine/src/mathml.cpp:1734 13 0x560453496321 in fixupMathMLRecursive coolreader/crengine/src/mathml.cpp:1734 14 0x560453496321 in fixupMathMLRecursive coolreader/crengine/src/mathml.cpp:1734 15 0x56045349612f in fixupMathMLMathElement(ldomNode*) coolreader/crengine/src/mathml.cpp:1708 16 0x560452e9f555 in ldomNode::initNodeRendMethod() coolreader/crengine/src/lvtinydom.cpp:7777 17 0x560452ea023e in ldomElementWriter::onBodyExit() coolreader/crengine/src/lvtinydom.cpp:7819 18 0x560452ea1acb in ldomElementWriter::~ldomElementWriter() coolreader/crengine/src/lvtinydom.cpp:7959 19 0x560452f1575e in ldomDocumentWriterFilter::popUpTo(ldomElementWriter*, unsigned short, int) coolreader/crengine/src/lvtinydom.cpp:13899 20 0x560452f1afba in ldomDocumentWriterFilter::AutoOpenClosePop(int, unsigned short) coolreader/crengine/src/lvtinydom.cpp:14130 21 0x560452f2a60d in ldomDocumentWriterFilter::OnTagClose(char32_t const*, char32_t const*, bool) coolreader/crengine/src/lvtinydom.cpp:14661 22 0x56045306835f in LVXMLParser::Parse() coolreader/crengine/src/lvxml/lvxmlparser.cpp:278 23 0x56045307afe5 in LVHTMLParser::Parse() coolreader/crengine/src/lvxml/lvhtmlparser.cpp:157 24 0x56045314f70c in LVDocView::ParseDocument() coolreader/crengine/src/lvdocview.cpp:5023 25 0x5604531411f7 in LVDocView::loadDocumentInt(LVFastRef<LVStream>, bool) coolreader/crengine/src/lvdocview.cpp:4744 26 0x56045311fc6d in LVDocView::LoadDocument(char32_t const*, bool) coolreader/crengine/src/lvdocview.cpp:4127 27 0x560452bf3554 in CR3View::loadDocument(QString) coolreader/cr3qt/src/cr3widget.cpp:475 28 0x560452bf2d24 in CR3View::loadLastDocument() coolreader/cr3qt/src/cr3widget.cpp:468 29 0x560452c598a8 in MainWindow::showEvent(QShowEvent*) coolreader/cr3qt/src/mainwindow.cpp:467
Configuration menu - View commit details
-
Copy full SHA for 7bc43c3 - Browse repository at this point
Copy the full SHA 7bc43c3View commit details