← Back to team overview

kicad-developers team mailing list archive

Attn Wayne: Optimizing SCH_PLUGIN for component selection

 

Hi all and Wayne,

Since the addition of SCH_PLUGIN, enumerating all symbols (done by the
component selector) has become dog slow on Windows and macOS. I've
tracked this down to the excursion from an alias list to a list of
strings and back to an alias list, because the only functions SCH_PLUGIN
provides to access the aliases are by name.

This is why the component selector now takes literally five seconds to
appear on Windows.

I have a patch in progress that adds parallels to these API functions
that directly populate a list of LIB_ALIASes rather than their names.
I'm in the process of testing it on all three platforms. It is a fairly
minor addition, but I don't want to touch SCH_PLUGIN without permission
since Wayne is working on it.

Wayne, are you okay with a patch that adds SCH_LEGACY_PLUGIN::
EnumerateSymbolLib( std::vector<LIB_ALIAS*>&, ... )? This is the only
place it touches the plugin API, plus a couple places in PART_LIB and
several in the component chooser.

-- 
Chris


Follow ups