Re: [PATCH 5/7] d3dx9: Fail effect creation when shader parameter evaluator creation fails.
2017-07-06 13:15 GMT+02:00 Paul Gofman <gofmanp(a)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, - ¶m->param_eval, get_version_counter_ptr(base)); + if (FAILED(hr = d3dx_create_param_eval(base, object->data, object->size, param->type, + ¶m->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.
On 07/10/2017 11:47 PM, Matteo Bruni wrote:
2017-07-06 13:15 GMT+02:00 Paul Gofman <gofmanp(a)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, - ¶m->param_eval, get_version_counter_ptr(base)); + if (FAILED(hr = d3dx_create_param_eval(base, object->data, object->size, param->type, + ¶m->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.
participants (2)
-
Matteo Bruni -
Paul Gofman