glsl: modify ir_clone to use memcpy
authorTapani Pälli <tapani.palli@intel.com>
Thu, 12 Dec 2013 15:13:32 +0000 (17:13 +0200)
committerTapani Pälli <tapani.palli@intel.com>
Thu, 12 Dec 2013 15:28:13 +0000 (17:28 +0200)
Patch copies the whole data structure at once instead of
assigning individual variables.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Paul Berry <stereotype441@gmail.com>
src/glsl/ir_clone.cpp

index 09353a0a8693d4d508385062bff0de94cea3b177..4e5cf68caa5293ff24c676048a99bab43d1e6139 100644 (file)
@@ -50,27 +50,10 @@ ir_variable::clone(void *mem_ctx, struct hash_table *ht) const
       memcpy(var->max_ifc_array_access, this->max_ifc_array_access,
              this->interface_type->length * sizeof(unsigned));
    }
-   var->data.read_only = this->data.read_only;
-   var->data.centroid = this->data.centroid;
-   var->data.sample = this->data.sample;
-   var->data.invariant = this->data.invariant;
-   var->data.interpolation = this->data.interpolation;
-   var->data.location = this->data.location;
-   var->data.index = this->data.index;
-   var->data.binding = this->data.binding;
-   var->data.atomic.buffer_index = this->data.atomic.buffer_index;
-   var->data.atomic.offset = this->data.atomic.offset;
+
+   memcpy(&var->data, &this->data, sizeof(var->data));
+
    var->warn_extension = this->warn_extension;
-   var->data.origin_upper_left = this->data.origin_upper_left;
-   var->data.pixel_center_integer = this->data.pixel_center_integer;
-   var->data.explicit_location = this->data.explicit_location;
-   var->data.explicit_index = this->data.explicit_index;
-   var->data.explicit_binding = this->data.explicit_binding;
-   var->data.has_initializer = this->data.has_initializer;
-   var->data.depth_layout = this->data.depth_layout;
-   var->data.assigned = this->data.assigned;
-   var->data.how_declared = this->data.how_declared;
-   var->data.used = this->data.used;
 
    var->num_state_slots = this->num_state_slots;
    if (this->state_slots) {