]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/optimize.cpp
Store a pointer to operator info rather than the token in expressions
[libs/gl.git] / source / glsl / optimize.cpp
index d26c6e2d519179ac531dd2a635c85e605d98e9e8..8cbf24e1be0309a2c8304051cc185d9316836974 100644 (file)
@@ -305,7 +305,7 @@ void ConstantConditionEliminator::visit(Block &block)
 void ConstantConditionEliminator::visit(UnaryExpression &unary)
 {
        if(VariableReference *var = dynamic_cast<VariableReference *>(unary.expression.get()))
-               if(unary.oper=="++" || unary.oper=="--")
+               if(unary.oper->token[1]=='+' || unary.oper->token[1]=='-')
                        variable_values.erase(var->declaration);
 }
 
@@ -441,13 +441,13 @@ void UnusedVariableRemover::visit(MemberAccess &memacc)
 void UnusedVariableRemover::visit(UnaryExpression &unary)
 {
        TraversingVisitor::visit(unary);
-       if(unary.oper=="++" || unary.oper=="--")
+       if(unary.oper->token[1]=='+' || unary.oper->token[1]=='-')
                side_effects = true;
 }
 
 void UnusedVariableRemover::visit(BinaryExpression &binary)
 {
-       if(binary.oper=="[")
+       if(binary.oper->token[0]=='[')
        {
                if(assignment_target)
                        assign_to_subscript = true;