xapian-core
1.4.27
Main Page
Related Pages
+
Namespaces
Namespace List
+
Namespace Members
+
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Functions
a
b
c
d
e
f
g
i
m
n
o
p
r
s
t
u
v
+
Variables
b
d
h
i
k
l
m
u
x
Typedefs
Enumerations
+
Enumerator
c
d
e
f
i
l
m
n
o
p
r
s
t
u
+
Classes
Class List
Class Index
Class Hierarchy
+
Class Members
+
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
+
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Typedefs
c
d
e
f
i
p
r
s
t
v
Enumerations
+
Enumerator
a
b
c
d
f
g
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Related Functions
:
c
e
g
i
l
m
o
q
r
t
x
+
Files
File List
+
File Members
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Functions
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Variables
a
b
c
d
e
f
g
i
j
k
l
m
n
o
p
r
s
t
u
v
w
y
Typedefs
Enumerations
+
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
p
r
s
t
u
v
w
x
+
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
api
smallvector.cc
Go to the documentation of this file.
1
4
/* Copyright (C) 2012,2013,2014 Olly Betts
5
*
6
* Permission is hereby granted, free of charge, to any person obtaining a copy
7
* of this software and associated documentation files (the "Software"), to
8
* deal in the Software without restriction, including without limitation the
9
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10
* sell copies of the Software, and to permit persons to whom the Software is
11
* furnished to do so, subject to the following conditions:
12
*
13
* The above copyright notice and this permission notice shall be included in
14
* all copies or substantial portions of the Software.
15
*
16
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22
* IN THE SOFTWARE.
23
*/
24
25
#include <
config.h
>
26
27
#include "
api/smallvector.h
"
28
29
#include <algorithm>
30
31
void
32
Xapian::SmallVector_::do_reserve
(std::size_t n)
33
{
34
void
** blk =
new
void
* [n];
35
if
(
c
>
sizeof
(
p
) /
sizeof
(*
p
)) {
36
std::copy(static_cast<void **>(
p
[0]),
37
static_cast<void **>(
p
[1]),
38
blk);
39
p
[1] = blk +
40
(
static_cast<
void
**
>
(
p
[1]) - static_cast<void**>(
p
[0]));
41
delete
[]
static_cast<
void
**
>
(
p
[0]);
42
}
else
{
43
std::copy(
p
,
p
+
c
, blk);
44
p
[1] = blk +
c
;
45
}
46
p
[0] = blk;
47
}
config.h
Xapian::SmallVector_::c
std::size_t c
Definition:
smallvector.h:37
Xapian::SmallVector_::p
void * p[2]
Definition:
smallvector.h:38
Xapian::SmallVector_::do_reserve
void do_reserve(std::size_t n)
Definition:
smallvector.cc:32
smallvector.h
Append only vector of Xapian PIMPL objects.
Generated by
Doxygen 1.8.13