summaryrefslogtreecommitdiffstats
path: root/games/snes9x/fix_config_file_segfaults.diff
diff options
context:
space:
mode:
Diffstat (limited to 'games/snes9x/fix_config_file_segfaults.diff')
-rw-r--r--games/snes9x/fix_config_file_segfaults.diff28
1 files changed, 28 insertions, 0 deletions
diff --git a/games/snes9x/fix_config_file_segfaults.diff b/games/snes9x/fix_config_file_segfaults.diff
new file mode 100644
index 0000000000..b67f14befd
--- /dev/null
+++ b/games/snes9x/fix_config_file_segfaults.diff
@@ -0,0 +1,28 @@
+diff --git a/gtk/src/gtk_config.cpp b/gtk/src/gtk_config.cpp
+index bf06de7..1ccd4f2 100644
+--- a/gtk/src/gtk_config.cpp
++++ b/gtk/src/gtk_config.cpp
+@@ -463,9 +463,9 @@ int Snes9xConfig::load_config_file ()
+ return -1;
+
+ std::string none;
+-#define inbool(key, var) var = cf.GetBool (key)
+-#define inint(key, var) var = cf.GetInt (key)
+-#define infloat(key, var) var = atof (cf.GetString (key, none).c_str())
++#define inbool(key, var) { if (cf.Exists (key)) var = cf.GetBool (key); }
++#define inint(key, var) { if (cf.Exists(key)) var = cf.GetInt (key); }
++#define infloat(key, var) { if (cf.Exists(key)) var = atof (cf.GetString (key, none).c_str()); }
+ #define instr(key, var) strcpy (var, cf.GetString (key, none).c_str())
+
+ #undef z
+@@ -683,8 +683,8 @@ int Snes9xConfig::load_config_file ()
+ hires_effect = CLAMP (hires_effect, 0, 2);
+ Settings.DynamicRateLimit = CLAMP (Settings.DynamicRateLimit, 1, 1000);
+ Settings.SuperFXClockMultiplier = CLAMP (Settings.SuperFXClockMultiplier, 50, 400);
+- ntsc_scanline_intensity = MAX (ntsc_scanline_intensity, 4);
+- scanline_filter_intensity = MAX (scanline_filter_intensity, 3);
++ ntsc_scanline_intensity = CLAMP (ntsc_scanline_intensity, 0, 4);
++ scanline_filter_intensity = CLAMP (scanline_filter_intensity, 0, 3);
+
+ return 0;
+ }