Commit 83a9666f authored by Ivan Gyurdiev's avatar Ivan Gyurdiev Committed by Alexandre Julliard

wined3d: Fix NULL dereference in generator function.

parent 4d66615b
...@@ -623,6 +623,9 @@ void generate_base_shader( ...@@ -623,6 +623,9 @@ void generate_base_shader(
shader_reg_maps reg_maps; shader_reg_maps reg_maps;
/* Initialize current parsing state */ /* Initialize current parsing state */
SHADER_OPCODE_ARG hw_arg;
hw_arg.shader = iface;
hw_arg.buffer = buffer;
This->baseShader.parse_state.current_row = 0; This->baseShader.parse_state.current_row = 0;
/* First pass: figure out which temporary and texture registers are used */ /* First pass: figure out which temporary and texture registers are used */
...@@ -662,22 +665,19 @@ void generate_base_shader( ...@@ -662,22 +665,19 @@ void generate_base_shader(
/* Read opcode */ /* Read opcode */
opcode_token = *pToken++; opcode_token = *pToken++;
curOpcode = shader_get_opcode(iface, opcode_token); curOpcode = shader_get_opcode(iface, opcode_token);
hw_fct = (wined3d_settings.shader_mode == hw_fct = (curOpcode == NULL)? NULL:
SHADER_GLSL ? curOpcode->hw_glsl_fct : curOpcode->hw_fct); (wined3d_settings.shader_mode == SHADER_GLSL)?
curOpcode->hw_glsl_fct : curOpcode->hw_fct;
/* Unknown opcode and its parameters */ /* Unknown opcode and its parameters */
if (NULL == curOpcode) { if (NULL == curOpcode) {
FIXME("Unrecognized opcode: token=%08lX\n", opcode_token); FIXME("Unrecognized opcode: token=%08lX\n", opcode_token);
pToken += shader_skip_unrecognized(iface, pToken); pToken += shader_skip_unrecognized(iface, pToken);
/* If a generator function is set for current shader target, use it */ /* If a generator function is set for current shader target, use it */
} else if (hw_fct != NULL) { } else if (hw_fct != NULL) {
SHADER_OPCODE_ARG hw_arg;
hw_arg.shader = iface;
hw_arg.opcode = curOpcode; hw_arg.opcode = curOpcode;
hw_arg.buffer = buffer;
if (curOpcode->num_params > 0) { if (curOpcode->num_params > 0) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment