Hi,

As asked in the bug report below: is it necessary to handle this situation with 
an assert/abort, instead of simply returning (with whatever error the void 
function in question can return)?

Thanks,
René

----------  Forwarded Message  ----------

Subject: [Qt bugreports] (QTBUG-46505) assertion failure (=> crash) in 
harfbuzz-shaper
Date: Friday June 05 2015, 17:12:15
From: René Bertin (via JIRA) <[email protected]>
To: [email protected]

        René Bertin created an issue
 
Qt /  QTBUG-46505
assertion failure (=> crash) in harfbuzz-shaper
Issue Type:      Bug
Affects Versions:        4.8.7
Assignee:       Thiago Macieira
Components:      Core: Other
Created:         05/Jun/15 5:12 PM
Environment:    
OS X 10.9.5 with Qt 4.8.7 built through a custom MacPorts port
Priority:        Not Evaluated
Reporter:       René Bertin
I've run twice in succession into an assertion failure in harfbuzz-shaper.cpp 
line 484 . Sadly I cannot determine what combination of text and font cause the 
issue.
Is it necessary to abort here, or are there more graceful ways to handle the 
error?
I'm using the harfbuzz library from MacPorts, version 0.9.40 .
Code Type:       X86-64 (Native)
Parent Process:  tcsh [95718]
Responsible:     Terminal [936]
User ID:         505

Date/Time:       2015-06-05 18:47:31.627 +0200
OS Version:      Mac OS X 10.9.5 (13F1077)
Report Version:  11
Anonymous UUID:  64B814D9-356F-6F85-8341-E17C1354A330

