diff options
author | Eric Anholt <[email protected]> | 2010-08-30 14:42:27 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2010-08-31 11:34:29 -0700 |
commit | 7406898441bfec937840d575500fb6d43192310d (patch) | |
tree | a1882739a356c4c3db53197a9e9dcf1cc4ce808f /src/mesa/program | |
parent | 1eea96326fa652029e3898e104c715e5464f11e4 (diff) |
ir_to_mesa: Set up our instruction nodes with zeroed data.
cond_update wasn't being set by emit_op3, leading to valgrind
complaints, and failures in several piglit tests when built with
clang.
Diffstat (limited to 'src/mesa/program')
-rw-r--r-- | src/mesa/program/ir_to_mesa.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index 516c991855d..768c11e3bf6 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -105,6 +105,18 @@ extern ir_to_mesa_src_reg ir_to_mesa_undef; class ir_to_mesa_instruction : public exec_node { public: + /* Callers of this talloc-based new need not call delete. It's + * easier to just talloc_free 'ctx' (or any of its ancestors). */ + static void* operator new(size_t size, void *ctx) + { + void *node; + + node = talloc_zero_size(ctx, size); + assert(node != NULL); + + return node; + } + enum prog_opcode op; ir_to_mesa_dst_reg dst_reg; ir_to_mesa_src_reg src_reg[3]; |