diff options
author | aurimas@google.com <aurimas@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-28 20:22:19 +0000 |
---|---|---|
committer | aurimas@google.com <aurimas@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-28 20:22:19 +0000 |
commit | dcab8fae1ee448b3ca7af36108764d2dfb69bc7d (patch) | |
tree | 014791111111591022ac24f9e836c16d65a4ccb9 | |
parent | 021064552519d48509625312437760faf8880cce (diff) | |
download | chromium_src-dcab8fae1ee448b3ca7af36108764d2dfb69bc7d.zip chromium_src-dcab8fae1ee448b3ca7af36108764d2dfb69bc7d.tar.gz chromium_src-dcab8fae1ee448b3ca7af36108764d2dfb69bc7d.tar.bz2 |
Merge 254883 "Fix use after release bug."
> Fix use after release bug.
>
> We were writing to is_running_ after SelectFileDialogImpl was released
> by FileSelectHelper:~FileSelectHelper().
>
> Start using listener_ as a check to see whether SelectFileDialog is running.
>
> BUG=342151
> NOTRY=true
>
> Review URL: https://codereview.chromium.org/184043028
TBR=aurimas@chromium.org
Review URL: https://codereview.chromium.org/217413002
git-svn-id: svn://svn.chromium.org/chrome/branches/1847/src@260260 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ui/shell_dialogs/select_file_dialog_android.cc | 9 | ||||
-rw-r--r-- | ui/shell_dialogs/select_file_dialog_android.h | 3 |
2 files changed, 2 insertions, 10 deletions
diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc index 290d509..af15c97 100644 --- a/ui/shell_dialogs/select_file_dialog_android.cc +++ b/ui/shell_dialogs/select_file_dialog_android.cc @@ -40,8 +40,6 @@ void SelectFileDialogImpl::OnFileSelected(JNIEnv* env, file_info.display_name = file_name; listener_->FileSelectedWithExtraInfo(file_info, 0, NULL); } - - is_running_ = false; } void SelectFileDialogImpl::OnFileNotSelected( @@ -49,12 +47,10 @@ void SelectFileDialogImpl::OnFileNotSelected( jobject java_object) { if (listener_) listener_->FileSelectionCanceled(NULL); - - is_running_ = false; } bool SelectFileDialogImpl::IsRunning(gfx::NativeWindow) const { - return is_running_; + return listener_; } void SelectFileDialogImpl::ListenerDestroyed() { @@ -89,7 +85,6 @@ void SelectFileDialogImpl::SelectFileImpl( accept_types_java.obj(), accept_types.second, owning_window->GetJavaObject().obj()); - is_running_ = true; } bool SelectFileDialogImpl::RegisterSelectFileDialog(JNIEnv* env) { @@ -101,7 +96,7 @@ SelectFileDialogImpl::~SelectFileDialogImpl() { SelectFileDialogImpl::SelectFileDialogImpl(Listener* listener, SelectFilePolicy* policy) - : SelectFileDialog(listener, policy), is_running_(false) { + : SelectFileDialog(listener, policy) { JNIEnv* env = base::android::AttachCurrentThread(); java_object_.Reset( Java_SelectFileDialog_create(env, reinterpret_cast<intptr_t>(this))); diff --git a/ui/shell_dialogs/select_file_dialog_android.h b/ui/shell_dialogs/select_file_dialog_android.h index 2690308..1b09d1e 100644 --- a/ui/shell_dialogs/select_file_dialog_android.h +++ b/ui/shell_dialogs/select_file_dialog_android.h @@ -53,9 +53,6 @@ class SelectFileDialogImpl : public SelectFileDialog { base::android::ScopedJavaGlobalRef<jobject> java_object_; - // Stores the state whether select_file_dialog is running. - bool is_running_; - DISALLOW_COPY_AND_ASSIGN(SelectFileDialogImpl); }; |