diff options
author | Henrik Baard <henrik.baard@sonyericsson.com> | 2010-10-04 12:18:43 +0200 |
---|---|---|
committer | Jean-Baptiste Queru <jbq@google.com> | 2010-11-01 12:49:25 -0700 |
commit | e26290328f5baa78a39dd3dfbe7f38401af6cab8 (patch) | |
tree | 9132e1d2cad8c527c7d8a6b1a19af75973d2435b /src/com/android | |
parent | 39448371b6542da06c8b4bac425307f479f3c1dc (diff) | |
download | packages_apps_Browser-e26290328f5baa78a39dd3dfbe7f38401af6cab8.zip packages_apps_Browser-e26290328f5baa78a39dd3dfbe7f38401af6cab8.tar.gz packages_apps_Browser-e26290328f5baa78a39dd3dfbe7f38401af6cab8.tar.bz2 |
Cursor leak in share_link_context_menu.
Closing was not closed after handling share_link_context_menu_id. Added
try / final to close cursor.
Change-Id: I8825d3a264aa63f7a49c48165b98dd2e9e14ce3e
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/browser/BrowserActivity.java | 63 |
1 files changed, 34 insertions, 29 deletions
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java index dda7820..5c71bf5 100644 --- a/src/com/android/browser/BrowserActivity.java +++ b/src/com/android/browser/BrowserActivity.java @@ -2217,36 +2217,41 @@ public class BrowserActivity extends Activity StringBuilder sb = new StringBuilder( Browser.BookmarkColumns.URL + " = "); DatabaseUtils.appendEscapedSQLString(sb, url); - Cursor c = mResolver.query(Browser.BOOKMARKS_URI, - Browser.HISTORY_PROJECTION, - sb.toString(), - null, - null); - if (c.moveToFirst()) { - // The site has been visited before, so grab the - // info from the database. - Bitmap favicon = null; - Bitmap thumbnail = null; - String linkTitle = c.getString(Browser. - HISTORY_PROJECTION_TITLE_INDEX); - byte[] data = c.getBlob(Browser. - HISTORY_PROJECTION_FAVICON_INDEX); - if (data != null) { - favicon = BitmapFactory.decodeByteArray( - data, 0, data.length); + Cursor c = null; + try { + c = mResolver.query(Browser.BOOKMARKS_URI, + Browser.HISTORY_PROJECTION, + sb.toString(), + null, + null); + if (c.moveToFirst()) { + // The site has been visited before, so grab the + // info from the database. + Bitmap favicon = null; + Bitmap thumbnail = null; + String linkTitle = c.getString(Browser. + HISTORY_PROJECTION_TITLE_INDEX); + byte[] data = c.getBlob(Browser. + HISTORY_PROJECTION_FAVICON_INDEX); + if (data != null) { + favicon = BitmapFactory.decodeByteArray( + data, 0, data.length); + } + data = c.getBlob(Browser. + HISTORY_PROJECTION_THUMBNAIL_INDEX); + if (data != null) { + thumbnail = BitmapFactory.decodeByteArray( + data, 0, data.length); + } + sharePage(BrowserActivity.this, + linkTitle, url, favicon, thumbnail); + } else { + Browser.sendString(BrowserActivity.this, url, + getString( + R.string.choosertitle_sharevia)); } - data = c.getBlob(Browser. - HISTORY_PROJECTION_THUMBNAIL_INDEX); - if (data != null) { - thumbnail = BitmapFactory.decodeByteArray( - data, 0, data.length); - } - sharePage(BrowserActivity.this, - linkTitle, url, favicon, thumbnail); - } else { - Browser.sendString(BrowserActivity.this, url, - getString( - R.string.choosertitle_sharevia)); + } finally { + if (c != null) c.close(); } // close the cursor after its used if (c != null) { |