common/wall_clock: Add virtual destructors
From -fsanitize=address, this code wasn't calling the proper destructor. Adding virtual destructors for each inherited class and the base class fixes this bug. While we are at it, mark the functions as final.
This commit is contained in:
		
							parent
							
								
									09609dd50e
								
							
						
					
					
						commit
						771a9c21cc
					
				| @ -15,7 +15,7 @@ namespace Common { | ||||
| using base_timer = std::chrono::steady_clock; | ||||
| using base_time_point = std::chrono::time_point<base_timer>; | ||||
| 
 | ||||
| class StandardWallClock : public WallClock { | ||||
| class StandardWallClock final : public WallClock { | ||||
| public: | ||||
|     StandardWallClock(u64 emulated_cpu_frequency, u64 emulated_clock_frequency) | ||||
|         : WallClock(emulated_cpu_frequency, emulated_clock_frequency, false) { | ||||
|  | ||||
| @ -13,6 +13,8 @@ namespace Common { | ||||
| 
 | ||||
| class WallClock { | ||||
| public: | ||||
|     virtual ~WallClock() = default; | ||||
| 
 | ||||
|     /// Returns current wall time in nanoseconds
 | ||||
|     [[nodiscard]] virtual std::chrono::nanoseconds GetTimeNS() = 0; | ||||
| 
 | ||||
|  | ||||
| @ -12,7 +12,7 @@ | ||||
| namespace Common { | ||||
| 
 | ||||
| namespace X64 { | ||||
| class NativeClock : public WallClock { | ||||
| class NativeClock final : public WallClock { | ||||
| public: | ||||
|     NativeClock(u64 emulated_cpu_frequency, u64 emulated_clock_frequency, u64 rtsc_frequency); | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 ReinUsesLisp
						ReinUsesLisp