summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorHenrik Baard <henrik.baard@sonyericsson.com>2010-10-04 12:18:43 +0200
committerJean-Baptiste Queru <jbq@google.com>2010-11-01 12:49:25 -0700
commite26290328f5baa78a39dd3dfbe7f38401af6cab8 (patch)
tree9132e1d2cad8c527c7d8a6b1a19af75973d2435b /src/com/android
parent39448371b6542da06c8b4bac425307f479f3c1dc (diff)
downloadpackages_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.java63
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) {