| Index: mojo/public/cpp/bindings/lib/filter_chain.cc
|
| diff --git a/mojo/public/cpp/bindings/lib/filter_chain.cc b/mojo/public/cpp/bindings/lib/filter_chain.cc
|
| index 7101eff13ff7aeb99be84acb6e1f246cf1e9d9f9..efd4ba19875317042b9c1a37186e6a621e759c96 100644
|
| --- a/mojo/public/cpp/bindings/lib/filter_chain.cc
|
| +++ b/mojo/public/cpp/bindings/lib/filter_chain.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "mojo/public/cpp/bindings/lib/filter_chain.h"
|
|
|
| +#include <assert.h>
|
| +
|
| #include <algorithm>
|
|
|
| namespace mojo {
|
| @@ -31,27 +33,16 @@ FilterChain::~FilterChain() {
|
| }
|
| }
|
|
|
| -FilterChain& FilterChain::Append(MessageFilter* filter) {
|
| +void FilterChain::SetSink(MessageReceiver* sink) {
|
| + assert(!sink_);
|
| + sink_ = sink;
|
| if (!filters_.empty())
|
| - filters_.back()->set_sink(filter);
|
| - filters_.push_back(filter);
|
| -
|
| - return *this;
|
| -}
|
| -
|
| -FilterChain& FilterChain::Append(PassThroughFilter* filter) {
|
| - delete filter;
|
| - return *this;
|
| + filters_.back()->set_sink(sink);
|
| }
|
|
|
| MessageReceiver* FilterChain::GetHead() {
|
| assert(sink_);
|
| -
|
| - if (filters_.empty())
|
| - return sink_;
|
| -
|
| - filters_.back()->set_sink(sink_);
|
| - return filters_.front();
|
| + return filters_.empty() ? sink_ : filters_.front();
|
| }
|
|
|
| } // namespace internal
|
|
|