| 1234567891011121314151617181920212223242526272829303132333435363738 |
- /*
- This file is part of Telegram Desktop,
- the official desktop application for the Telegram messaging service.
- For license and copyright information please follow this link:
- https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
- */
- #include "data/data_abstract_structure.h"
- #include "base/never_freed_pointer.h"
- namespace Data {
- namespace {
- using DataStructures = OrderedSet<AbstractStructure**>;
- base::NeverFreedPointer<DataStructures> structures;
- } // namespace
- namespace internal {
- void registerAbstractStructure(AbstractStructure **p) {
- structures.createIfNull();
- structures->insert(p);
- }
- } // namespace internal
- void clearGlobalStructures() {
- if (!structures) return;
- for (auto &p : *structures) {
- delete (*p);
- *p = nullptr;
- }
- structures.clear();
- }
- } // namespace Data
|