summaryrefslogtreecommitdiffstats
path: root/src/glsl
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2010-08-24 10:01:40 -0600
committerBrian Paul <[email protected]>2010-08-24 10:01:44 -0600
commit2eb8b2d3bb68cef1d3fc431debe1b18f6c017aeb (patch)
treee06be65c90be40c4bc515b280afce4d522638217 /src/glsl
parentf3ec111b0af9d268e6b3c6d3226a448d19e45d8c (diff)
glsl2: move constructor into .cpp file to work around compiler bug
Fixes fd.o bug 29770 The refcount==0 assertion only failed on some systems. One example being 32-bit Linux with gcc 4.4.4.
Diffstat (limited to 'src/glsl')
-rw-r--r--src/glsl/ir_variable_refcount.cpp12
-rw-r--r--src/glsl/ir_variable_refcount.h9
2 files changed, 13 insertions, 8 deletions
diff --git a/src/glsl/ir_variable_refcount.cpp b/src/glsl/ir_variable_refcount.cpp
index 66147279bef..7d39abb3682 100644
--- a/src/glsl/ir_variable_refcount.cpp
+++ b/src/glsl/ir_variable_refcount.cpp
@@ -34,6 +34,18 @@
#include "ir_variable_refcount.h"
#include "glsl_types.h"
+
+// constructor
+variable_entry::variable_entry(ir_variable *var)
+{
+ this->var = var;
+ assign = NULL;
+ assigned_count = 0;
+ declaration = false;
+ referenced_count = 0;
+}
+
+
variable_entry *
ir_variable_refcount_visitor::get_variable_entry(ir_variable *var)
{
diff --git a/src/glsl/ir_variable_refcount.h b/src/glsl/ir_variable_refcount.h
index 059ea097a62..8b43bad71f8 100644
--- a/src/glsl/ir_variable_refcount.h
+++ b/src/glsl/ir_variable_refcount.h
@@ -36,14 +36,7 @@
class variable_entry : public exec_node
{
public:
- variable_entry(ir_variable *var)
- {
- this->var = var;
- assign = NULL;
- referenced_count = 0;
- assigned_count = 0;
- declaration = false;
- }
+ variable_entry(ir_variable *var);
ir_variable *var; /* The key: the variable's pointer. */
ir_assignment *assign; /* An assignment to the variable, if any */