Bug 1746711 Part 2: Ensure the enqueued surface has a color space. r=gfx-reviewers...
[gecko.git] / intl / components / src / DateTimePatternGenerator.cpp
blob4362061172ce0075b98507cbabbac199ad1f53ba
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"
6 namespace mozilla::intl {
8 DateTimePatternGenerator::~DateTimePatternGenerator() {
9 // The mGenerator will not exist when the DateTimePatternGenerator is being
10 // moved.
11 if (mGenerator) {
12 udatpg_close(mGenerator.GetMut());
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));
25 return MakeUnique<DateTimePatternGenerator>(generator);
28 DateTimePatternGenerator::DateTimePatternGenerator(
29 DateTimePatternGenerator&& other) noexcept
30 : mGenerator(other.mGenerator.GetMut()) {
31 other.mGenerator = nullptr;
34 DateTimePatternGenerator& DateTimePatternGenerator::operator=(
35 DateTimePatternGenerator&& other) noexcept {
36 if (this == &other) {
37 return *this;
40 if (mGenerator) {
41 udatpg_close(mGenerator.GetMut());
43 mGenerator = other.mGenerator.GetMut();
44 other.mGenerator = nullptr;
46 return *this;
49 } // namespace mozilla::intl