wined3d: Fix NULL dereference in generator function.
This commit is contained in:
parent
4d66615bbb
commit
83a9666f9c
|
@ -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,8 +665,9 @@ 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) {
|
||||||
|
@ -673,11 +677,7 @@ void generate_base_shader(
|
||||||
/* 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) {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue