blob: d15a93f05b4f45f00366e3121317e5070d7714bc [file] [log] [blame]
// Copyright 2021 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "crash-reporter/crossystem.h"
#include <base/no_destructor.h>
#include <libcrossystem/crossystem.h>
namespace {
crossystem::Crossystem* GetDefaultInstance() {
static base::NoDestructor<crossystem::CrossystemImpl> instance;
return instance.get();
}
crossystem::Crossystem* shared_instance = nullptr;
} // namespace
namespace crossystem {
crossystem::Crossystem* GetInstance() {
if (shared_instance == nullptr)
shared_instance = GetDefaultInstance();
return shared_instance;
}
crossystem::Crossystem* ReplaceInstanceForTest(
crossystem::Crossystem* instance) {
auto original_instance =
shared_instance == nullptr ? GetDefaultInstance() : shared_instance;
shared_instance = instance;
return original_instance;
}
} // namespace crossystem