Hi again!

Please correct me if I am wrong, but:

Instead of this declaration:

bool PluginManagerPrivate::loadQueue(PluginSpec *spec, QList<PluginSpec *> &queue,
        QList<PluginSpec *> &circularityCheckQueue)

correct will be:

bool PluginManagerPrivate::loadQueue(PluginSpec *spec, QList<PluginSpec *> &queue,
        QList<PluginSpec *> circularityCheckQueue)

It shouldn't be any impact on performance (besides copy on write) as QList is one pointer based template class. But what is important passing by value circularityCheckQueue allow as to build function invocation tree instead simple list when it is passed by reference. This will happen because QList has feature "copy on write" which is required in this approach (otherwise we will have faltered tree to simple list where all branches are treated as one). Then we check all branches in the recurrention tree separately. Passing circularityCheckQueue by reference build virtual list instead tree, so I think it disallow dependency mentioned in my previous message.


W dniu 23.09.2018 o 16:13, Szyk Cech pisze:
Hi all!

I study carefully Qt Creator plugin system. I just read PluginManagerPrivate::loadQueue functions and thought about it for a while and my question arise:

Is it true:

PluginManagerPrivate::loadQueue can return false (mean fail) if we have 2 (or more) plugins which depend on other plugin simultaneously?

In e.g.:

I have plugin0 which depend on plugins plugin1 and plugin2 and these two both based on plugin3. Then PluginManagerPrivate::loadQueue fail and report circulation dependencies?

Why is this wrong - I think it should be possible load such plugins (plugin1 and plugin2 after 3 and then load plugin0). Is this not fesible?!?

Or maybe I am wrong and this is not the case...

best regards

Szyk Cech

_______________________________________________
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator

_______________________________________________
Qt-creator mailing list
Qt-creator@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qt-creator

Reply via email to