| line |
true |
false |
branch |
|
7
|
13 |
0 |
ret.resize(size); |
|
10
|
2 |
11 |
if (type == COPY) { |
|
11
|
3 |
2 |
for (size_t i = 0; i < size; ++i) { |
|
12
|
3 |
0 |
if (*content) { |
|
13
|
3 |
0 |
SV* val = *dst++ = newSV(0); |
|
14
|
3 |
0 |
sv_setsv_flags(val, *content++, SV_DO_COW_SVSETSV|SV_NOSTEAL); |
|
21
|
19 |
11 |
for (size_t i = 0; i < size; ++i) *dst++ = SvREFCNT_inc(*content++); |
|
29
|
15 |
8 |
for (size_t i = 0; i < l.size(); ++i) svs[i] = (*from++).get(); |
|
30
|
8 |
0 |
auto tmp = create(l.size(), svs, type); |
|
35
|
1 |
17 |
if (!sv) throw std::logic_error("store: empty object"); |
|
|
1 |
0 |
if (!sv) throw std::logic_error("store: empty object"); |
|
36
|
12 |
5 |
SvREFCNT_inc_simple_void(val.get()); |
|
38
|
3 |
14 |
if (key >= _cap()) av_extend((AV*)sv, key); |
|
|
3 |
0 |
if (key >= _cap()) av_extend((AV*)sv, key); |
|
44
|
17 |
0 |
if (_size() <= key) _size(key+1); |
|
|
8 |
9 |
if (_size() <= key) _size(key+1); |
|
45
|
9 |
0 |
else SvREFCNT_dec(old); |
|
54
|
13 |
5 |
for (size_t i = 0; i < addsize; ++i) *dst++ = SvREFCNT_inc((from++)->get()); |
|
63
|
2 |
1 |
for (size_t i = 0; i < addsize; ++i) *dst++ = SvREFCNT_inc(*from++); |
|
77
|
3 |
1 |
for (size_t i = 0; i < addsize; ++i) *dst++ = SvREFCNT_inc((from++)->get()); |
|
85
|
2 |
1 |
for (size_t i = 0; i < addsize; ++i) *dst++ = SvREFCNT_inc(*from++); |
|
95
|
0 |
1 |
if (max && sz > max) sz = max; |
|
|
0 |
0 |
if (max && sz > max) sz = max; |
|
96
|
1 |
0 |
EXTEND(sp, (I32)sz); |
|
|
0 |
1 |
EXTEND(sp, (I32)sz); |
|
98
|
3 |
1 |
for (decltype(sz) i = 0; i < sz; ++i) *++sp = sv_2mortal(SvREFCNT_inc(list[i])); |