// 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
