Coverage Report

Created: 2025-06-24 06:43

/src/icu/source/common/cpputils.h
Line
Count
Source (jump to first uncovered line)
1
// © 2016 and later: Unicode, Inc. and others.
2
// License & terms of use: http://www.unicode.org/copyright.html
3
/*
4
******************************************************************************
5
*
6
*   Copyright (C) 1997-2011, International Business Machines
7
*   Corporation and others.  All Rights Reserved.
8
*
9
******************************************************************************
10
*   file name:  cpputils.h
11
*   encoding:   UTF-8
12
*   tab size:   8 (not used)
13
*   indentation:4
14
*/
15
16
#ifndef CPPUTILS_H
17
#define CPPUTILS_H
18
19
#include "unicode/utypes.h"
20
#include "unicode/unistr.h"
21
#include "cmemory.h"
22
23
/*==========================================================================*/
24
/* Array copy utility functions */
25
/*==========================================================================*/
26
27
static
28
inline void uprv_arrayCopy(const double* src, double* dst, int32_t count)
29
0
{ uprv_memcpy(dst, src, (size_t)count * sizeof(*src)); }
Unexecuted instantiation: loadednormalizer2impl.cpp:uprv_arrayCopy(double const*, double*, int)
Unexecuted instantiation: normalizer2.cpp:uprv_arrayCopy(double const*, double*, int)
Unexecuted instantiation: udat.cpp:uprv_arrayCopy(double const*, double*, int)
Unexecuted instantiation: dtfmtsym.cpp:uprv_arrayCopy(double const*, double*, int)
Unexecuted instantiation: dtptngen.cpp:uprv_arrayCopy(double const*, double*, int)
Unexecuted instantiation: calendar.cpp:uprv_arrayCopy(double const*, double*, int)
Unexecuted instantiation: umsg.cpp:uprv_arrayCopy(double const*, double*, int)
Unexecuted instantiation: choicfmt.cpp:uprv_arrayCopy(double const*, double*, int)
30
31
static
32
inline void uprv_arrayCopy(const double* src, int32_t srcStart,
33
              double* dst, int32_t dstStart, int32_t count)
34
0
{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)count * sizeof(*src)); }
Unexecuted instantiation: loadednormalizer2impl.cpp:uprv_arrayCopy(double const*, int, double*, int, int)
Unexecuted instantiation: normalizer2.cpp:uprv_arrayCopy(double const*, int, double*, int, int)
Unexecuted instantiation: udat.cpp:uprv_arrayCopy(double const*, int, double*, int, int)
Unexecuted instantiation: dtfmtsym.cpp:uprv_arrayCopy(double const*, int, double*, int, int)
Unexecuted instantiation: dtptngen.cpp:uprv_arrayCopy(double const*, int, double*, int, int)
Unexecuted instantiation: calendar.cpp:uprv_arrayCopy(double const*, int, double*, int, int)
Unexecuted instantiation: umsg.cpp:uprv_arrayCopy(double const*, int, double*, int, int)
Unexecuted instantiation: choicfmt.cpp:uprv_arrayCopy(double const*, int, double*, int, int)
35
36
static
37
inline void uprv_arrayCopy(const int8_t* src, int8_t* dst, int32_t count)
38
0
    { uprv_memcpy(dst, src, (size_t)count * sizeof(*src)); }
Unexecuted instantiation: loadednormalizer2impl.cpp:uprv_arrayCopy(signed char const*, signed char*, int)
Unexecuted instantiation: normalizer2.cpp:uprv_arrayCopy(signed char const*, signed char*, int)
Unexecuted instantiation: udat.cpp:uprv_arrayCopy(signed char const*, signed char*, int)
Unexecuted instantiation: dtfmtsym.cpp:uprv_arrayCopy(signed char const*, signed char*, int)
Unexecuted instantiation: dtptngen.cpp:uprv_arrayCopy(signed char const*, signed char*, int)
Unexecuted instantiation: calendar.cpp:uprv_arrayCopy(signed char const*, signed char*, int)
Unexecuted instantiation: umsg.cpp:uprv_arrayCopy(signed char const*, signed char*, int)
Unexecuted instantiation: choicfmt.cpp:uprv_arrayCopy(signed char const*, signed char*, int)
39
40
static
41
inline void uprv_arrayCopy(const int8_t* src, int32_t srcStart,
42
              int8_t* dst, int32_t dstStart, int32_t count)
