diff options
Diffstat (limited to 'games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fix-729002.patch')
-rw-r--r-- | games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fix-729002.patch | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fix-729002.patch b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fix-729002.patch new file mode 100644 index 000000000000..0f0a9a672874 --- /dev/null +++ b/games-roguelike/dwarf-fortress/files/dwarf-fortress-0.47.05-segfault-fix-729002.patch @@ -0,0 +1,49 @@ +Fixes a bug due to OpenAL soft crashing the game on startup: https://www.bay12games.com/dwarves/mantisbt/view.php?id=11564 +Fixes a bug regarding an infinite loop on anything higher than -O1: https://www.bay12games.com/dwarves/mantisbt/view.php?id=11564 + +https://bugs.gentoo.org/729002 + +diff --git a/g_src/enabler.cpp b/g_src/enabler.cpp +--- a/g_src/enabler.cpp ++++ b/g_src/enabler.cpp +@@ -590,6 +590,10 @@ int enablerst::loop(string cmdline) { + + // Clean up graphical resources + delete renderer; ++ ++ return 0; + } + + void enablerst::override_grid_size(int x, int y) { +diff --git a/g_src/music_and_sound_openal.cpp b/g_src/music_and_sound_openal.cpp +--- a/g_src/music_and_sound_openal.cpp ++++ b/g_src/music_and_sound_openal.cpp +@@ -250,7 +250,11 @@ void musicsoundst::deinitsound() { + alDeleteBuffers(1, &buffer); + } + // Deinit OpenAL +- alcMakeContextCurrent(NULL); ++ ++ //alcMakeContextCurrent(NULL); ++ + alcDestroyContext(context); + alcCloseDevice(device); + +@@ -480,7 +484,9 @@ static bool init_openal() { + + void alEnable( ALenum capability ) { _alEnable(capability); } + void alDisable( ALenum capability ) { _alDisable(capability); } +-ALboolean alIsEnabled( ALenum capability ) { _alIsEnabled(capability); } ++ALboolean alIsEnabled( ALenum capability ) { return _alIsEnabled(capability); } + const ALchar* alGetString( ALenum param ) { return _alGetString(param); } + void alGetBooleanv( ALenum param, ALboolean* data ) { _alGetBooleanv(param, data); } + void alGetIntegerv( ALenum param, ALint* data ) { _alGetIntegerv(param, data); } +@@ -490,7 +496,9 @@ ALboolean alGetBoolean( ALenum param ) { return _alGetBoolean(param); } + ALint alGetInteger( ALenum param ) { return _alGetInteger(param); } + ALfloat alGetFloat( ALenum param ) { return _alGetFloat(param); } + ALdouble alGetDouble( ALenum param ) { return _alGetDouble(param); } +-ALenum alGetError( void ) { _alGetError(); } ++ALenum alGetError( void ) { return _alGetError(); } + ALboolean alIsExtensionPresent( const ALchar* extname ) { return _alIsExtensionPresent(extname); } + void* alGetProcAddress( const ALchar* fname ) { return _alGetProcAddress(fname); } + ALenum alGetEnumValue( const ALchar* ename ) { return _alGetEnumValue(ename); } |