// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

#include "vm/memory_region.h"

namespace dart {

void MemoryRegion::CopyFrom(uword offset, const MemoryRegion& from) const {
  ASSERT(from.pointer() != nullptr && from.size() > 0);
  ASSERT(this->size() >= from.size());
  ASSERT(offset <= this->size() - from.size());
  memmove(reinterpret_cast<void*>(start() + offset), from.pointer(),
          from.size());
}

}  // namespace dart
