void LogicSegment::get_surrounding_edges(vector<EdgePair> &dest,
uint64_t origin_sample, float min_length, int sig_index)
{
+ if (origin_sample >= sample_count_)
+ return;
+
// Put the edges vector on the heap, it can become quite big until we can
// use a get_subsampled_edges() implementation that searches backwards
vector<EdgePair>* edges = new vector<EdgePair>;
+ // Get all edges to the left of origin_sample
get_subsampled_edges(*edges, 0, origin_sample, min_length, sig_index, false);
// If we don't specify "first only", the first and last edge are the states
dest.push_back(edges->back());
edges->clear();
+ // Get first edge to the right of origin_sample
get_subsampled_edges(*edges, origin_sample, sample_count_, min_length, sig_index, true);
// "first only" is specified, so nothing needs to be dismissed