-
- const PoolImpl::TrackedLocaleIds & PoolImpl::trackedLocaleIds() const
- {
- if ( ! _trackedLocaleIdsPtr )
- {
- _trackedLocaleIdsPtr.reset( new TrackedLocaleIds );
-
- const base::SetTracker<LocaleSet> & localesTracker( _requestedLocalesTracker );
- TrackedLocaleIds & localeIds( *_trackedLocaleIdsPtr );
-
- // Add current locales+fallback except for added ones
- for ( Locale lang: localesTracker.current() )
- {
- if ( localesTracker.wasAdded( lang ) )
- continue;
- for ( ; lang; lang = lang.fallback() )
- { localeIds.current().insert( IdString(lang) ); }
- }
-
- // Add added locales+fallback except they are already in current
- for ( Locale lang: localesTracker.added() )
- {
- for ( ; lang && localeIds.current().insert( IdString(lang) ).second; lang = lang.fallback() )
- { localeIds.added().insert( IdString(lang) ); }
- }
-
- // Add removed locales+fallback except they are still in current
- for ( Locale lang: localesTracker.removed() )
- {
- for ( ; lang && ! localeIds.current().count( IdString(lang) ); lang = lang.fallback() )
- { localeIds.removed().insert( IdString(lang) ); }
- }
-
- // Assert that TrackedLocaleIds::current is not empty.
- // If, so fill in LanguageCode::enCode as last resort.
- if ( localeIds.current().empty() )
- { localeIds.current().insert( IdString(Locale::enCode) ); }
- }
- return *_trackedLocaleIdsPtr;
- }
-
-
- static void _getLocaleDeps( const Capability & cap_r, LocaleSet & store_r )