1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "url/url_canon_stdstring.h" 6 7 namespace url { 8 9 StdStringCanonOutput::StdStringCanonOutput(std::string* str) 10 : CanonOutput(), str_(str) { 11 cur_len_ = static_cast<int>(str_->size()); // Append to existing data. 12 str_->resize(str_->capacity()); 13 buffer_ = str_->empty() ? NULL : &(*str_)[0]; 14 buffer_len_ = static_cast<int>(str_->size()); 15 } 16 17 StdStringCanonOutput::~StdStringCanonOutput() { 18 // Nothing to do, we don't own the string. 19 } 20 21 void StdStringCanonOutput::Complete() { 22 str_->resize(cur_len_); 23 buffer_len_ = cur_len_; 24 } 25 26 void StdStringCanonOutput::Resize(int sz) { 27 str_->resize(sz); 28 buffer_ = str_->empty() ? NULL : &(*str_)[0]; 29 buffer_len_ = sz; 30 } 31 32 } // namespace url 33