Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1824)

Unified Diff: base/scoped_bstr_win.cc

Issue 3781009: Move the windows-specific scoped_* stuff from base to base/win and in the bas... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/scoped_bstr_win.cc
===================================================================
--- base/scoped_bstr_win.cc (revision 62693)
+++ base/scoped_bstr_win.cc (working copy)
@@ -1,66 +0,0 @@
-// Copyright (c) 2006-2008 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 "base/scoped_bstr_win.h"
-
-#include "base/logging.h"
-
-
-ScopedBstr::ScopedBstr(const wchar_t* non_bstr)
- : bstr_(SysAllocString(non_bstr)) {
-}
-
-ScopedBstr::~ScopedBstr() {
- COMPILE_ASSERT(sizeof(ScopedBstr) == sizeof(BSTR), ScopedBstrSize);
- SysFreeString(bstr_);
-}
-
-void ScopedBstr::Reset(BSTR bstr) {
- if (bstr != bstr_) {
- // if |bstr_| is NULL, SysFreeString does nothing.
- SysFreeString(bstr_);
- bstr_ = bstr;
- }
-}
-
-BSTR ScopedBstr::Release() {
- BSTR bstr = bstr_;
- bstr_ = NULL;
- return bstr;
-}
-
-void ScopedBstr::Swap(ScopedBstr& bstr2) {
- BSTR tmp = bstr_;
- bstr_ = bstr2.bstr_;
- bstr2.bstr_ = tmp;
-}
-
-BSTR* ScopedBstr::Receive() {
- DCHECK(bstr_ == NULL) << "BSTR leak.";
- return &bstr_;
-}
-
-BSTR ScopedBstr::Allocate(const wchar_t* wide_str) {
- Reset(SysAllocString(wide_str));
- return bstr_;
-}
-
-BSTR ScopedBstr::AllocateBytes(int bytes) {
- Reset(SysAllocStringByteLen(NULL, bytes));
- return bstr_;
-}
-
-void ScopedBstr::SetByteLen(uint32 bytes) {
- DCHECK(bstr_ != NULL) << "attempting to modify a NULL bstr";
- uint32* data = reinterpret_cast<uint32*>(bstr_);
- data[-1] = bytes;
-}
-
-uint32 ScopedBstr::Length() const {
- return SysStringLen(bstr_);
-}
-
-uint32 ScopedBstr::ByteLength() const {
- return SysStringByteLen(bstr_);
-}

Powered by Google App Engine
This is Rietveld 408576698