FIX: object params variant crash

Change-Id: Ia67b98c29a0cc97f8479911ffdefb942cb6c751f
Jira: none
(cherry picked from commit 8bf65c0963d1ee39bba12f67f33177d4ac6d6a60)
This commit is contained in:
chunmao.guo 2024-12-06 14:05:50 +08:00 committed by Noisyfox
parent 2a35173b8c
commit 660d2ee686
4 changed files with 26 additions and 7 deletions

View file

@ -453,10 +453,12 @@ void ConfigBase::apply_only(const ConfigBase &other, const t_config_option_keys
// This is only possible if other is of DynamicConfig type.
if (auto n = opt_key.find('#'); n != std::string::npos) {
auto opt_key2 = opt_key.substr(0, n);
auto my_opt2 = dynamic_cast<ConfigOptionVectorBase*>(this->option(opt_key2, true));
auto my_opt2 = dynamic_cast<ConfigOptionVectorBase*>(this->option(opt_key2));
auto other_opt = other.option(opt_key2);
if (my_opt2 == nullptr && other_opt)
my_opt2 = dynamic_cast<ConfigOptionVectorBase*>(other_opt->clone());
if (my_opt2) {
int index = std::atoi(opt_key.c_str() + n + 1);
auto other_opt = other.option(opt_key2);
if (other_opt)
my_opt2->set_at(other_opt, index, index);
continue;