mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Check valid view_holder ptr before updating view (flutter/engine#22545)
Co-authored-by: Sanjay Chouksey <sanjayc@google.com>
This commit is contained in:
parent
43602512ee
commit
e76e35f677
@ -171,7 +171,10 @@ void SceneUpdateContext::UpdateView(int64_t view_id,
|
||||
const SkSize& size,
|
||||
std::optional<bool> override_hit_testable) {
|
||||
auto* view_holder = ViewHolder::FromId(view_id);
|
||||
FML_DCHECK(view_holder);
|
||||
if (view_holder == nullptr) {
|
||||
FML_LOG(ERROR) << "UpdateView did not find view holder for: " << view_id;
|
||||
return;
|
||||
}
|
||||
|
||||
if (size.width() > 0.f && size.height() > 0.f) {
|
||||
view_holder->SetProperties(size.width(), size.height(), 0, 0, 0, 0,
|
||||
@ -192,6 +195,7 @@ void SceneUpdateContext::UpdateView(int64_t view_id,
|
||||
void SceneUpdateContext::CreateView(int64_t view_id,
|
||||
bool hit_testable,
|
||||
bool focusable) {
|
||||
FML_LOG(INFO) << "CreateView for view holder: " << view_id;
|
||||
zx_handle_t handle = (zx_handle_t)view_id;
|
||||
flutter::ViewHolder::Create(handle, nullptr,
|
||||
scenic::ToViewHolderToken(zx::eventpair(handle)),
|
||||
@ -207,7 +211,10 @@ void SceneUpdateContext::UpdateView(int64_t view_id,
|
||||
bool hit_testable,
|
||||
bool focusable) {
|
||||
auto* view_holder = ViewHolder::FromId(view_id);
|
||||
FML_DCHECK(view_holder);
|
||||
if (view_holder == nullptr) {
|
||||
FML_LOG(ERROR) << "UpdateView did not find view holder for: " << view_id;
|
||||
return;
|
||||
}
|
||||
|
||||
view_holder->set_hit_testable(hit_testable);
|
||||
view_holder->set_focusable(focusable);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user