1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "flutter/fml/memory/weak_ptr_internal.h"
6
7#include "flutter/fml/logging.h"
8
9namespace fml {
10namespace internal {
11
12WeakPtrFlag::WeakPtrFlag() : is_valid_(true) {}
13
14WeakPtrFlag::~WeakPtrFlag() {
15 // Should be invalidated before destruction.
16 FML_DCHECK(!is_valid_);
17}
18
19void WeakPtrFlag::Invalidate() {
20 // Invalidation should happen exactly once.
21 FML_DCHECK(is_valid_);
22 is_valid_ = false;
23}
24
25} // namespace internal
26} // namespace fml
27