(root)/
glib-2.79.0/
glib/
glib-autocleanups.h
       1  /*
       2   * Copyright © 2015 Canonical Limited
       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: Ryan Lortie <desrt@desrt.ca>
      20   */
      21  
      22  #if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
      23  #error "Only <glib.h> can be included directly."
      24  #endif
      25  
      26  #ifndef __GI_SCANNER__
      27  
      28  static inline void
      29  g_autoptr_cleanup_generic_gfree (void *p)
      30  {
      31    void **pp = (void**)p;
      32    g_free (*pp);
      33  }
      34  
      35  static inline void
      36  g_autoptr_cleanup_gstring_free (GString *string)
      37  {
      38    if (string)
      39      g_string_free (string, TRUE);
      40  }
      41  
      42  /* Ignore deprecations in case we refer to a type which was added in a more
      43   * recent GLib version than the user’s #GLIB_VERSION_MAX_ALLOWED definition. */
      44  G_GNUC_BEGIN_IGNORE_DEPRECATIONS
      45  
      46  /* If adding a cleanup here, please also add a test case to
      47   * glib/tests/autoptr.c
      48   */
      49  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GAsyncQueue, g_async_queue_unref)
      50  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GBookmarkFile, g_bookmark_file_free)
      51  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GBytes, g_bytes_unref)
      52  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GChecksum, g_checksum_free)
      53  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDateTime, g_date_time_unref)
      54  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDate, g_date_free)
      55  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GDir, g_dir_close)
      56  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GError, g_error_free)
      57  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GHashTable, g_hash_table_unref)
      58  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GHmac, g_hmac_unref)
      59  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GIOChannel, g_io_channel_unref)
      60  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GKeyFile, g_key_file_unref)
      61  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GList, g_list_free)
      62  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GArray, g_array_unref)
      63  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GPtrArray, g_ptr_array_unref)
      64  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GByteArray, g_byte_array_unref)
      65  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMainContext, g_main_context_unref)
      66  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMainContextPusher, g_main_context_pusher_free)
      67  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMainLoop, g_main_loop_unref)
      68  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSource, g_source_unref)
      69  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMappedFile, g_mapped_file_unref)
      70  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMarkupParseContext, g_markup_parse_context_unref)
      71  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GNode, g_node_destroy)
      72  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GOptionContext, g_option_context_free)
      73  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GOptionGroup, g_option_group_unref)
      74  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GPatternSpec, g_pattern_spec_free)
      75  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GQueue, g_queue_free)
      76  G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GQueue, g_queue_clear)
      77  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRand, g_rand_free)
      78  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRegex, g_regex_unref)
      79  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMatchInfo, g_match_info_unref)
      80  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GScanner, g_scanner_destroy)
      81  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSequence, g_sequence_free)
      82  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GSList, g_slist_free)
      83  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GString, g_autoptr_cleanup_gstring_free)
      84  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GStringChunk, g_string_chunk_free)
      85  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GStrvBuilder, g_strv_builder_unref)
      86  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GThread, g_thread_unref)
      87  G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GMutex, g_mutex_clear)
      88  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GMutexLocker, g_mutex_locker_free)
      89  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRecMutexLocker, g_rec_mutex_locker_free)
      90  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRWLockWriterLocker, g_rw_lock_writer_locker_free)
      91  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRWLockReaderLocker, g_rw_lock_reader_locker_free)
      92  G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GCond, g_cond_clear)
      93  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTimer, g_timer_destroy)
      94  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTimeZone, g_time_zone_unref)
      95  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GTree, g_tree_unref)
      96  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariant, g_variant_unref)
      97  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariantBuilder, g_variant_builder_unref)
      98  G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GVariantBuilder, g_variant_builder_clear)
      99  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariantIter, g_variant_iter_free)
     100  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariantDict, g_variant_dict_unref)
     101  G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(GVariantDict, g_variant_dict_clear)
     102  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GVariantType, g_variant_type_free)
     103  G_DEFINE_AUTO_CLEANUP_FREE_FUNC(GStrv, g_strfreev, NULL)
     104  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GRefString, g_ref_string_release)
     105  G_DEFINE_AUTOPTR_CLEANUP_FUNC(GUri, g_uri_unref)
     106  G_DEFINE_AUTOPTR_CLEANUP_FUNC (GPathBuf, g_path_buf_free)
     107  G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (GPathBuf, g_path_buf_clear)
     108  
     109  G_GNUC_END_IGNORE_DEPRECATIONS
     110  
     111  #endif /* __GI_SCANNER__ */