| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "ppapi/shared_impl/compositor_layer_data.h" |
| |
| namespace ppapi { |
| |
| namespace { |
| |
| template<typename T> |
| void Copy(scoped_ptr<T>* a, const scoped_ptr<T>& b) { |
| if (b) { |
| if (!(*a)) |
| a->reset(new T()); |
| **a = *b; |
| } else { |
| a->reset(); |
| } |
| } |
| |
| } // namespace |
| |
| const CompositorLayerData& CompositorLayerData::operator=( |
| const CompositorLayerData& other) { |
| DCHECK(other.is_null() || other.is_valid()); |
| |
| common = other.common; |
| Copy(&color, other.color); |
| Copy(&texture, other.texture); |
| Copy(&image, other.image); |
| |
| return *this; |
| } |
| |
| } // namespace ppapi |