From f2ad9f6fadb9d070863a8a5c76b85c884943502a Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 4 Jan 2014 17:11:22 +0100 Subject: [PATCH] output/httpd: merge duplicate code to ClearQueue() --- src/output/HttpdClient.cxx | 17 ++++++++++++----- src/output/HttpdClient.hxx | 3 +++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/output/HttpdClient.cxx b/src/output/HttpdClient.cxx index 8fae27855..121f36e41 100644 --- a/src/output/HttpdClient.cxx +++ b/src/output/HttpdClient.cxx @@ -37,8 +37,7 @@ HttpdClient::~HttpdClient() if (current_page != nullptr) current_page->Unref(); - for (auto page : pages) - page->Unref(); + ClearQueue(); } if (metadata) @@ -209,15 +208,23 @@ HttpdClient::HttpdClient(HttpdOutput &_httpd, int _fd, EventLoop &_loop, } void -HttpdClient::CancelQueue() +HttpdClient::ClearQueue() { - if (state != RESPONSE) - return; + assert(state == RESPONSE); for (auto page : pages) page->Unref(); pages.clear(); queue_size = 0; +} + +void +HttpdClient::CancelQueue() +{ + if (state != RESPONSE) + return; + + ClearQueue(); if (current_page == nullptr) CancelWrite(); diff --git a/src/output/HttpdClient.hxx b/src/output/HttpdClient.hxx index 12b7af13f..7b83bca33 100644 --- a/src/output/HttpdClient.hxx +++ b/src/output/HttpdClient.hxx @@ -187,6 +187,9 @@ public: */ void PushMetaData(Page *page); +private: + void ClearQueue(); + protected: virtual bool OnSocketReady(unsigned flags) override; virtual InputResult OnSocketInput(void *data, size_t length) override;