Opened 11 years ago
Closed 11 years ago
#11725 closed Bug Report - General (fixed)
When using Qt painter, displaying some notifications will crash
Reported by: | JYA | Owned by: | stuartm |
---|---|---|---|
Priority: | blocker | Milestone: | 0.27 |
Component: | MythTV - General | Version: | Master Head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
with the use of AirPlay? and notifications, a notification showing the album artwork and various metadata about the song being played is displayed...
All works well using the OpenGL painter, but it fails when using the Qt painter.
Behaviour is different depending on the platform used.
On Ubutu 12.04 it crashes almost immediately as the artwork image is being displayed. On mac with Qt 4.8,4, the image isn't displayed and it shows a black spot where the image should be. It will crash later however in MythQtPainter::DeletePixmaps? when the notification screen disappear from the display.
The common problem is the MythUIMage was created using a QImage and not a path or a URL to the image. Directly a QImage.
The MythUIImage got an image assigned as follow:
// We don't have a path to the image, but the image itself MythImage *img = new MythImage(m_artworkImage->GetPainter()); img->Assign(m_image); m_artworkImage->SetImage(img); img->DecrRef();
where m_artworkImage is the MythUIImage obtained with:
m_artworkImage = dynamic_cast<MythUIImage*>(GetChild("image"));
see: https://github.com/MythTV/mythtv/blob/master/mythtv/libs/libmythui/mythnotificationcenter.cpp#L322
Attached are the two backtraces: one on ubuntu 12.04, the other on mac
Attachments (3)
Change History (6)
Changed 11 years ago by
Attachment: | qtpaintercrash.log added |
---|
Changed 11 years ago by
Attachment: | qpaintermaccrash.log added |
---|
mac backtrace (crash is line 1855 of that backtrace)
comment:1 Changed 11 years ago by
using the arclight theme, the crash is in the same place as the first backtrace. Using tinted glass it's the second one
comment:2 Changed 11 years ago by
qpaintermaccrash2.log is more detailed as it's running using Qt compiled in debug mode.
crash is in GUI thread line 1616.
The pixmap given to painter->drawPixmap() is 0x0 (retrieved using *(qim->GetPixmap?())
comment:3 Changed 11 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
ubuntu backtrace