Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
B
brpc
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
brpc
Commits
bb29ab6a
Commit
bb29ab6a
authored
Jan 03, 2020
by
jamesge
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove butil/memory/scoped_array.h which is replaceable by unique_ptr<T[]>
parent
907eebe9
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
0 additions
and
145 deletions
+0
-145
LICENSE
LICENSE
+0
-32
scoped_array.h
src/butil/memory/scoped_array.h
+0
-113
No files found.
LICENSE
View file @
bb29ab6a
...
...
@@ -471,38 +471,6 @@ src/butil/string_printf.cpp: licensed under the following terms:
--------------------------------------------------------------------------------
src/butil/memory/scoped_array.h: 3-clause BSD
Copyright (c) 2017, Tencent Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
src/bthread/context.h, src/bthread/context.cpp: licensed under the following terms:
libcontext - a slightly more portable version of boost::context
...
...
src/butil/memory/scoped_array.h
deleted
100644 → 0
View file @
907eebe9
// Copyright (c) 2013, The TOFT Authors.
// All rights reserved.
//
// Author: CHEN Feng <chen3feng@gmail.com>
// Created: 2013-03-02
#ifndef BUTIL_SCOPED_ARRAY_H
#define BUTIL_SCOPED_ARRAY_H
#include <assert.h>
#include <stddef.h>
namespace
butil
{
// scoped_array<C> is like scoped_ptr<C>, except that the caller must allocate
// with new [] and the destructor deletes objects with delete [].
//
// As with scoped_ptr<C>, a scoped_array<C> either points to an object
// or is NULL. A scoped_array<C> owns the object that it points to.
//
// Size: sizeof(scoped_array<C>) == sizeof(C*)
template
<
class
C
>
class
scoped_array
{
public
:
// The element type
typedef
C
element_type
;
// Constructor. Defaults to intializing with NULL.
// There is no way to create an uninitialized scoped_array.
// The input parameter must be allocated with new [].
explicit
scoped_array
(
C
*
p
=
NULL
)
:
array_
(
p
)
{
}
// Destructor. If there is a C object, delete it.
// We don't need to test ptr_ == NULL because C++ does that for us.
~
scoped_array
()
{
enum
{
type_must_be_complete
=
sizeof
(
C
)
};
delete
[]
array_
;
array_
=
reinterpret_cast
<
C
*>
(
-
1
);
}
// implicit cast to bool
operator
void
*
()
const
{
return
array_
;
}
bool
operator
!
()
const
{
return
array_
==
0
;
}
// Reset. Deletes the current owned object, if any.
// Then takes ownership of a new object, if given.
// this->reset(this->get()) works.
void
reset
(
C
*
p
=
NULL
)
{
if
(
p
!=
array_
)
{
enum
{
type_must_be_complete
=
sizeof
(
C
)
};
delete
[]
array_
;
array_
=
p
;
}
}
// Get one element of the current object.
// Will assert() if there is no current object, or index i is negative.
C
&
operator
[](
std
::
ptrdiff_t
i
)
const
{
assert
(
i
>=
0
);
assert
(
array_
!=
NULL
);
return
array_
[
i
];
}
// Get a pointer to the zeroth element of the current object.
// If there is no current object, return NULL.
C
*
get
()
const
{
return
array_
;
}
// Comparison operators.
// These return whether two scoped_array refer to the same object, not just to
// two different but equal objects.
bool
operator
==
(
C
*
p
)
const
{
return
array_
==
p
;
}
bool
operator
!=
(
C
*
p
)
const
{
return
array_
!=
p
;
}
// Swap two scoped arrays.
void
swap
(
scoped_array
&
p2
)
{
C
*
tmp
=
array_
;
array_
=
p2
.
array_
;
p2
.
array_
=
tmp
;
}
// Release an array.
// The return value is the current pointer held by this object.
// If this object holds a NULL pointer, the return value is NULL.
// After this operation, this object will hold a NULL pointer,
// and will not own the object any more.
C
*
release
()
{
C
*
retVal
=
array_
;
array_
=
NULL
;
return
retVal
;
}
private
:
C
*
array_
;
// Forbid comparison of different scoped_array types.
template
<
class
C2
>
bool
operator
==
(
scoped_array
<
C2
>
const
&
p2
)
const
;
template
<
class
C2
>
bool
operator
!=
(
scoped_array
<
C2
>
const
&
p2
)
const
;
// Disallow evil constructors
scoped_array
(
const
scoped_array
&
);
void
operator
=
(
const
scoped_array
&
);
};
}
// namespace butil
#endif // BUTIL_SCOPED_ARRAY_H
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment