tor-browser

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

DateTimePatternGenerator.cpp (1398B)


      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 #include "mozilla/intl/DateTimePatternGenerator.h"
      5 
      6 namespace mozilla::intl {
      7 
      8 DateTimePatternGenerator::~DateTimePatternGenerator() {
      9  // The mGenerator will not exist when the DateTimePatternGenerator is being
     10  // moved.
     11  if (mGenerator) {
     12    udatpg_close(mGenerator.GetMut());
     13  }
     14 }
     15 
     16 /* static */
     17 Result<UniquePtr<DateTimePatternGenerator>, ICUError>
     18 DateTimePatternGenerator::TryCreate(const char* aLocale) {
     19  UErrorCode status = U_ZERO_ERROR;
     20  UDateTimePatternGenerator* generator =
     21      udatpg_open(IcuLocale(aLocale), &status);
     22  if (U_FAILURE(status)) {
     23    return Err(ToICUError(status));
     24  }
     25  return MakeUnique<DateTimePatternGenerator>(generator);
     26 };
     27 
     28 DateTimePatternGenerator::DateTimePatternGenerator(
     29    DateTimePatternGenerator&& other) noexcept
     30    : mGenerator(other.mGenerator.GetMut()) {
     31  other.mGenerator = nullptr;
     32 }
     33 
     34 DateTimePatternGenerator& DateTimePatternGenerator::operator=(
     35    DateTimePatternGenerator&& other) noexcept {
     36  if (this == &other) {
     37    return *this;
     38  }
     39 
     40  if (mGenerator) {
     41    udatpg_close(mGenerator.GetMut());
     42  }
     43  mGenerator = other.mGenerator.GetMut();
     44  other.mGenerator = nullptr;
     45 
     46  return *this;
     47 }
     48 
     49 }  // namespace mozilla::intl