Fix Record Options Crash After Changing Theme #957
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Steps to reproduce the crash:
Stacktrace:
The crash occurs here because
DeviceCfg.ChannelToPlayerMap
is nil.The reason is that changing the theme triggers a reloading of the
config.ini
file. InTIni.LoadInputDeviceCfg
, the channel to player map is set to length zero by default, unless defined in theconfig.ini
. Later,TAudioInputProcessor.UpdateInputDeviceConfig
sets its length to the max number of channels supported by the audio device, which is at least 1. This ensures that the array will not be nil.In summary, initializing the device config used in the record options is a two step process:
TIni.LoadInputDeviceCfg
: Read settings fromconfig.ini
into device configTAudioInputProcessor.UpdateInputDeviceConfig
: Fill in the device config with information from actual deviceAfter changing the theme, the current code is only doing 1 above. So, now a call is added to
TAudioInputProcessor.UpdateInputDeviceConfig
which fully initializes the device config and fixes the crash.