diff options
Diffstat (limited to 'src/mesa/shader/slang/slang_assemble_assignment.c')
-rw-r--r-- | src/mesa/shader/slang/slang_assemble_assignment.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/mesa/shader/slang/slang_assemble_assignment.c b/src/mesa/shader/slang/slang_assemble_assignment.c index a1038671c4..dbcc4bcf9d 100644 --- a/src/mesa/shader/slang/slang_assemble_assignment.c +++ b/src/mesa/shader/slang/slang_assemble_assignment.c @@ -31,6 +31,7 @@ #include "imports.h" #include "slang_assemble.h" #include "slang_storage.h" +#include "slang_error.h" /* * _slang_assemble_assignment() @@ -95,9 +96,9 @@ assign_basic(slang_assemble_ctx * A, slang_storage_type type, GLuint * index, */ dst_addr_loc = size - *index; - if (!slang_assembly_file_push_label2 - (A->file, ty, dst_addr_loc, dst_offset)) - return GL_FALSE; + if (!slang_assembly_file_push_label2(A->file, ty, dst_addr_loc, dst_offset)) + RETURN_NIL(); + *index += _slang_sizeof_type(type); return GL_TRUE; @@ -155,7 +156,7 @@ _slang_assemble_assignment(slang_assemble_ctx * A, const slang_operation * op) GLuint index, size; if (!slang_assembly_typeinfo_construct(&ti)) - return GL_FALSE; + RETURN_OUT_OF_MEMORY(); if (!_slang_typeof_operation(A, op, &ti)) goto end1; @@ -174,6 +175,8 @@ _slang_assemble_assignment(slang_assemble_ctx * A, const slang_operation * op) slang_storage_aggregate_destruct(&agg); end: slang_assembly_typeinfo_destruct(&ti); + if (!result) + RETURN_NIL(); return result; } |