glsl: Add a constructor for ast_type_specifier. 46/7446/1
authorMatt Turner <mattst88@gmail.com>
Tue, 25 Jun 2013 04:38:30 +0000 (21:38 -0700)
committerMatt Turner <mattst88@gmail.com>
Fri, 12 Jul 2013 03:58:58 +0000 (20:58 -0700)
Reviewed-by: Chad Versace <chad.versace@linux.intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/glsl/ast.h

index b86f97b..3bb33c5 100644 (file)
@@ -469,6 +469,22 @@ public:
 
 class ast_type_specifier : public ast_node {
 public:
+   /**
+    * \brief Make a shallow copy of an ast_type_specifier, specifying array
+    *        fields.
+    *
+    * Use only if the objects are allocated from the same context and will not
+    * be modified. Zeros the inherited ast_node's fields.
+    */
+   ast_type_specifier(const ast_type_specifier *that, bool is_array,
+                      ast_expression *array_size)
+      : ast_node(), type_name(that->type_name), structure(that->structure),
+        is_array(is_array), array_size(array_size), precision(that->precision),
+        is_precision_statement(that->is_precision_statement)
+   {
+      /* empty */
+   }
+
    /** Construct a type specifier from a type name */
    ast_type_specifier(const char *name) 
       : type_name(name), structure(NULL),