mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 06:40:05 +00:00 
			
		
		
		
	Add proper bounds checks and update usage of references in marker_manager.cpp
This commit is contained in:
		
							parent
							
								
									534b679d63
								
							
						
					
					
						commit
						250a535fc3
					
				
					 1 changed files with 12 additions and 5 deletions
				
			
		|  | @ -199,17 +199,24 @@ size_t MarkerManager::marker_count() | ||||||
|    return p->markerRecords_.size(); |    return p->markerRecords_.size(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // TODO deal with out of range/not found
 | std::optional<types::MarkerInfo> MarkerManager::get_marker(size_t index) | ||||||
| const types::MarkerInfo& MarkerManager::get_marker(size_t index) |  | ||||||
| { | { | ||||||
|    std::shared_ptr<MarkerManager::Impl::MarkerRecord> markerRecord = |    if (index >= p->markerRecords_.size()) | ||||||
|  |    { | ||||||
|  |       return {}; | ||||||
|  |    } | ||||||
|  |    std::shared_ptr<MarkerManager::Impl::MarkerRecord>& markerRecord = | ||||||
|       p->markerRecords_[index]; |       p->markerRecords_[index]; | ||||||
|    return markerRecord->toMarkerInfo(); |    return markerRecord->toMarkerInfo(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void MarkerManager::set_marker(size_t index, const types::MarkerInfo& marker) | void MarkerManager::set_marker(size_t index, const types::MarkerInfo& marker) | ||||||
| { | { | ||||||
|    std::shared_ptr<MarkerManager::Impl::MarkerRecord> markerRecord = |    if (index >= p->markerRecords_.size()) | ||||||
|  |    { | ||||||
|  |       return; | ||||||
|  |    } | ||||||
|  |    std::shared_ptr<MarkerManager::Impl::MarkerRecord>& markerRecord = | ||||||
|       p->markerRecords_[index]; |       p->markerRecords_[index]; | ||||||
|    markerRecord->markerInfo_ = marker; |    markerRecord->markerInfo_ = marker; | ||||||
|    Q_EMIT MarkersUpdated(); |    Q_EMIT MarkersUpdated(); | ||||||
|  | @ -241,7 +248,7 @@ void MarkerManager::move_marker(size_t from, size_t to) | ||||||
|    { |    { | ||||||
|       return; |       return; | ||||||
|    } |    } | ||||||
|    std::shared_ptr<MarkerManager::Impl::MarkerRecord> markerRecord = |    std::shared_ptr<MarkerManager::Impl::MarkerRecord>& markerRecord = | ||||||
|       p->markerRecords_[from]; |       p->markerRecords_[from]; | ||||||
| 
 | 
 | ||||||
|    if (from == to) {} |    if (from == to) {} | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 AdenKoperczak
						AdenKoperczak