I narrowed it down to adding edges for overlap plugins - this wouldn't
cause an immediate crash, but would result in one later. Changing the
graph containers from vectors to lists fixed this (I noted that the docs
say that the lists have better iterator/descriptor stability).
Unfortunately, lists require extra work for saving and sorting, since
there's stuff missing in the backend (which is stupid, IMHO, behaviour
shouldn't depend on template parameters...), so those have been
commented out for now.
I'd also assumed that all plugins listed would exist, forgetting that
BOSS just adds error messages and doesn't fail at that stage, so added
checks for that. Also figured out why adding edges to the graph was
crashing: it doesn't seem to like connecting to the last vertex in the
graph. Haven't figured out where I'm going wrong beyond that though.
Also moved graph-related stuff into a new h/cpp file pair, and fixed the
boss::master_sort function. For some unknown reason, an exception gets
thrown after roughly 180 operations on the graph object, ie. near the
end of the out-edges addition for the first plugin in the list.