mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 11:32:43 +00:00 
			
		
		
		
	Kernel: Switch singletons to use new Singleton class
MemoryManager cannot use the Singleton class because MemoryManager::initialize is called before the global constructors are run. That caused the Singleton to be re-initialized, causing it to create another MemoryManager instance. Fixes #3226
This commit is contained in:
		
							parent
							
								
									ba6e4fb77f
								
							
						
					
					
						commit
						d89582880e
					
				
					 46 changed files with 221 additions and 170 deletions
				
			
		|  | @ -27,6 +27,7 @@ | |||
| #include <AK/FlyString.h> | ||||
| #include <AK/HashTable.h> | ||||
| #include <AK/Optional.h> | ||||
| #include <AK/Singleton.h> | ||||
| #include <AK/String.h> | ||||
| #include <AK/StringUtils.h> | ||||
| #include <AK/StringView.h> | ||||
|  | @ -47,12 +48,11 @@ struct FlyStringImplTraits : public AK::Traits<StringImpl*> { | |||
|     } | ||||
| }; | ||||
| 
 | ||||
| static AK::Singleton<HashTable<StringImpl*, FlyStringImplTraits>> s_table; | ||||
| 
 | ||||
| static HashTable<StringImpl*, FlyStringImplTraits>& fly_impls() | ||||
| { | ||||
|     static HashTable<StringImpl*, FlyStringImplTraits>* table; | ||||
|     if (!table) | ||||
|         table = new HashTable<StringImpl*, FlyStringImplTraits>; | ||||
|     return *table; | ||||
|     return *s_table; | ||||
| } | ||||
| 
 | ||||
| void FlyString::did_destroy_impl(Badge<StringImpl>, StringImpl& impl) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Tom
						Tom