LCOV - code coverage report
Current view: top level - glib - gutilsprivate.h (source / functions) Coverage Total Hit
Test: unnamed Lines: 100.0 % 12 12
Test Date: 2026-01-13 05:17:23 Functions: 100.0 % 2 2
Branches: - 0 0

             Branch data     Line data    Source code
       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                 :             : #include <math.h>
      30                 :             : #include <time.h>
      31                 :             : 
      32                 :             : G_BEGIN_DECLS
      33                 :             : 
      34                 :             : void g_set_user_dirs (const gchar *first_dir_type,
      35                 :             :                       ...) G_GNUC_NULL_TERMINATED;
      36                 :             : 
      37                 :             : /* Returns the smallest power of 2 greater than or equal to n,
      38                 :             :  * or 0 if such power does not fit in a gsize
      39                 :             :  */
      40                 :             : static inline gsize
      41                 :      884065 : g_nearest_pow (gsize num)
      42                 :             : {
      43                 :      884065 :   gsize n = num - 1;
      44                 :             : 
      45                 :      884065 :   g_assert (num > 0 && num <= G_MAXSIZE / 2);
      46                 :             : 
      47                 :      884065 :   n |= n >> 1;
      48                 :      884065 :   n |= n >> 2;
      49                 :      884065 :   n |= n >> 4;
      50                 :      884065 :   n |= n >> 8;
      51                 :      884065 :   n |= n >> 16;
      52                 :             : #if GLIB_SIZEOF_SIZE_T == 8
      53                 :      884065 :   n |= n >> 32;
      54                 :             : #endif
      55                 :             : 
      56                 :      884065 :   return n + 1;
      57                 :             : }
      58                 :             : 
      59                 :             : void _g_unset_cached_tmp_dir (void);
      60                 :             : 
      61                 :             : gboolean _g_localtime (time_t timet, struct tm *tm);
      62                 :             : 
      63                 :             : gboolean g_set_prgname_once (const gchar *prgname);
      64                 :             : 
      65                 :             : /* Although isnan() is defined as a type-independent macro in C99, mingw32
      66                 :             :  * doesn’t seem to support that (it defines `isnan (float d)` only). Older
      67                 :             :  * MSVC toolchains don’t support C99 either. So we provide an internal
      68                 :             :  * abstraction macro.
      69                 :             :  *
      70                 :             :  * This should not be made public; toolchains will soon enough catch up with
      71                 :             :  * C99, so third party code should just use isnan(). */
      72                 :             : static inline int
      73                 :     3654695 : g_isnan (double d)
      74                 :             : {
      75                 :             : #if (defined (_MSC_VER) && (_MSC_VER < 1800)) || defined(__MINGW32__)
      76                 :             :   return _isnan (d);
      77                 :             : #else
      78                 :     3654695 :   return isnan (d);
      79                 :             : #endif
      80                 :             : }
      81                 :             : 
      82                 :             : G_END_DECLS
      83                 :             : 
      84                 :             : #endif /* __G_UTILS_PRIVATE_H__ */
        

Generated by: LCOV version 2.0-1