Sleep/Wake UUID: 69ABB6DD-3D80-4B02-9FCF-EF5D156F2919

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
Assertion failed: (glyph_pos == item->num_glyphs), function 
HB_HeuristicSetGlyphAttributes, file 
../3rdparty/harfbuzz/src/harfbuzz-shaper.cpp, line 484.
 

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib              0x00007fff8dcee292 __kill + 10
1   libkdeui.5.dylib                    0x0000000106a72706 
KCrash::defaultCrashHandler(int) + 326 (kcrash.cpp:352)
2   libsystem_platform.dylib            0x00007fff865665aa _sigtramp + 26
3   ???                                 000000000000000000 0 + 0
4   libsystem_c.dylib                   0x00007fff91d85b1a abort + 125
5   libsystem_c.dylib                   0x00007fff91d4f9bf __assert_rtn + 321
6   QtCore                              0x0000000108206fee 
HB_HeuristicSetGlyphAttributes + 1102
7   QtCore                              0x0000000108207092 HB_BasicShape + 82 
(harfbuzz-shaper.cpp:618)
8   QtCore                              0x00000001082082b1 HB_ShapeItem + 49 
(harfbuzz-shaper.cpp:1420)
9   QtGui                               0x0000000107228709 
QTextEngine::shapeTextWithHarfbuzz(int) const + 3177 (qtextengine.cpp:1342)
10  QtGui                               0x0000000107229b7a 
QTextEngine::shapeText(int) const + 186 (qtextengine.cpp:924)
11  QtGui                               0x0000000107229ab0 
QTextEngine::shape(int) const + 576 (qtextengine.cpp:1452)
12  QtGui                               0x000000010722d4f9 
QTextEngine::width(int, int) const + 537 (qtextengine.cpp:1687)
13  QtGui                               0x000000010723016d 
QTextEngine::elidedText(Qt::TextElideMode, QFixed const&, int) const + 461 
(qtextengine.cpp:2518)
14  QtGui                               0x000000010720d7eb 
QFontMetrics::elidedText(QString const&, Qt::TextElideMode, int, int) const + 
683 (qtextengine_p.h:653)
15  libmessagelist.4.dylib              0x0000000115db1e56 
paint_left_aligned_elided_text(QString const&, 
MessageList::Core::Theme::ContentItem*, QPainter*, int&, int, int&, 
Qt::LayoutDirection, QFont const&) + 118
16  libmessagelist.4.dylib              0x0000000115daee1e 
MessageList::Core::ThemeDelegate::paint(QPainter*, QStyleOptionViewItem const&, 
QModelIndex const&) const + 22494
17  QtGui                               0x00000001074cf275 
QTreeView::drawRow(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) 
const + 3813 (qtreeview.cpp:1685)
18  QtGui                               0x00000001074cd2f3 
QTreeView::drawTree(QPainter*, QRegion const&) const + 931 (qtreeview.cpp:1438)
19  QtGui                               0x00000001074cce8a 
QTreeView::paintEvent(QPaintEvent*) + 346 (qabstractitemview_p.h:182)
20  QtGui                               0x000000010708141e 
QWidget::event(QEvent*) + 1198 (qwidget.cpp:8546)
21  QtGui                               0x000000010739c92d 
QFrame::event(QEvent*) + 45 (qframe.cpp:557)
22  QtGui                               0x0000000107415f9c 
QAbstractScrollArea::viewportEvent(QEvent*) + 108 (qabstractscrollarea.cpp:1043)
23  QtGui                               0x000000010748e0a4 
QAbstractItemView::viewportEvent(QEvent*) + 1108 (qabstractitemview.cpp:1644)
24  QtGui                               0x00000001074ccc1a 
QTreeView::viewportEvent(QEvent*) + 218 (qtreeview.cpp:1252)
25  QtGui                               0x0000000107416775 
QAbstractScrollAreaFilter::eventFilter(QObject*, QEvent*) + 37 
(qabstractscrollarea_p.h:116)
26  QtCore                              0x000000010829f3ec 
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 124 
(qcoreapplication.cpp:1065)
27  QtGui                               0x0000000107031bcb 
QApplicationPrivate::notify_helper(QObject*, QEvent*) + 235 
(qapplication.cpp:4561)
28  QtGui                               0x0000000107034b7d 
QApplication::notify(QObject*, QEvent*) + 7693 (qapplication.cpp:4530)
29  QtCore                              0x000000010829f0c6 
QCoreApplication::notifyInternal(QObject*, QEvent*) + 118 
(qcoreapplication.cpp:968)
30  QtGui                               0x000000010707cb90 
QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, 
QPainter*, QWidgetBackingStore*) + 1984 (qwidget.cpp:5601)
31  QtGui                               0x00000001071f5dd9 
QWidgetBackingStore::sync() + 3321 (qbackingstore.cpp:1367)
32  QtGui                               0x0000000107075c7f 
QWidgetPrivate::syncBackingStore() + 239 (qwidget.cpp:1894)
33  QtGui                               0x0000000107081749 
QWidget::event(QEvent*) + 2009 (qwidget.cpp:8693)
34  QtGui                               0x00000001073b4fb1 
QMainWindow::event(QEvent*) + 993 (qmainwindow.cpp:1478)
35  libkdeui.5.dylib                    0x0000000106b3058a 
KXmlGuiWindow::event(QEvent*) + 26 (kxmlguiwindow.cpp:126)
36  QtGui                               0x0000000107031bdb 
QApplicationPrivate::notify_helper(QObject*, QEvent*) + 251 
(qapplication.cpp:4565)
37  QtGui                               0x0000000107034b7d 
QApplication::notify(QObject*, QEvent*) + 7693 (qapplication.cpp:4530)
38  QtCore                              0x000000010829f0c6 
QCoreApplication::notifyInternal(QObject*, QEvent*) + 118 
(qcoreapplication.cpp:968)
39  QtCore                              0x000000010829fc2e 
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 686 
(qcoreapplication.h:231)
40  com.apple.CoreFoundation            0x00007fff911925b1 
__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
41  com.apple.CoreFoundation            0x00007fff91183c62 
__CFRunLoopDoSources0 + 242
42  com.apple.CoreFoundation            0x00007fff911833ef __CFRunLoopRun + 831
43  com.apple.CoreFoundation            0x00007fff91182e75 CFRunLoopRunSpecific 
+ 309
44  com.apple.HIToolbox                 0x00007fff8f138a0d 
RunCurrentEventLoopInMode + 226
45  com.apple.HIToolbox                 0x00007fff8f1387b7 
ReceiveNextEventCommon + 479
46  com.apple.HIToolbox                 0x00007fff8f1385bc 
_BlockUntilNextEventMatchingListInModeWithFilter + 65
47  com.apple.AppKit                    0x00007fff8c47624e _DPSNextEvent + 1434
48  com.apple.AppKit                    0x00007fff8c47589b -[NSApplication 
nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
49  com.apple.AppKit                    0x00007fff8c46999c -[NSApplication run] 
+ 553
50  QtGui                               0x0000000106fe6a7b 
QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 2059
51  QtCore                              0x000000010829c45f 
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 495 (qglobal.h:2434)
52  QtCore                              0x000000010829f677 
QCoreApplication::exec() + 199 (qcoreapplication.cpp:1227)
53  kontact                             0x00000001049309ef main + 4175
54  libdyld.dylib                       0x00007fff91ef75fd start + 1
        Add Comment
 
This message was sent by Atlassian JIRA (v6.3.9#6339-sha1:46fa261)      


-----------------------------------------
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to