Files
tubestation/toolkit/components/places/nsPlacesMacros.h
Butkovits Atila eee822b6b3 Backed out 4 changesets (bug 1928020) causing bustages at WaitForTopicSpinner. CLOSED TREE
Backed out changeset b13265489a7a (bug 1928020)
Backed out changeset bbf8b7208dc4 (bug 1928020)
Backed out changeset 4473a69a450c (bug 1928020)
Backed out changeset 0ce2a98a7a53 (bug 1928020)
2025-01-15 18:04:46 +02:00

24 lines
1.6 KiB
C

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#define PLACES_FACTORY_SINGLETON_IMPLEMENTATION(_className, _sInstance) \
_className* _className::_sInstance = nullptr; \
\
already_AddRefed<_className> _className::GetSingleton() { \
if (_sInstance) { \
RefPtr<_className> ret = _sInstance; \
return ret.forget(); \
} \
_sInstance = new _className(); \
RefPtr<_className> ret = _sInstance; \
if (NS_FAILED(_sInstance->Init())) { \
/* Null out ret before _sInstance so the destructor doesn't assert */ \
ret = nullptr; \
_sInstance = nullptr; \
return nullptr; \
} \
return ret.forget(); \
}