[Qt-creator] PluginManagerPrivate::loadQueue question

Szyk Cech szykcech at spoko.pl
Sun Sep 23 19:12:51 CEST 2018


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 at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/qt-creator




More information about the Qt-creator mailing list