Coverage Report

Created: 2025-07-23 06:42

/src/irssi/subprojects/glib-2.74.3/glib/gutilsprivate.h
Line
Count
Source
1
/*
2
 * Copyright © 2018 Endless Mobile, Inc.
3
 *
4
 * SPDX-License-Identifier: LGPL-2.1-or-later
5
 *
6
 * This library is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU Lesser General Public
8
 * License as published by the Free Software Foundation; either
9
 * version 2.1 of the License, or (at your option) any later version.
10
 *
11
 * This library is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 * Lesser General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU Lesser General Public
17
 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
18
 *
19
 * Author: Philip Withnall <withnall@endlessm.com>
20
 */
21
22
#ifndef __G_UTILS_PRIVATE_H__
23
#define __G_UTILS_PRIVATE_H__
24
25
#include "glibconfig.h"
26
#include "gtypes.h"
27
#include "gtestutils.h"
28
29
G_BEGIN_DECLS
30
31
GLIB_AVAILABLE_IN_2_60
32
void g_set_user_dirs (const gchar *first_dir_type,
33
                      ...) G_GNUC_NULL_TERMINATED;
34
35
/* Returns the smallest power of 2 greater than or equal to n,
36
 * or 0 if such power does not fit in a gsize
37
 */
38
static inline gsize
39
g_nearest_pow (gsize num)
40
77.0M
{
41
77.0M
  gsize n = num - 1;
42
43
77.0M
  g_assert (num > 0 && num <= G_MAXSIZE / 2);
44
45
77.0M
  n |= n >> 1;
46
77.0M
  n |= n >> 2;
47
77.0M
  n |= n >> 4;
48
77.0M
  n |= n >> 8;
49
77.0M
  n |= n >> 16;
50
77.0M
#if GLIB_SIZEOF_SIZE_T == 8
51
77.0M
  n |= n >> 32;
52
77.0M
#endif
53
54
77.0M
  return n + 1;
55
77.0M
}
gstring.c:g_nearest_pow
Line
Count
Source
40
70.5M
{
41
70.5M
  gsize n = num - 1;
42
43
70.5M
  g_assert (num > 0 && num <= G_MAXSIZE / 2);
44
45
70.5M
  n |= n >> 1;
46
70.5M
  n |= n >> 2;
47
70.5M
  n |= n >> 4;
48
70.5M
  n |= n >> 8;
49
70.5M
  n |= n >> 16;
50
70.5M
#if GLIB_SIZEOF_SIZE_T == 8
51
70.5M
  n |= n >> 32;
52
70.5M
#endif
53
54
70.5M
  return n + 1;
55
70.5M
}
Unexecuted instantiation: gtestutils.c:g_nearest_pow
Unexecuted instantiation: gutils.c:g_nearest_pow
garray.c:g_nearest_pow
Line
Count
Source
40
6.51M
{
41
6.51M
  gsize n = num - 1;
42
43
6.51M
  g_assert (num > 0 && num <= G_MAXSIZE / 2);
44
45
6.51M
  n |= n >> 1;
46
6.51M
  n |= n >> 2;
47
6.51M
  n |= n >> 4;
48
6.51M
  n |= n >> 8;
49
6.51M
  n |= n >> 16;
50
6.51M
#if GLIB_SIZEOF_SIZE_T == 8
51
6.51M
  n |= n >> 32;
52
6.51M
#endif
53
54
6.51M
  return n + 1;
55
6.51M
}
56
57
G_END_DECLS
58
59
#endif /* __G_UTILS_PRIVATE_H__ */