wined3d: Fix NULL dereference in generator function.

This commit is contained in:
Ivan Gyurdiev 2006-06-06 23:40:16 -04:00 committed by Alexandre Julliard
parent 4d66615bbb
commit 83a9666f9c
1 changed files with 9 additions and 9 deletions

View File

@ -623,6 +623,9 @@ void generate_base_shader(
shader_reg_maps reg_maps;
/* Initialize current parsing state */
SHADER_OPCODE_ARG hw_arg;
hw_arg.shader = iface;
hw_arg.buffer = buffer;
This->baseShader.parse_state.current_row = 0;
/* First pass: figure out which temporary and texture registers are used */
@ -662,22 +665,19 @@ void generate_base_shader(
/* Read opcode */
opcode_token = *pToken++;
curOpcode = shader_get_opcode(iface, opcode_token);
hw_fct = (wined3d_settings.shader_mode ==
SHADER_GLSL ? curOpcode->hw_glsl_fct : curOpcode->hw_fct);
hw_fct = (curOpcode == NULL)? NULL:
(wined3d_settings.shader_mode == SHADER_GLSL)?
curOpcode->hw_glsl_fct : curOpcode->hw_fct;
/* Unknown opcode and its parameters */
if (NULL == curOpcode) {
FIXME("Unrecognized opcode: token=%08lX\n", opcode_token);
pToken += shader_skip_unrecognized(iface, pToken);
if (NULL == curOpcode) {
FIXME("Unrecognized opcode: token=%08lX\n", opcode_token);
pToken += shader_skip_unrecognized(iface, pToken);
/* If a generator function is set for current shader target, use it */
} else if (hw_fct != NULL) {
SHADER_OPCODE_ARG hw_arg;
hw_arg.shader = iface;
hw_arg.opcode = curOpcode;
hw_arg.buffer = buffer;
if (curOpcode->num_params > 0) {