43
0
{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)count * sizeof(*src)); }
Unexecuted instantiation: loadednormalizer2impl.cpp:uprv_arrayCopy(signed char const*, int, signed char*, int, int)
Unexecuted instantiation: normalizer2.cpp:uprv_arrayCopy(signed char const*, int, signed char*, int, int)
Unexecuted instantiation: udat.cpp:uprv_arrayCopy(signed char const*, int, signed char*, int, int)
Unexecuted instantiation: dtfmtsym.cpp:uprv_arrayCopy(signed char const*, int, signed char*, int, int)
Unexecuted instantiation: dtptngen.cpp:uprv_arrayCopy(signed char const*, int, signed char*, int, int)
Unexecuted instantiation: calendar.cpp:uprv_arrayCopy(signed char const*, int, signed char*, int, int)
Unexecuted instantiation: umsg.cpp:uprv_arrayCopy(signed char const*, int, signed char*, int, int)
Unexecuted instantiation: choicfmt.cpp:uprv_arrayCopy(signed char const*, int, signed char*, int, int)
44
45
static
46
inline void uprv_arrayCopy(const int16_t* src, int16_t* dst, int32_t count)
47
0
{ uprv_memcpy(dst, src, (size_t)count * sizeof(*src)); }
Unexecuted instantiation: loadednormalizer2impl.cpp:uprv_arrayCopy(short const*, short*, int)
Unexecuted instantiation: normalizer2.cpp:uprv_arrayCopy(short const*, short*, int)
Unexecuted instantiation: udat.cpp:uprv_arrayCopy(short const*, short*, int)
Unexecuted instantiation: dtfmtsym.cpp:uprv_arrayCopy(short const*, short*, int)
Unexecuted instantiation: dtptngen.cpp:uprv_arrayCopy(short const*, short*, int)
Unexecuted instantiation: calendar.cpp:uprv_arrayCopy(short const*, short*, int)
Unexecuted instantiation: umsg.cpp:uprv_arrayCopy(short const*, short*, int)
Unexecuted instantiation: choicfmt.cpp:uprv_arrayCopy(short const*, short*, int)
48
49
static
50
inline void uprv_arrayCopy(const int16_t* src, int32_t srcStart,
51
              int16_t* dst, int32_t dstStart, int32_t count)
52
0
{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)count * sizeof(*src)); }
Unexecuted instantiation: loadednormalizer2impl.cpp:uprv_arrayCopy(short const*, int, short*, int, int)
Unexecuted instantiation: normalizer2.cpp:uprv_arrayCopy(short const*, int, short*, int, int)
Unexecuted instantiation: udat.cpp:uprv_arrayCopy(short const*, int, short*, int, int)
Unexecuted instantiation: dtfmtsym.cpp:uprv_arrayCopy(short const*, int, short*, int, int)
Unexecuted instantiation: dtptngen.cpp:uprv_arrayCopy(short const*, int, short*, int, int)
Unexecuted instantiation: calendar.cpp:uprv_arrayCopy(short const*, int, short*, int, int)
Unexecuted instantiation: umsg.cpp:uprv_arrayCopy(short const*, int, short*, int, int)
Unexecuted instantiation: choicfmt.cpp:uprv_arrayCopy(short const*, int, short*, int, int)
53
54
static
55
inline void uprv_arrayCopy(const int32_t* src, int32_t* dst, int32_t count)
56
0
{ uprv_memcpy(dst, src, (size_t)count * sizeof(*src)); }
Unexecuted instantiation: loadednormalizer2impl.cpp:uprv_arrayCopy(int const*, int*, int)
Unexecuted instantiation: normalizer2.cpp:uprv_arrayCopy(int const*, int*, int)
Unexecuted instantiation: udat.cpp:uprv_arrayCopy(int const*, int*, int)
Unexecuted instantiation: dtfmtsym.cpp:uprv_arrayCopy(int const*, int*, int)
Unexecuted instantiation: dtptngen.cpp:uprv_arrayCopy(int const*, int*, int)
Unexecuted instantiation: calendar.cpp:uprv_arrayCopy(int const*, int*, int)
Unexecuted instantiation: umsg.cpp:uprv_arrayCopy(int const*, int*, int)
Unexecuted instantiation: choicfmt.cpp:uprv_arrayCopy(int const*, int*, int)
57
58
static
59
inline void uprv_arrayCopy(const int32_t* src, int32_t srcStart,
60
              int32_t* dst, int32_t dstStart, int32_t count)
