Coverage Report

Created: 2026-05-16 06:40

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/opencv/3rdparty/openexr/IlmImf/ImfStringVectorAttribute.cpp
Line
Count
Source
1
///////////////////////////////////////////////////////////////////////////
2
//
3
// Copyright (c) 2007, Weta Digital Ltd
4
// 
5
// All rights reserved.
6
// 
7
// Redistribution and use in source and binary forms, with or without
8
// modification, are permitted provided that the following conditions are
9
// met:
10
// *       Redistributions of source code must retain the above copyright
11
// notice, this list of conditions and the following disclaimer.
12
// *       Redistributions in binary form must reproduce the above
13
// copyright notice, this list of conditions and the following disclaimer
14
// in the documentation and/or other materials provided with the
15
// distribution.
16
// *       Neither the name of Weta Digital nor the names of
17
// its contributors may be used to endorse or promote products derived
18
// from this software without specific prior written permission. 
19
// 
20
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
//
32
///////////////////////////////////////////////////////////////////////////
33
34
35
//-----------------------------------------------------------------------------
36
//
37
//  class StringVectorAttribute
38
//
39
//-----------------------------------------------------------------------------
40
41
#include <ImfStringVectorAttribute.h>
42
43
44
OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
45
46
47
using namespace OPENEXR_IMF_INTERNAL_NAMESPACE;
48
49
50
template <>
51
const char *
52
StringVectorAttribute::staticTypeName ()
53
0
{
54
0
    return "stringvector";
55
0
}
56
57
58
template <>
59
void
60
StringVectorAttribute::writeValueTo (OPENEXR_IMF_INTERNAL_NAMESPACE::OStream &os, int version) const
61
0
{
62
0
    int size = _value.size();
63
64
0
    for (int i = 0; i < size; i++)
65
0
    {
66
0
        int strSize = _value[i].size();
67
0
        Xdr::write <StreamIO> (os, strSize);
68
0
  Xdr::write <StreamIO> (os, &_value[i][0], strSize);
69
0
    }
70
0
}
71
72
73
template <>
74
void
75
StringVectorAttribute::readValueFrom (OPENEXR_IMF_INTERNAL_NAMESPACE::IStream &is, int size, int version)
76
0
{
77
0
    int read = 0;
78
79
0
    while (read < size)
80
0
    {   
81
0
       int strSize;
82
0
       Xdr::read <StreamIO> (is, strSize);
83
0
       read += Xdr::size<int>();       
84
85
0
       std::string str;
86
0
       str.resize (strSize);
87
  
88
0
       if( strSize>0 )
89
0
       {
90
0
           Xdr::read<StreamIO> (is, &str[0], strSize);
91
0
       }
92
       
93
0
       read += strSize;
94
95
0
       _value.push_back (str);
96
0
    }
97
0
}
98
99
100
OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT