1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "ppapi/shared_impl/compositor_layer_data.h" 6 7 namespace ppapi { 8 9 namespace { 10 11 template<typename T> Copy(scoped_ptr<T> * a,const scoped_ptr<T> & b)12void Copy(scoped_ptr<T>* a, const scoped_ptr<T>& b) { 13 if (b) { 14 if (!(*a)) 15 a->reset(new T()); 16 **a = *b; 17 } else { 18 a->reset(); 19 } 20 } 21 22 } // namespace 23 operator =(const CompositorLayerData & other)24const CompositorLayerData& CompositorLayerData::operator=( 25 const CompositorLayerData& other) { 26 DCHECK(other.is_null() || other.is_valid()); 27 28 common = other.common; 29 Copy(&color, other.color); 30 Copy(&texture, other.texture); 31 Copy(&image, other.image); 32 33 return *this; 34 } 35 36 } // namespace ppapi 37