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