From fec5106c8ea5791614385c17bd1bf0ecff9afe9a Mon Sep 17 00:00:00 2001 From: Narayan Kamath Date: Sat, 5 Jul 2014 15:33:28 +0100 Subject: Fix issue when converting fil->tl. We should call ResourceTable::getLocales directly, and not AssetManager::getLocales. The latter will convert "tl" to "fil" so we'll end up thinking we have resources for "fil" when we don't really have any. bug: 15873165 Change-Id: I9753e4608aaecede328a40ee1f3ee6b016d0dedc --- libs/androidfw/AssetManager.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'libs') diff --git a/libs/androidfw/AssetManager.cpp b/libs/androidfw/AssetManager.cpp index 482dfc8..56c95bd 100644 --- a/libs/androidfw/AssetManager.cpp +++ b/libs/androidfw/AssetManager.cpp @@ -365,7 +365,6 @@ void AssetManager::setLocaleLocked(const char* locale) delete[] mLocale; } - // If we're attempting to set a locale that starts with "fil", // we should convert it to "tl" for backwards compatibility since // we've been using "tl" instead of "fil" prior to L. @@ -374,7 +373,10 @@ void AssetManager::setLocaleLocked(const char* locale) // instead of attempting a fallback. if (strncmp(locale, kFilPrefix, kFilPrefixLen) == 0) { Vector locales; - getLocales(&locales); + ResTable* res = mResources; + if (res != NULL) { + res->getLocales(&locales); + } const size_t localesSize = locales.size(); bool hasFil = false; for (size_t i = 0; i < localesSize; ++i) { -- cgit v1.1