Avoid building SafeHtmlBuilders over and over again for no good reason. Review at http://gwt-code-reviews.appspot.com/1500801 git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10467 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/client/ui/Composite.java b/user/src/com/google/gwt/user/client/ui/Composite.java index ab1f714..e50405e 100644 --- a/user/src/com/google/gwt/user/client/ui/Composite.java +++ b/user/src/com/google/gwt/user/client/ui/Composite.java
@@ -90,9 +90,10 @@ if (renderable != null) { return renderable.render(stamper); } else { - SafeHtmlBuilder builder = new SafeHtmlBuilder(); - render(stamper, builder); - return builder.toSafeHtml(); + HtmlSpanBuilder spanBuilder = HtmlBuilderFactory.get() + .createSpanBuilder(); + stamper.stamp(spanBuilder).end(); + return spanBuilder.asSafeHtml(); } } @@ -101,10 +102,7 @@ if (renderable != null) { renderable.render(stamper, builder); } else { - HtmlSpanBuilder spanBuilder = HtmlBuilderFactory.get() - .createSpanBuilder(); - stamper.stamp(spanBuilder).end(); - builder.append(spanBuilder.asSafeHtml()); + builder.append(render(stamper)); } }
diff --git a/user/src/com/google/gwt/user/client/ui/RenderablePanel.java b/user/src/com/google/gwt/user/client/ui/RenderablePanel.java index 6e3b216..509cbe0 100644 --- a/user/src/com/google/gwt/user/client/ui/RenderablePanel.java +++ b/user/src/com/google/gwt/user/client/ui/RenderablePanel.java
@@ -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