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