diff options
author | Romain Guy <> | 2009-03-27 19:21:08 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-27 19:21:08 -0700 |
commit | 4d87117d7136e5f4e6361442044db906a8308684 (patch) | |
tree | a97118192b8d43a51e8144ad06a0702cfdbf7ec7 /src | |
parent | 885cea2123426b16276e5ea9aba87f9ad7d35df8 (diff) | |
download | GoogleSearch-4d87117d7136e5f4e6361442044db906a8308684.tar.gz |
AI 143225: am: CL 143041 Fixes #1740742. The SuggestionsProvider was causing a memory leak by keeping a static reference to an EMPTY_CURSOR which, by being hqnded over to adapters, would cause Activities to be kept across configuration changes. This change simply creates a new empty cursor every time instead of using a singleton.
Original author: romainguy
Merged from: //branches/cupcake/...
Automated import of CL 143225
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/googlesearch/SuggestionProvider.java | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/com/android/googlesearch/SuggestionProvider.java b/src/com/android/googlesearch/SuggestionProvider.java index a4e4242..416f9d0 100644 --- a/src/com/android/googlesearch/SuggestionProvider.java +++ b/src/com/android/googlesearch/SuggestionProvider.java @@ -69,12 +69,8 @@ public class SuggestionProvider extends ContentProvider { SearchManager.SUGGEST_COLUMN_TEXT_2, SearchManager.SUGGEST_COLUMN_QUERY}; - /* Used when we have no suggestions */ - private static final ArrayListCursor EMPTY_CURSOR = - new ArrayListCursor(COLUMNS, new ArrayList()); - private HttpClient mHttpClient; - + @Override public boolean onCreate() { mHttpClient = new GoogleHttpClient(getContext().getContentResolver(), @@ -87,7 +83,11 @@ public class SuggestionProvider extends ContentProvider { mSuggestUri = null; return true; } - + + private static ArrayListCursor makeEmptyCursor() { + return new ArrayListCursor(COLUMNS, new ArrayList<ArrayList>()); + } + /** * This will always return {@link SearchManager#SUGGEST_MIME_TYPE} as this * provider is purely to provide suggestions. @@ -108,7 +108,7 @@ public class SuggestionProvider extends ContentProvider { if (TextUtils.isEmpty(query)) { /* Can't pass back null, things blow up */ - return EMPTY_CURSOR; + return makeEmptyCursor(); } try { query = URLEncoder.encode(query, "UTF-8"); @@ -151,7 +151,7 @@ public class SuggestionProvider extends ContentProvider { } catch (JSONException e) { Log.w(LOG_TAG, "Error", e); } - return EMPTY_CURSOR; + return makeEmptyCursor(); } private static class SuggestionsCursor extends AbstractCursor { |