_EFF_PositionDeinit doesn’t reset the position_channels counter and should look
like this:
void _Eff_PositionDeinit(void)
{
int i;
if (pos_args_array) {
for (i = 0; i < position_channels; i++)
free(pos_args_array[i]);
free(pos_args_array);
pos_args_array = NULL;
}
position_channels = 0;
if (pos_args_global) {
free(pos_args_global);
pos_args_global = NULL;
}
}