glsl: Remove unused ir_loop_jump::loop pointer.
authorKenneth Graunke <kenneth@whitecape.org>
Sun, 1 Jul 2012 23:21:32 +0000 (16:21 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 2 Jul 2012 18:08:59 +0000 (11:08 -0700)
Commit 0c005bd7 intended to make ir_loop_jump::mode public, but also
accidentally added a new pointer to the enclosing loop.  Furthermore, it
tried to initialize the new field by adding "this->loop = loop;" to the
constructor, but since there is no loop parameter, this only initialized
the field to itself---so it will likely be a garbage pointer.

A lot of code, such as lower_jumps, allocates new loop jumps without
setting this field appropriately, so any uses would probably just crash.

Thankfully, there were none, so we can just delete the field.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=51574
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/glsl/ir.h

index 505d2e74b6e933e02ccbac3e53dc5e8789d67390..b54e2f2e0c1ea854cc9bc9d3326e0185069cd1d6 100644 (file)
@@ -1245,7 +1245,6 @@ public:
    {
       this->ir_type = ir_type_loop_jump;
       this->mode = mode;
-      this->loop = loop;
    }
 
    virtual ir_loop_jump *clone(void *mem_ctx, struct hash_table *) const;
@@ -1269,9 +1268,6 @@ public:
 
    /** Mode selector for the jump instruction. */
    enum jump_mode mode;
-private:
-   /** Loop containing this break instruction. */
-   ir_loop *loop;
 };
 
 /**