[Development] Qt 5.2 Alpha possible issue with V4 and exposed Qml properties
Paul Lemire
paullemire at hotmail.com
Fri Oct 11 17:29:18 CEST 2013
Hello everyone,
I've been working for quite some time on a Qt and QtQuick project and I
tried the 5.2 alpha release as soon as it got out.
However, my project which didn't have any issues running with any previous
5.* release of Qt now crashes with the alpha.
My project is composed of a core application that load Qt plugins through
shared libraries. Those shared libraries are C++ backend that are exposed
to the Qml Engine so as to be used by a matching QtQuick object loaded by
a QtQuick loader.
Basically, foreach of my libraries I do :
context->setContextProperty(library_name, library_intance);
and each library has a associated qml file that is loaded through a loader
and can then call the backend as it has been exposed to the Qml Engine
(using library_name.my_method).
This C++ backend is mainly used to access web services, sql storage and
manipulate ListModels (a custom subclass of QAbstractListModel) which are
then shown with QtQuick ListView(s).
After debugging for quite some time, it appears that when one of those
libraries tries to access and manipulate a ListModel that is bound to a
qml ListView or Repeater, it produces a SIGSEGV. Debugging with gdb, I
found out that from one call to another my model instance would suddenly
be marked as inacessible for no obvious reason.
On a side note, those models are not registered as qml properties but are
returned as QObject* in a Q_INVOKABLE methods of the backend. If I want to
use the model in a ListView, I then do :
ListView
{
model : library_name.getMyModel();
....
}
I suspect this might be coming from the new V4 engine but I've been
looking at JIRA and so far no one as a similar issue. I see several
qv4methods in the stack calls preceding the segfault so as V4 is making
its debuts with the alpha I can't help but think the issue as something to
do with it...
Anyway I cannot submit a bug report yet as I don't really know what the
issue is.
I'd be happy to hear your advice if any of you has encountered some
strange behavior like this one with the 5.2 alpha releases
Thanks and have a nice week end
Paul Lemire
More information about the Development
mailing list