We only return 200s for any response large enough to warrant
->html_done, so we can just assume it.  ViewVCS can also take
advantage of it with some tweaking to avoid an extra method
dispatch.
---
 lib/PublicInbox/View.pm      | 2 +-
 lib/PublicInbox/ViewVCS.pm   | 5 +----
 lib/PublicInbox/WwwStream.pm | 8 ++++----
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/lib/PublicInbox/View.pm b/lib/PublicInbox/View.pm
index 1cbc62be..c6fd05cc 100644
--- a/lib/PublicInbox/View.pm
+++ b/lib/PublicInbox/View.pm
@@ -61,7 +61,7 @@ sub no_over_html ($) {
                ${$ctx->{obuf}} .= '</pre><hr>';
        }
        html_footer($ctx, $eml);
-       $ctx->html_done(200);
+       $ctx->html_done;
 }
 
 # public functions: (unstable)
diff --git a/lib/PublicInbox/ViewVCS.pm b/lib/PublicInbox/ViewVCS.pm
index ed4a6454..d3ac1a7d 100644
--- a/lib/PublicInbox/ViewVCS.pm
+++ b/lib/PublicInbox/ViewVCS.pm
@@ -253,10 +253,7 @@ possible to have multiple root commits when merging 
independent histories.
 
 Every commit references one top-level <dfn id=tree>tree</dfn> object.</pre>
 EOM
-       $x = $ctx->zflush($x, $ctx->_html_end);
-       my $res_hdr = delete $ctx->{-res_hdr};
-       push @$res_hdr, 'Content-Length', length($x);
-       delete($ctx->{env}->{'qspawn.wcb'})->([200, $res_hdr, [$x]]);
+       delete($ctx->{env}->{'qspawn.wcb'})->($ctx->html_done($x));
 }
 
 sub stream_patch_parse_hdr { # {parse_hdr} for Qspawn
diff --git a/lib/PublicInbox/WwwStream.pm b/lib/PublicInbox/WwwStream.pm
index 1fc213d4..c23668a4 100644
--- a/lib/PublicInbox/WwwStream.pm
+++ b/lib/PublicInbox/WwwStream.pm
@@ -167,12 +167,12 @@ sub getline {
        $ctx->zflush(_html_end($ctx));
 }
 
-sub html_done ($$) {
-       my ($ctx, $code) = @_;
-       my $bdy = $ctx->zflush(_html_end($ctx));
+sub html_done ($;@) {
+       my $ctx = $_[0];
+       my $bdy = $ctx->zflush(@_[1..$#_], _html_end($ctx));
        my $res_hdr = delete $ctx->{-res_hdr};
        push @$res_hdr, 'Content-Length', length($bdy);
-       [ $code, $res_hdr, [ $bdy ] ]
+       [ 200, $res_hdr, [ $bdy ] ]
 }
 
 sub html_oneshot ($$;@) {

Reply via email to