diff --git a/include/opendrive_signal.h b/include/opendrive_signal.h index df959debd5ff491496ec3adbad618957a1206d81..cce3f20913797f18a78252c181b7fb39e6c62eaf 100644 --- a/include/opendrive_signal.h +++ b/include/opendrive_signal.h @@ -23,7 +23,7 @@ class COpendriveSignal double scale_factor; protected: void load(signals::signal_type &signal_info,COpendriveRoadSegment *segment); - void update_references(std::map<COpendriveRoadSegment *,COpendriveRoadSegment *> &segment_refs); + void update_references(segment_up_ref_t &segment_refs); void set_scale_factor(double scale); public: COpendriveSignal(); diff --git a/src/opendrive_signal.cpp b/src/opendrive_signal.cpp index 76f401590d7b3b3cb7cb9f0d569673b12d86d33b..d5d202a90d141197bcff5c8555d1da1c85ae036b 100644 --- a/src/opendrive_signal.cpp +++ b/src/opendrive_signal.cpp @@ -48,9 +48,10 @@ void COpendriveSignal::load(signals::signal_type &signal_info,COpendriveRoadSegm this->segment=segment; } -void COpendriveSignal::update_references(std::map<COpendriveRoadSegment *,COpendriveRoadSegment *> &segment_refs) +void COpendriveSignal::update_references(segment_up_ref_t &segment_refs) { - this->segment=segment_refs[this->segment]; + if(segment_refs.find(this->segment)!=segment_refs.end()) + this->segment=segment_refs[this->segment]; } void COpendriveSignal::set_scale_factor(double scale)