GUI: fix overflow in timers
these timer variables are used with SDL_GetPerformanceCounter, which returns a uint64_t. subtracting these can overflow, which is UB.
This commit is contained in:
parent
68ee5167ee
commit
3f329e464d
|
@ -3411,7 +3411,7 @@ bool FurnaceGUI::detectOutOfBoundsWindow(SDL_Rect& failing) {
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DECLARE_METRIC(_n) \
|
#define DECLARE_METRIC(_n) \
|
||||||
int __perfM##_n;
|
uint64_t __perfM##_n;
|
||||||
|
|
||||||
#define MEASURE_BEGIN(_n) \
|
#define MEASURE_BEGIN(_n) \
|
||||||
__perfM##_n=SDL_GetPerformanceCounter();
|
__perfM##_n=SDL_GetPerformanceCounter();
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include "imgui_impl_sdl2.h"
|
#include "imgui_impl_sdl2.h"
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
#include <fftw3.h>
|
#include <fftw3.h>
|
||||||
|
#include <stdint.h>
|
||||||
#include <initializer_list>
|
#include <initializer_list>
|
||||||
#include <future>
|
#include <future>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
@ -2164,10 +2165,10 @@ class FurnaceGUI {
|
||||||
ImVec2 orderScrollRealOrigin;
|
ImVec2 orderScrollRealOrigin;
|
||||||
ImVec2 dragMobileMenuOrigin;
|
ImVec2 dragMobileMenuOrigin;
|
||||||
|
|
||||||
int layoutTimeBegin, layoutTimeEnd, layoutTimeDelta;
|
uint64_t layoutTimeBegin, layoutTimeEnd, layoutTimeDelta;
|
||||||
int renderTimeBegin, renderTimeEnd, renderTimeDelta;
|
uint64_t renderTimeBegin, renderTimeEnd, renderTimeDelta;
|
||||||
int drawTimeBegin, drawTimeEnd, drawTimeDelta;
|
uint64_t drawTimeBegin, drawTimeEnd, drawTimeDelta;
|
||||||
int eventTimeBegin, eventTimeEnd, eventTimeDelta;
|
uint64_t eventTimeBegin, eventTimeEnd, eventTimeDelta;
|
||||||
|
|
||||||
FurnaceGUIPerfMetric perfMetrics[64];
|
FurnaceGUIPerfMetric perfMetrics[64];
|
||||||
int perfMetricsLen;
|
int perfMetricsLen;
|
||||||
|
|
Loading…
Reference in a new issue