Reviewers: jlabanca,

Description:
Avoid building SafeHtmlBuilders over and over again for no good reason.


Please review this at http://gwt-code-reviews.appspot.com/1500801/

Affected files:
  M user/src/com/google/gwt/user/client/ui/Composite.java
  M user/src/com/google/gwt/user/client/ui/RenderablePanel.java


Index: user/src/com/google/gwt/user/client/ui/Composite.java
===================================================================
--- user/src/com/google/gwt/user/client/ui/Composite.java       (revision 10462)
+++ user/src/com/google/gwt/user/client/ui/Composite.java       (working copy)
@@ -90,21 +90,19 @@
     if (renderable != null) {
       return renderable.render(stamper);
     } else {
-      SafeHtmlBuilder builder = new SafeHtmlBuilder();
-      render(stamper, builder);
-      return builder.toSafeHtml();
-    }
-  }
-
-  @Override
- public final void render(RenderableStamper stamper, SafeHtmlBuilder builder) {
-    if (renderable != null) {
-      renderable.render(stamper, builder);
-    } else {
       HtmlSpanBuilder spanBuilder = HtmlBuilderFactory.get()
           .createSpanBuilder();
       stamper.stamp(spanBuilder).end();
-      builder.append(spanBuilder.asSafeHtml());
+      return spanBuilder.asSafeHtml();
+    }
+  }
+
+  @Override
+ public final void render(RenderableStamper stamper, SafeHtmlBuilder builder) {
+    if (renderable != null) {
+      renderable.render(stamper, builder);
+    } else {
+      builder.append(render(stamper));
     }
   }

Index: user/src/com/google/gwt/user/client/ui/RenderablePanel.java
===================================================================
--- user/src/com/google/gwt/user/client/ui/RenderablePanel.java (revision 10462) +++ user/src/com/google/gwt/user/client/ui/RenderablePanel.java (working copy)
@@ -177,13 +177,6 @@

   @Override
   public SafeHtml render(RenderableStamper stamper) {
-    SafeHtmlBuilder builder = new SafeHtmlBuilder();
-    render(stamper, builder);
-    return builder.toSafeHtml();
-  }
-
-  @Override
-  public void render(RenderableStamper stamper, SafeHtmlBuilder builder) {
     String styleName = getStyleName();

     HtmlDivBuilder divBuilder = HtmlBuilderFactory.get()
@@ -195,7 +188,12 @@
     stamper.stamp(divBuilder);
     divBuilder.html(getInnerHtml()).end();

-    builder.append(divBuilder.asSafeHtml());
+    return divBuilder.asSafeHtml();
+  }
+
+  @Override
+  public void render(RenderableStamper stamper, SafeHtmlBuilder builder) {
+    builder.append(render(stamper));
   }

   @Override


--
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to