ElementMeta.cpp 727 B

123456789101112131415161718192021222324252627282930
  1. #include "ElementMeta.h"
  2. namespace Rml {
  3. ControlledLifetimeResource<ElementMetaPool> ElementMetaPool::element_meta_pool;
  4. void ElementMetaPool::Initialize()
  5. {
  6. element_meta_pool.InitializeIfEmpty();
  7. }
  8. void ElementMetaPool::Shutdown()
  9. {
  10. const int num_objects = element_meta_pool->pool.GetNumAllocatedObjects();
  11. if (num_objects == 0)
  12. {
  13. element_meta_pool.Shutdown();
  14. }
  15. else
  16. {
  17. Log::Message(Log::LT_ERROR,
  18. "Element meta pool not empty on shutdown, %d object(s) leaked. This will likely lead to a crash when element is destroyed. Ensure that "
  19. "no Rml::Element objects are kept alive in user space at the end of Rml::Shutdown.",
  20. num_objects);
  21. RMLUI_ERROR;
  22. element_meta_pool.Leak();
  23. }
  24. }
  25. } // namespace Rml