61
0
{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)count * sizeof(*src)); }
Unexecuted instantiation: loadednormalizer2impl.cpp:uprv_arrayCopy(int const*, int, int*, int, int)
Unexecuted instantiation: normalizer2.cpp:uprv_arrayCopy(int const*, int, int*, int, int)
Unexecuted instantiation: udat.cpp:uprv_arrayCopy(int const*, int, int*, int, int)
Unexecuted instantiation: dtfmtsym.cpp:uprv_arrayCopy(int const*, int, int*, int, int)
Unexecuted instantiation: dtptngen.cpp:uprv_arrayCopy(int const*, int, int*, int, int)
Unexecuted instantiation: calendar.cpp:uprv_arrayCopy(int const*, int, int*, int, int)
Unexecuted instantiation: umsg.cpp:uprv_arrayCopy(int const*, int, int*, int, int)
Unexecuted instantiation: choicfmt.cpp:uprv_arrayCopy(int const*, int, int*, int, int)
62
63
static
64
inline void
65
uprv_arrayCopy(const UChar *src, int32_t srcStart,
66
        UChar *dst, int32_t dstStart, int32_t count)
67
0
{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)count * sizeof(*src)); }
Unexecuted instantiation: loadednormalizer2impl.cpp:uprv_arrayCopy(char16_t const*, int, char16_t*, int, int)
Unexecuted instantiation: normalizer2.cpp:uprv_arrayCopy(char16_t const*, int, char16_t*, int, int)
Unexecuted instantiation: udat.cpp:uprv_arrayCopy(char16_t const*, int, char16_t*, int, int)
Unexecuted instantiation: dtfmtsym.cpp:uprv_arrayCopy(char16_t const*, int, char16_t*, int, int)
Unexecuted instantiation: dtptngen.cpp:uprv_arrayCopy(char16_t const*, int, char16_t*, int, int)
Unexecuted instantiation: calendar.cpp:uprv_arrayCopy(char16_t const*, int, char16_t*, int, int)
Unexecuted instantiation: umsg.cpp:uprv_arrayCopy(char16_t const*, int, char16_t*, int, int)
Unexecuted instantiation: choicfmt.cpp:uprv_arrayCopy(char16_t const*, int, char16_t*, int, int)
68
69
/**
70
 * Copy an array of UnicodeString OBJECTS (not pointers).
71
 * @internal
72
 */
73
static inline void
74
uprv_arrayCopy(const icu::UnicodeString *src, icu::UnicodeString *dst, int32_t count)
75
0
{ while(count-- > 0) *dst++ = *src++; }
Unexecuted instantiation: loadednormalizer2impl.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, icu_70::UnicodeString*, int)
Unexecuted instantiation: normalizer2.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, icu_70::UnicodeString*, int)
Unexecuted instantiation: udat.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, icu_70::UnicodeString*, int)
Unexecuted instantiation: dtfmtsym.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, icu_70::UnicodeString*, int)
Unexecuted instantiation: dtptngen.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, icu_70::UnicodeString*, int)
Unexecuted instantiation: calendar.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, icu_70::UnicodeString*, int)
Unexecuted instantiation: umsg.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, icu_70::UnicodeString*, int)
Unexecuted instantiation: choicfmt.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, icu_70::UnicodeString*, int)
76
77
/**
78
 * Copy an array of UnicodeString OBJECTS (not pointers).
79
 * @internal
80
 */
81
static inline void
82
uprv_arrayCopy(const icu::UnicodeString *src, int32_t srcStart,
83
               icu::UnicodeString *dst, int32_t dstStart, int32_t count)
84
0
{ uprv_arrayCopy(src+srcStart, dst+dstStart, count); }
Unexecuted instantiation: loadednormalizer2impl.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, int, icu_70::UnicodeString*, int, int)
Unexecuted instantiation: normalizer2.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, int, icu_70::UnicodeString*, int, int)
Unexecuted instantiation: udat.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, int, icu_70::UnicodeString*, int, int)
Unexecuted instantiation: dtfmtsym.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, int, icu_70::UnicodeString*, int, int)
Unexecuted instantiation: dtptngen.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, int, icu_70::UnicodeString*, int, int)
Unexecuted instantiation: calendar.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, int, icu_70::UnicodeString*, int, int)
Unexecuted instantiation: umsg.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, int, icu_70::UnicodeString*, int, int)
Unexecuted instantiation: choicfmt.cpp:uprv_arrayCopy(icu_70::UnicodeString const*, int, icu_70::UnicodeString*, int, int)
85
86
/**
87
 * Checks that the string is readable and writable.
88
 * Sets U_ILLEGAL_ARGUMENT_ERROR if the string isBogus() or has an open getBuffer().
89
 */
90
inline void
91
0
uprv_checkCanGetBuffer(const icu::UnicodeString &s, UErrorCode &errorCode) {
92
0
    if(U_SUCCESS(errorCode) && s.isBogus()) {
93
0
        errorCode=U_ILLEGAL_ARGUMENT_ERROR;
94
0
    }
95
0
}
96
97
#endif /* _CPPUTILS */