From c13226cdf8f309574ce0367693baef7185f5378b Mon Sep 17 00:00:00 2001 From: Rubidium Date: Sat, 15 Mar 2025 12:11:38 +0100 Subject: [PATCH] Codefix: do not leave pointers to stack allocations in globals --- src/newgrf.cpp | 4 ++-- src/viewport.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 36356bc666..0e2a85d0c3 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -9907,8 +9907,8 @@ static void DecodeSpecialSprite(uint8_t *buf, uint num, GrfLoadingStage stage) */ static void LoadNewGRFFileFromFile(GRFConfig &config, GrfLoadingStage stage, SpriteFile &file) { - _cur.file = &file; - _cur.grfconfig = &config; + AutoRestoreBackup cur_file(_cur.file, &file); + AutoRestoreBackup cur_config(_cur.grfconfig, &config); Debug(grf, 2, "LoadNewGRFFile: Reading NewGRF-file '{}'", config.filename); diff --git a/src/viewport.cpp b/src/viewport.cpp index ef78013b7e..78b487a8ef 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -1833,7 +1833,7 @@ void ViewportDoDraw(const Viewport *vp, int left, int top, int right, int bottom dp.zoom = ZOOM_LVL_MIN; dp.width = UnScaleByZoom(dp.width, zoom); dp.height = UnScaleByZoom(dp.height, zoom); - _cur_dpi = &dp; + AutoRestoreBackup cur_dpi(_cur_dpi, &dp); if (vp->overlay != nullptr && vp->overlay->GetCargoMask() != 0 && vp->overlay->GetCompanyMask().Any()) { /* translate to window coordinates */