mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader/hlsl: Store the fields of struct parse_if_body as hlsl_block pointers.
This commit is contained in:
parent
8fa1750206
commit
9ccba35dde
Notes:
Alexandre Julliard
2023-06-28 23:03:54 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/230
@ -85,8 +85,8 @@ struct parse_function
|
||||
|
||||
struct parse_if_body
|
||||
{
|
||||
struct list *then_block;
|
||||
struct list *else_block;
|
||||
struct hlsl_block *then_block;
|
||||
struct hlsl_block *else_block;
|
||||
};
|
||||
|
||||
enum parse_assign_op
|
||||
@ -5811,19 +5811,16 @@ selection_statement:
|
||||
KW_IF '(' expr ')' if_body
|
||||
{
|
||||
struct hlsl_ir_node *condition = node_from_list($3);
|
||||
struct hlsl_block then_block, else_block;
|
||||
struct hlsl_ir_node *instr;
|
||||
|
||||
hlsl_block_init(&then_block);
|
||||
list_move_tail(&then_block.instrs, $5.then_block);
|
||||
hlsl_block_init(&else_block);
|
||||
if ($5.else_block)
|
||||
list_move_tail(&else_block.instrs, $5.else_block);
|
||||
vkd3d_free($5.then_block);
|
||||
vkd3d_free($5.else_block);
|
||||
|
||||
if (!(instr = hlsl_new_if(ctx, condition, &then_block, &else_block, &@1)))
|
||||
if (!(instr = hlsl_new_if(ctx, condition, $5.then_block, $5.else_block, &@1)))
|
||||
{
|
||||
destroy_block($5.then_block);
|
||||
destroy_block($5.else_block);
|
||||
YYABORT;
|
||||
}
|
||||
destroy_block($5.then_block);
|
||||
destroy_block($5.else_block);
|
||||
if (condition->data_type->dimx > 1 || condition->data_type->dimy > 1)
|
||||
{
|
||||
struct vkd3d_string_buffer *string;
|
||||
@ -5840,13 +5837,13 @@ selection_statement:
|
||||
if_body:
|
||||
statement
|
||||
{
|
||||
$$.then_block = $1;
|
||||
$$.then_block = list_to_block($1);
|
||||
$$.else_block = NULL;
|
||||
}
|
||||
| statement KW_ELSE statement
|
||||
{
|
||||
$$.then_block = $1;
|
||||
$$.else_block = $3;
|
||||
$$.then_block = list_to_block($1);
|
||||
$$.else_block = list_to_block($3);
|
||||
}
|
||||
|
||||
loop_statement:
|
||||
|
Loading…
x
Reference in New Issue
Block a user