Mesa (master): glsl2: Fixed cloning of ir_call error instructions.

Kenneth Graunke kwg at kemper.freedesktop.org
Sat Sep 18 07:25:06 UTC 2010


Module: Mesa
Branch: master
Commit: 3894fddccc3a6da91513b49142a8f0dbbf8aa448
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3894fddccc3a6da91513b49142a8f0dbbf8aa448

Author: Tilman Sauerbeck <tilman at code-monkey.de>
Date:   Sat Sep 18 01:56:34 2010 +0200

glsl2: Fixed cloning of ir_call error instructions.

Those have the callee field set to the null pointer, so
calling the public constructor will segfault.

Signed-off-by: Tilman Sauerbeck <tilman at code-monkey.de>

---

 src/glsl/ir_clone.cpp |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/glsl/ir_clone.cpp b/src/glsl/ir_clone.cpp
index aa84cf0..18543a3 100644
--- a/src/glsl/ir_clone.cpp
+++ b/src/glsl/ir_clone.cpp
@@ -141,6 +141,9 @@ ir_loop::clone(void *mem_ctx, struct hash_table *ht) const
 ir_call *
 ir_call::clone(void *mem_ctx, struct hash_table *ht) const
 {
+   if (this->type == glsl_type::error_type)
+      return ir_call::get_error_instruction(mem_ctx);
+
    exec_list new_parameters;
 
    foreach_iter(exec_list_iterator, iter, this->actual_parameters) {




More information about the mesa-commit mailing list