[PATCH 5/7] d3dx9: Fail effect creation when shader parameter evaluator creation fails.

Paul Gofman gofmanp at gmail.com
Tue Jul 11 03:26:39 CDT 2017


On 07/10/2017 11:47 PM, Matteo Bruni wrote:
> 2017-07-06 13:15 GMT+02:00 Paul Gofman <gofmanp at gmail.com>:
>
>> @@ -6099,8 +6100,9 @@ static HRESULT d3dx9_parse_resource(struct d3dx9_base_effect *base, const char *
>>                       {
>>                           if (FAILED(hr = d3dx9_create_object(base, object)))
>>                               return hr;
>> -                        d3dx_create_param_eval(base, object->data, object->size, param->type,
>> -                                &param->param_eval, get_version_counter_ptr(base));
>> +                        if (FAILED(hr = d3dx_create_param_eval(base, object->data, object->size, param->type,
>> +                                &param->param_eval, get_version_counter_ptr(base))))
>> +                            return hr;
>>                       }
>>                       break;
>>
>> @@ -6138,8 +6140,11 @@ static HRESULT d3dx9_parse_resource(struct d3dx9_base_effect *base, const char *
> It looks like you missed another call to d3dx_create_param_eval() in
> between these two.
>
>
I did not exactly missed them, I was adding failure return for shader 
constants evaluators only. Those ones missed are for FXLCs and array 
selectors, which I left as is following our previous convention not to 
deny effect creation if some parameter evaluator creation fails. Doing 
this the same way probably makes more sense though. I will add an error 
return to all parameter evaluator creation and rename the patch accordingly.




More information about the wine-devel mailing list