tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

nsHtml5DependentUTF16Buffer.cpp (1060B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 
      5 #include "nsHtml5DependentUTF16Buffer.h"
      6 
      7 nsHtml5DependentUTF16Buffer::nsHtml5DependentUTF16Buffer(
      8    const nsAString& aToWrap)
      9    : nsHtml5UTF16Buffer(const_cast<char16_t*>(aToWrap.BeginReading()),
     10                         aToWrap.Length()) {
     11  MOZ_COUNT_CTOR(nsHtml5DependentUTF16Buffer);
     12 }
     13 
     14 nsHtml5DependentUTF16Buffer::~nsHtml5DependentUTF16Buffer() {
     15  MOZ_COUNT_DTOR(nsHtml5DependentUTF16Buffer);
     16 }
     17 
     18 already_AddRefed<nsHtml5OwningUTF16Buffer>
     19 nsHtml5DependentUTF16Buffer::FalliblyCopyAsOwningBuffer() {
     20  int32_t newLength = getEnd() - getStart();
     21  RefPtr<nsHtml5OwningUTF16Buffer> newObj =
     22      nsHtml5OwningUTF16Buffer::FalliblyCreate(newLength);
     23  if (!newObj) {
     24    return nullptr;
     25  }
     26  newObj->setEnd(newLength);
     27  memcpy(newObj->getBuffer(), getBuffer() + getStart(),
     28         newLength * sizeof(char16_t));
     29  return newObj.forget();
     30 }