| // Copyright 2013 The Chromium Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "src/lib/url/url_canon_stdstring.h" | |
| namespace url { | |
| StdStringCanonOutput::StdStringCanonOutput(std::string* str) : CanonOutput(), str_(str) { | |
| cur_len_ = static_cast<int>(str_->size()); // Append to existing data. | |
| str_->resize(str_->capacity()); | |
| buffer_ = str_->empty() ? NULL : &(*str_)[0]; | |
| buffer_len_ = static_cast<int>(str_->size()); | |
| } | |
| StdStringCanonOutput::~StdStringCanonOutput() { | |
| // Nothing to do, we don't own the string. | |
| } | |
| void StdStringCanonOutput::Complete() { | |
| str_->resize(cur_len_); | |
| buffer_len_ = cur_len_; | |
| } | |
| void StdStringCanonOutput::Resize(size_t sz) { | |
| str_->resize(sz); | |
| buffer_ = str_->empty() ? NULL : &(*str_)[0]; | |
| buffer_len_ = sz; | |
| } | |
| } // namespace url |