]> source.dussan.org Git - vaadin-framework.git/commitdiff
LayoutManager reuses shortcut Element instance for measure (#16964).
authorFabian Lange <lange.fabian@gmail.com>
Mon, 2 Mar 2015 10:18:23 +0000 (11:18 +0100)
committerVaadin Code Review <review@vaadin.com>
Mon, 2 Mar 2015 12:35:54 +0000 (12:35 +0000)
This change prevents the duplicate getter chain lookup
connector.getWidget().getElement() on the very hot measureConnector
method.

Change-Id: Ia59c9ef2e6bbcf9402424bc565bc9ee3977e3c6e

client/src/com/vaadin/client/LayoutManager.java

index 9775c29ab689c20f5470d2e7541e04c63289b80a..f77b61a5a37d8e0410dd51a3f4e2ce316c062fcf 100644 (file)
@@ -189,8 +189,7 @@ public class LayoutManager {
         return element.vMeasuredSize || defaultSize;
     }-*/;
 
-    private final MeasuredSize getMeasuredSize(ComponentConnector connector) {
-        Element element = connector.getWidget().getElement();
+    private final MeasuredSize getMeasuredSize(Element element) {
         MeasuredSize measuredSize = getMeasuredSize(element, null);
         if (measuredSize == null) {
             measuredSize = new MeasuredSize();
@@ -736,7 +735,7 @@ public class LayoutManager {
     private void measureConnector(ComponentConnector connector) {
         Profiler.enter("LayoutManager.measureConnector");
         Element element = connector.getWidget().getElement();
-        MeasuredSize measuredSize = getMeasuredSize(connector);
+        MeasuredSize measuredSize = getMeasuredSize(element);
         MeasureResult measureResult = measuredAndUpdate(element, measuredSize);
 
         if (measureResult.isChanged()) {
@@ -1442,14 +1441,14 @@ public class LayoutManager {
      *            of the component in pixels
      */
     public void reportOuterHeight(ComponentConnector component, int outerHeight) {
-        MeasuredSize measuredSize = getMeasuredSize(component);
+        Element element = component.getWidget().getElement();
+        MeasuredSize measuredSize = getMeasuredSize(element);
         if (isLayoutRunning()) {
             boolean heightChanged = measuredSize.setOuterHeight(outerHeight);
 
             if (heightChanged) {
                 onConnectorChange(component, false, true);
-                notifyListenersAndDepdendents(component.getWidget()
-                        .getElement(), false, true);
+                notifyListenersAndDepdendents(element, false, true);
             }
             currentDependencyTree.setNeedsVerticalMeasure(component, false);
         } else if (measuredSize.getOuterHeight() != outerHeight) {
@@ -1523,14 +1522,14 @@ public class LayoutManager {
      *            of the component in pixels
      */
     public void reportOuterWidth(ComponentConnector component, int outerWidth) {
-        MeasuredSize measuredSize = getMeasuredSize(component);
+        Element element = component.getWidget().getElement();
+        MeasuredSize measuredSize = getMeasuredSize(element);
         if (isLayoutRunning()) {
             boolean widthChanged = measuredSize.setOuterWidth(outerWidth);
 
             if (widthChanged) {
                 onConnectorChange(component, true, false);
-                notifyListenersAndDepdendents(component.getWidget()
-                        .getElement(), true, false);
+                notifyListenersAndDepdendents(element, true, false);
             }
             currentDependencyTree.setNeedsHorizontalMeasure(component, false);
         } else if (measuredSize.getOuterWidth() != outerWidth) {