Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
69fc4fb6
Unverified
Commit
69fc4fb6
authored
Oct 05, 2022
by
gaaclarke
Committed by
GitHub
Oct 05, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Switched `Element.renderObject` to iterative implementation. (#112885)
parent
c7b40a52
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
10 deletions
+13
-10
framework.dart
packages/flutter/lib/src/widgets/framework.dart
+13
-10
No files found.
packages/flutter/lib/src/widgets/framework.dart
View file @
69fc4fb6
...
...
@@ -3418,19 +3418,22 @@ abstract class Element extends DiagnosticableTree implements BuildContext {
/// this location in the tree. Otherwise, this getter will walk down the tree
/// until it finds a [RenderObjectElement].
RenderObject
?
get
renderObject
{
RenderObject
?
result
;
void
visit
(
Element
element
)
{
assert
(
result
==
null
);
// this verifies that there's only one child
if
(
element
.
_lifecycleState
==
_ElementLifecycle
.
defunct
)
{
return
;
}
else
if
(
element
is
RenderObjectElement
)
{
result
=
element
.
renderObject
;
Element
?
current
=
this
;
while
(
current
!=
null
)
{
if
(
current
.
_lifecycleState
==
_ElementLifecycle
.
defunct
)
{
break
;
}
else
if
(
current
is
RenderObjectElement
)
{
return
current
.
renderObject
;
}
else
{
element
.
visitChildren
(
visit
);
Element
?
next
;
current
.
visitChildren
((
Element
child
)
{
assert
(
next
==
null
);
// This verifies that there's only one child.
next
=
child
;
});
current
=
next
;
}
}
visit
(
this
);
return
result
;
return
null
;
}
@override
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment