summaryrefslogtreecommitdiffstats
path: root/sync
diff options
context:
space:
mode:
authorsreeram@chromium.org <sreeram@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-29 23:08:50 +0000
committersreeram@chromium.org <sreeram@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-29 23:08:50 +0000
commite0e8fac17ff416ac0ff4e5bd11ed086b9cf52a44 (patch)
tree133f58a0af2479b1e0f1db1d0f33757f5a69566c /sync
parent855c276ad8226f34efbcbea8e7153dceff1c6889 (diff)
downloadchromium_src-e0e8fac17ff416ac0ff4e5bd11ed086b9cf52a44.zip
chromium_src-e0e8fac17ff416ac0ff4e5bd11ed086b9cf52a44.tar.gz
chromium_src-e0e8fac17ff416ac0ff4e5bd11ed086b9cf52a44.tar.bz2
Possible fix for crash in InstantUnloadHandler::Destroy.
See bug report for crash details. My guess is that something leads to the following sequence of events: 1. CloseContents() is called on the web contents delegate. 2. The delegate is removed from the delegates_ vector. The actual delegate object is scheduled to be destroyed later (DeleteSoon). 3. Before the scheduled deletion occurs, CloseContents() is called again. Since the vector doesn't have the pointer, the weak_erase() fails. In debug mode, the DCHECK() would've caught this. Fix by removing the delegate association in step 1. Note that the delegate still hangs on the the TabContents. When the scheduled deletion of the delegate happens, the TabContents will also be destroyed. BUG=155848 R=sky@chromium.org TEST=Watch crash reports. This shouldn't occur anymore. Review URL: https://chromiumcodereview.appspot.com/11336019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164779 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync')
0 files changed, 0 insertions, 0 deletions