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