Skip to content

User code plugin bug

I think I found bug in user code plugin. The plugin loads data into events_uc multimap:

// Loading configuration for data
PC_tree_t on_data = PC_get(conf, ".on_data");
int nb_data = len(on_data, 0);
for (int map_id = 0; map_id < nb_data; map_id++) {
	string data_name = to_string(PC_get(on_data, "{%d}", map_id));
	PC_tree_t data = PC_get(on_data, "<%d>", map_id);
	int nb_call = len(data, 0);
	for (int call_id = 0; call_id < nb_call; ++call_id) {
		events_uc.emplace(data_name, Trigger {to_string(PC_get(data, "{%d}", call_id)), PC_get(data, "<%d>", call_id)});
	}
}

and also when calling data function plugin search in events_uc multimap:

void data(const char* name, Ref) override
{
	auto&& dtrange = events_uc.equal_range(name);
	// invoke all required functions
	for (auto dtit = dtrange.first; dtit != dtrange.second; ++dtit) {
		dtit->second.call(context());
	}
}
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information