Review: broken getmessage (issue199069)


Reviewers: ,

In the same way as my last review for string ops, if getmessage had all
uniform args but was called from within a varying conditional, it could
fill in only the first value of the result.

Please review this at

Affected files:

Index: src/liboslexec/opmessage.cpp
--- src/liboslexec/opmessage.cpp (revision 563)
+++ src/liboslexec/opmessage.cpp (working copy)
@@ -135,6 +135,7 @@
bool varying = (Name.is_varying());
exec->adjust_varying (Result, varying);
exec->adjust_varying (Val, varying);
+ varying |= Result.is_varying(); // adjust in case we're in a conditional

VaryingRef<int> result ((int *), Result.step());
VaryingRef<ustring> name ((ustring *), Name.step());

Join to automatically receive all group messages.