2017-04-11 15:58 GMT+02:00 Paul Gofman <gofmanp(a)gmail.com>:
Signed-off-by: Paul Gofman <gofmanp(a)gmail.com>
static struct d3dx_parameter *get_valid_parameter(struct d3dx9_base_effect *base, D3DXHANDLE parameter) { - struct d3dx_parameter **handle_param = (struct d3dx_parameter **)parameter; + struct d3dx_parameter *handle_param = (struct d3dx_parameter *)parameter;
- if (handle_param >= base->param_table.table && handle_param < base->param_table.table + base->param_table.count) - return *handle_param; + if (handle_param && !strncmp(handle_param->magic_string, parameter_magic_string, + sizeof(parameter_magic_string))) + return handle_param;
return get_parameter_by_name(base, NULL, parameter); }
Not new and somewhat separate from the patch, although it gets "more interesting" with the new handles scheme: we should probably avoid the call to get_parameter_by_name() if the effect was created with the D3DXFX_LARGEADDRESSAWARE flag, returning NULL instead. Worth a test I think.