summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_assemble_assignment.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/shader/slang/slang_assemble_assignment.c')
-rw-r--r--src/mesa/shader/slang/slang_assemble_assignment.c11
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;
}