diff -Nru libgee-0.8-0.20.3/aclocal.m4 libgee-0.8-0.20.4/aclocal.m4 --- libgee-0.8-0.20.3/aclocal.m4 2020-02-09 19:03:13.000000000 +0000 +++ libgee-0.8-0.20.4/aclocal.m4 2021-03-17 19:58:38.000000000 +0000 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.16.1 -*- Autoconf -*- +# generated automatically by aclocal 1.16.3 -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,7 +20,7 @@ If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002-2018 Free Software Foundation, Inc. +# Copyright (C) 2002-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -35,7 +35,7 @@ [am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.16.1], [], +m4_if([$1], [1.16.3], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,14 +51,14 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.16.1])dnl +[AM_AUTOMAKE_VERSION([1.16.3])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -110,7 +110,7 @@ # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -141,7 +141,7 @@ Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -332,7 +332,7 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -371,7 +371,9 @@ done if test $am_rc -ne 0; then AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE="gmake" (or whatever is + necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking).]) fi @@ -398,7 +400,7 @@ # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -595,7 +597,7 @@ done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -616,7 +618,7 @@ fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2018 Free Software Foundation, Inc. +# Copyright (C) 2003-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -637,7 +639,7 @@ # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -680,7 +682,7 @@ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2018 Free Software Foundation, Inc. +# Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -701,12 +703,7 @@ [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac + MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then @@ -719,7 +716,7 @@ # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -748,7 +745,7 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -795,7 +792,7 @@ # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -814,7 +811,7 @@ # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -895,7 +892,7 @@ rm -f conftest.file ]) -# Copyright (C) 2009-2018 Free Software Foundation, Inc. +# Copyright (C) 2009-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -955,7 +952,7 @@ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2018 Free Software Foundation, Inc. +# Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -983,7 +980,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2018 Free Software Foundation, Inc. +# Copyright (C) 2006-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1002,7 +999,7 @@ # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2018 Free Software Foundation, Inc. +# Copyright (C) 2004-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1135,29 +1132,31 @@ # Autoconf support for the Vala compiler -# Copyright (C) 2008-2018 Free Software Foundation, Inc. +# Copyright (C) 2008-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# Check whether the Vala compiler exists in $PATH. If it is found, the -# variable VALAC is set pointing to its absolute path. Otherwise, it is -# simply set to 'valac'. -# Optionally a minimum release number of the compiler can be requested. -# If the ACTION-IF-FOUND parameter is given, it will be run if a proper -# Vala compiler is found. -# Similarly, if the ACTION-IF-FOUND is given, it will be run if no proper -# Vala compiler is found. It defaults to simply print a warning about the -# situation, but otherwise proceeding with the configuration. +# Search for a Vala compiler in PATH. If it is found, the variable VALAC is +# set to point to it. Otherwise, it is simply set to 'valac'. This macro +# takes three optional arguments. The first argument, if present, is the +# minimum version of the Vala API required to compile this package. For Vala +# releases, this is the same as the major and minor release number; e.g., when +# `valac --version' reports 0.48.7, `valac --api-version' reports 0.48. If a +# compiler is found and satisfies MINIMUM-VERSION, then ACTION-IF-FOUND is run +# (this defaults to do nothing). Otherwise, ACTION-IF-NOT-FOUND is run. If +# ACTION-IF-NOT-FOUND is not specified, the default value is to print a +# warning in case no compiler is found, or if a too-old version of the +# compiler is found. # # AM_PROG_VALAC([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # -------------------------------------------------------------------------- AC_DEFUN([AM_PROG_VALAC], [AC_PATH_PROG([VALAC], [valac], [valac]) AS_IF([test "$VALAC" != valac && test -n "$1"], - [AC_MSG_CHECKING([whether $VALAC is at least version $1]) - am__vala_version=`$VALAC --version | sed 's/Vala *//'` + [AC_MSG_CHECKING([whether $VALAC supports at least API version $1]) + am__vala_version=`$VALAC --api-version` AS_VERSION_COMPARE([$1], ["$am__vala_version"], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([yes])], @@ -1165,8 +1164,8 @@ VALAC=valac])]) if test "$VALAC" = valac; then m4_default([$3], - [AC_MSG_WARN([no proper vala compiler found]) - AC_MSG_WARN([you will not be able to compile vala source files])]) + [AC_MSG_WARN([Vala compiler not found or too old]) + AC_MSG_WARN([you will not be able to compile Vala source files])]) else m4_default([$2], [:]) fi]) diff -Nru libgee-0.8-0.20.3/benchmark/benchmark.c libgee-0.8-0.20.4/benchmark/benchmark.c --- libgee-0.8-0.20.3/benchmark/benchmark.c 2020-02-09 19:04:21.000000000 +0000 +++ libgee-0.8-0.20.4/benchmark/benchmark.c 2021-03-17 19:59:11.000000000 +0000 @@ -1,4 +1,4 @@ -/* benchmark.c generated by valac 0.46.6, the Vala compiler +/* benchmark.c generated by valac 0.52.0, the Vala compiler * generated from benchmark.vala, do not modify */ /* benchmark.vala @@ -310,83 +310,91 @@ static gint GeeBenchmarkBenchmark_private_offset; static gpointer gee_benchmark_benchmark_parent_class = NULL; -G_GNUC_INTERNAL void gee_benchmark_run_benchmark_option (const gchar* long_name, + G_GNUC_INTERNAL void gee_benchmark_run_benchmark_option (const gchar* long_name, gchar short_name, const gchar* description, gboolean* do_run, GOptionEntry* result); -G_GNUC_INTERNAL gint gee_benchmark_main (gchar** args, + G_GNUC_INTERNAL gint gee_benchmark_main (gchar** args, gint args_length1); void gee_benchmark_benchmark_sorts (void); -GType gee_benchmark_factory_get_type (void) G_GNUC_CONST; +GType gee_benchmark_factory_get_type (void) G_GNUC_CONST ; GeeCollection* gee_benchmark_factory_create (GeeBenchmarkFactory* self); GeeCollection* gee_benchmark_factory_copy (GeeBenchmarkFactory* self, GeeCollection* collection); -GType gee_benchmark_generator_get_type (void) G_GNUC_CONST; +static GType gee_benchmark_factory_get_type_once (void); +GType gee_benchmark_generator_get_type (void) G_GNUC_CONST ; void gee_benchmark_generator_generate_collection (GeeBenchmarkGenerator* self, gint size, GeeCollection* collection); const gchar* gee_benchmark_generator_get_name (GeeBenchmarkGenerator* self); -GType gee_benchmark_algorithm_get_type (void) G_GNUC_CONST; +static GType gee_benchmark_generator_get_type_once (void); +GType gee_benchmark_algorithm_get_type (void) G_GNUC_CONST ; void gee_benchmark_algorithm_process_collection (GeeBenchmarkAlgorithm* self, GeeCollection* collection); const gchar* gee_benchmark_algorithm_get_name (GeeBenchmarkAlgorithm* self); -GType gee_benchmark_random_int32_get_type (void) G_GNUC_CONST; +static GType gee_benchmark_algorithm_get_type_once (void); +GType gee_benchmark_random_int32_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkRandomInt32, g_object_unref) static void gee_benchmark_random_int32_real_generate_collection (GeeBenchmarkGenerator* base, gint size, GeeCollection* collection); GeeBenchmarkRandomInt32* gee_benchmark_random_int32_new (void); GeeBenchmarkRandomInt32* gee_benchmark_random_int32_construct (GType object_type); +static GType gee_benchmark_random_int32_get_type_once (void); static void _vala_gee_benchmark_random_int32_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); -GType gee_benchmark_fixed_variance_int32_get_type (void) G_GNUC_CONST; +GType gee_benchmark_fixed_variance_int32_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkFixedVarianceInt32, g_object_unref) static void gee_benchmark_fixed_variance_int32_real_generate_collection (GeeBenchmarkGenerator* base, gint size, GeeCollection* collection); GeeBenchmarkFixedVarianceInt32* gee_benchmark_fixed_variance_int32_new (void); GeeBenchmarkFixedVarianceInt32* gee_benchmark_fixed_variance_int32_construct (GType object_type); +static GType gee_benchmark_fixed_variance_int32_get_type_once (void); static void _vala_gee_benchmark_fixed_variance_int32_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); -GType gee_benchmark_mounts_int32_get_type (void) G_GNUC_CONST; +GType gee_benchmark_mounts_int32_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkMountsInt32, g_object_unref) static void gee_benchmark_mounts_int32_real_generate_collection (GeeBenchmarkGenerator* base, gint size, GeeCollection* collection); GeeBenchmarkMountsInt32* gee_benchmark_mounts_int32_new (void); GeeBenchmarkMountsInt32* gee_benchmark_mounts_int32_construct (GType object_type); +static GType gee_benchmark_mounts_int32_get_type_once (void); static void _vala_gee_benchmark_mounts_int32_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); -GType gee_benchmark_reverse_sorted_int32_get_type (void) G_GNUC_CONST; +GType gee_benchmark_reverse_sorted_int32_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkReverseSortedInt32, g_object_unref) static void gee_benchmark_reverse_sorted_int32_real_generate_collection (GeeBenchmarkGenerator* base, gint size, GeeCollection* collection); GeeBenchmarkReverseSortedInt32* gee_benchmark_reverse_sorted_int32_new (void); GeeBenchmarkReverseSortedInt32* gee_benchmark_reverse_sorted_int32_construct (GType object_type); +static GType gee_benchmark_reverse_sorted_int32_get_type_once (void); static void _vala_gee_benchmark_reverse_sorted_int32_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); -GType gee_benchmark_sorted_int32_get_type (void) G_GNUC_CONST; +GType gee_benchmark_sorted_int32_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkSortedInt32, g_object_unref) static void gee_benchmark_sorted_int32_real_generate_collection (GeeBenchmarkGenerator* base, gint size, GeeCollection* collection); GeeBenchmarkSortedInt32* gee_benchmark_sorted_int32_new (void); GeeBenchmarkSortedInt32* gee_benchmark_sorted_int32_construct (GType object_type); +static GType gee_benchmark_sorted_int32_get_type_once (void); static void _vala_gee_benchmark_sorted_int32_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); -GType gee_benchmark_array_list_factory_get_type (void) G_GNUC_CONST; +GType gee_benchmark_array_list_factory_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkArrayListFactory, g_object_unref) static GeeCollection* gee_benchmark_array_list_factory_real_create (GeeBenchmarkFactory* base); static GeeCollection* gee_benchmark_array_list_factory_real_copy (GeeBenchmarkFactory* base, @@ -398,6 +406,7 @@ GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); +static GType gee_benchmark_array_list_factory_get_type_once (void); static void _vala_gee_benchmark_array_list_factory_get_property (GObject * object, guint property_id, GValue * value, @@ -406,7 +415,7 @@ guint property_id, const GValue * value, GParamSpec * pspec); -GType gee_benchmark_benchmark_get_type (void) G_GNUC_CONST; +GType gee_benchmark_benchmark_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkBenchmark, g_object_unref) GeeBenchmarkBenchmark* gee_benchmark_benchmark_new (GType g_type, GBoxedCopyFunc g_dup_func, @@ -428,11 +437,12 @@ gint sizes_length1, gint iteration_count); static gint* _vala_array_dup1 (gint* self, - int length); + gint length); void gee_benchmark_benchmark_run (GeeBenchmarkBenchmark* self); void gee_benchmark_benchmark_display_results (GeeBenchmarkBenchmark* self, gint iteration); static void gee_benchmark_benchmark_finalize (GObject * obj); +static GType gee_benchmark_benchmark_get_type_once (void); static void _vala_gee_benchmark_benchmark_get_property (GObject * object, guint property_id, GValue * value, @@ -441,8 +451,10 @@ guint property_id, const GValue * value, GParamSpec * pspec); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_benchmark_run_benchmark_option (const gchar* long_name, gchar short_name, const gchar* description, @@ -455,7 +467,7 @@ memset (&_tmp0_, 0, sizeof (GOptionEntry)); _tmp0_.long_name = long_name; _tmp0_.short_name = short_name; - _tmp0_.flags = 0; + _tmp0_.flags = (gint) 0; _tmp0_.arg = G_OPTION_ARG_NONE; _tmp0_.arg_data = do_run; _tmp0_.description = description; @@ -464,7 +476,7 @@ return; } -G_GNUC_INTERNAL gint + G_GNUC_INTERNAL gint gee_benchmark_main (gchar** args, gint args_length1) { @@ -557,16 +569,26 @@ GeeCollection* gee_benchmark_factory_create (GeeBenchmarkFactory* self) { + GeeBenchmarkFactoryIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_BENCHMARK_FACTORY_GET_INTERFACE (self)->create (self); + _iface_ = GEE_BENCHMARK_FACTORY_GET_INTERFACE (self); + if (_iface_->create) { + return _iface_->create (self); + } + return NULL; } GeeCollection* gee_benchmark_factory_copy (GeeBenchmarkFactory* self, GeeCollection* collection) { + GeeBenchmarkFactoryIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_BENCHMARK_FACTORY_GET_INTERFACE (self)->copy (self, collection); + _iface_ = GEE_BENCHMARK_FACTORY_GET_INTERFACE (self); + if (_iface_->copy) { + return _iface_->copy (self, collection); + } + return NULL; } static void @@ -575,15 +597,23 @@ { } +static GType +gee_benchmark_factory_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkFactoryIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_factory_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_benchmark_factory_type_id; + gee_benchmark_factory_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBenchmarkFactory", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_benchmark_factory_type_id, G_TYPE_OBJECT); + return gee_benchmark_factory_type_id; +} + GType gee_benchmark_factory_get_type (void) { static volatile gsize gee_benchmark_factory_type_id__volatile = 0; if (g_once_init_enter (&gee_benchmark_factory_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkFactoryIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_factory_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_benchmark_factory_type_id; - gee_benchmark_factory_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBenchmarkFactory", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_benchmark_factory_type_id, G_TYPE_OBJECT); + gee_benchmark_factory_type_id = gee_benchmark_factory_get_type_once (); g_once_init_leave (&gee_benchmark_factory_type_id__volatile, gee_benchmark_factory_type_id); } return gee_benchmark_factory_type_id__volatile; @@ -594,15 +624,24 @@ gint size, GeeCollection* collection) { + GeeBenchmarkGeneratorIface* _iface_; g_return_if_fail (self != NULL); - GEE_BENCHMARK_GENERATOR_GET_INTERFACE (self)->generate_collection (self, size, collection); + _iface_ = GEE_BENCHMARK_GENERATOR_GET_INTERFACE (self); + if (_iface_->generate_collection) { + _iface_->generate_collection (self, size, collection); + } } const gchar* gee_benchmark_generator_get_name (GeeBenchmarkGenerator* self) { + GeeBenchmarkGeneratorIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_BENCHMARK_GENERATOR_GET_INTERFACE (self)->get_name (self); + _iface_ = GEE_BENCHMARK_GENERATOR_GET_INTERFACE (self); + if (_iface_->get_name) { + return _iface_->get_name (self); + } + return NULL; } static void @@ -612,15 +651,23 @@ g_object_interface_install_property (iface, g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); } +static GType +gee_benchmark_generator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkGeneratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_generator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_benchmark_generator_type_id; + gee_benchmark_generator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBenchmarkGenerator", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_benchmark_generator_type_id, G_TYPE_OBJECT); + return gee_benchmark_generator_type_id; +} + GType gee_benchmark_generator_get_type (void) { static volatile gsize gee_benchmark_generator_type_id__volatile = 0; if (g_once_init_enter (&gee_benchmark_generator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkGeneratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_generator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_benchmark_generator_type_id; - gee_benchmark_generator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBenchmarkGenerator", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_benchmark_generator_type_id, G_TYPE_OBJECT); + gee_benchmark_generator_type_id = gee_benchmark_generator_get_type_once (); g_once_init_leave (&gee_benchmark_generator_type_id__volatile, gee_benchmark_generator_type_id); } return gee_benchmark_generator_type_id__volatile; @@ -630,15 +677,24 @@ gee_benchmark_algorithm_process_collection (GeeBenchmarkAlgorithm* self, GeeCollection* collection) { + GeeBenchmarkAlgorithmIface* _iface_; g_return_if_fail (self != NULL); - GEE_BENCHMARK_ALGORITHM_GET_INTERFACE (self)->process_collection (self, collection); + _iface_ = GEE_BENCHMARK_ALGORITHM_GET_INTERFACE (self); + if (_iface_->process_collection) { + _iface_->process_collection (self, collection); + } } const gchar* gee_benchmark_algorithm_get_name (GeeBenchmarkAlgorithm* self) { + GeeBenchmarkAlgorithmIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_BENCHMARK_ALGORITHM_GET_INTERFACE (self)->get_name (self); + _iface_ = GEE_BENCHMARK_ALGORITHM_GET_INTERFACE (self); + if (_iface_->get_name) { + return _iface_->get_name (self); + } + return NULL; } static void @@ -648,15 +704,23 @@ g_object_interface_install_property (iface, g_param_spec_string ("name", "name", "name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); } +static GType +gee_benchmark_algorithm_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkAlgorithmIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_algorithm_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_benchmark_algorithm_type_id; + gee_benchmark_algorithm_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBenchmarkAlgorithm", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_benchmark_algorithm_type_id, G_TYPE_OBJECT); + return gee_benchmark_algorithm_type_id; +} + GType gee_benchmark_algorithm_get_type (void) { static volatile gsize gee_benchmark_algorithm_type_id__volatile = 0; if (g_once_init_enter (&gee_benchmark_algorithm_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkAlgorithmIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_algorithm_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_benchmark_algorithm_type_id; - gee_benchmark_algorithm_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBenchmarkAlgorithm", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_benchmark_algorithm_type_id, G_TYPE_OBJECT); + gee_benchmark_algorithm_type_id = gee_benchmark_algorithm_get_type_once (); g_once_init_leave (&gee_benchmark_algorithm_type_id__volatile, gee_benchmark_algorithm_type_id); } return gee_benchmark_algorithm_type_id__volatile; @@ -740,16 +804,24 @@ { } +static GType +gee_benchmark_random_int32_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkRandomInt32Class), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_random_int32_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkRandomInt32), 0, (GInstanceInitFunc) gee_benchmark_random_int32_instance_init, NULL }; + static const GInterfaceInfo gee_benchmark_generator_info = { (GInterfaceInitFunc) gee_benchmark_random_int32_gee_benchmark_generator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_benchmark_random_int32_type_id; + gee_benchmark_random_int32_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkRandomInt32", &g_define_type_info, 0); + g_type_add_interface_static (gee_benchmark_random_int32_type_id, GEE_BENCHMARK_TYPE_GENERATOR, &gee_benchmark_generator_info); + return gee_benchmark_random_int32_type_id; +} + GType gee_benchmark_random_int32_get_type (void) { static volatile gsize gee_benchmark_random_int32_type_id__volatile = 0; if (g_once_init_enter (&gee_benchmark_random_int32_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkRandomInt32Class), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_random_int32_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkRandomInt32), 0, (GInstanceInitFunc) gee_benchmark_random_int32_instance_init, NULL }; - static const GInterfaceInfo gee_benchmark_generator_info = { (GInterfaceInitFunc) gee_benchmark_random_int32_gee_benchmark_generator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_benchmark_random_int32_type_id; - gee_benchmark_random_int32_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkRandomInt32", &g_define_type_info, 0); - g_type_add_interface_static (gee_benchmark_random_int32_type_id, GEE_BENCHMARK_TYPE_GENERATOR, &gee_benchmark_generator_info); + gee_benchmark_random_int32_type_id = gee_benchmark_random_int32_get_type_once (); g_once_init_leave (&gee_benchmark_random_int32_type_id__volatile, gee_benchmark_random_int32_type_id); } return gee_benchmark_random_int32_type_id__volatile; @@ -799,7 +871,7 @@ if (!(i < size)) { break; } - gee_collection_add (collection, (gpointer) ((gintptr) ((gint32) ((i + g_random_int_range ((gint32) 0, (gint32) variance)) - (variance / 2))))); + gee_collection_add (collection, (gpointer) ((gintptr) ((i + g_random_int_range ((gint32) 0, (gint32) variance)) - (variance / 2)))); } } } @@ -853,16 +925,24 @@ { } +static GType +gee_benchmark_fixed_variance_int32_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkFixedVarianceInt32Class), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_fixed_variance_int32_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkFixedVarianceInt32), 0, (GInstanceInitFunc) gee_benchmark_fixed_variance_int32_instance_init, NULL }; + static const GInterfaceInfo gee_benchmark_generator_info = { (GInterfaceInitFunc) gee_benchmark_fixed_variance_int32_gee_benchmark_generator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_benchmark_fixed_variance_int32_type_id; + gee_benchmark_fixed_variance_int32_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkFixedVarianceInt32", &g_define_type_info, 0); + g_type_add_interface_static (gee_benchmark_fixed_variance_int32_type_id, GEE_BENCHMARK_TYPE_GENERATOR, &gee_benchmark_generator_info); + return gee_benchmark_fixed_variance_int32_type_id; +} + GType gee_benchmark_fixed_variance_int32_get_type (void) { static volatile gsize gee_benchmark_fixed_variance_int32_type_id__volatile = 0; if (g_once_init_enter (&gee_benchmark_fixed_variance_int32_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkFixedVarianceInt32Class), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_fixed_variance_int32_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkFixedVarianceInt32), 0, (GInstanceInitFunc) gee_benchmark_fixed_variance_int32_instance_init, NULL }; - static const GInterfaceInfo gee_benchmark_generator_info = { (GInterfaceInitFunc) gee_benchmark_fixed_variance_int32_gee_benchmark_generator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_benchmark_fixed_variance_int32_type_id; - gee_benchmark_fixed_variance_int32_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkFixedVarianceInt32", &g_define_type_info, 0); - g_type_add_interface_static (gee_benchmark_fixed_variance_int32_type_id, GEE_BENCHMARK_TYPE_GENERATOR, &gee_benchmark_generator_info); + gee_benchmark_fixed_variance_int32_type_id = gee_benchmark_fixed_variance_int32_get_type_once (); g_once_init_leave (&gee_benchmark_fixed_variance_int32_type_id__volatile, gee_benchmark_fixed_variance_int32_type_id); } return gee_benchmark_fixed_variance_int32_type_id__volatile; @@ -924,7 +1004,7 @@ if (!(i < width)) { break; } - gee_collection_add (collection, (gpointer) ((gintptr) ((gint32) (last + (height / width))))); + gee_collection_add (collection, (gpointer) ((gintptr) (last + (height / width)))); } } } @@ -981,16 +1061,24 @@ { } +static GType +gee_benchmark_mounts_int32_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkMountsInt32Class), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_mounts_int32_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkMountsInt32), 0, (GInstanceInitFunc) gee_benchmark_mounts_int32_instance_init, NULL }; + static const GInterfaceInfo gee_benchmark_generator_info = { (GInterfaceInitFunc) gee_benchmark_mounts_int32_gee_benchmark_generator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_benchmark_mounts_int32_type_id; + gee_benchmark_mounts_int32_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkMountsInt32", &g_define_type_info, 0); + g_type_add_interface_static (gee_benchmark_mounts_int32_type_id, GEE_BENCHMARK_TYPE_GENERATOR, &gee_benchmark_generator_info); + return gee_benchmark_mounts_int32_type_id; +} + GType gee_benchmark_mounts_int32_get_type (void) { static volatile gsize gee_benchmark_mounts_int32_type_id__volatile = 0; if (g_once_init_enter (&gee_benchmark_mounts_int32_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkMountsInt32Class), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_mounts_int32_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkMountsInt32), 0, (GInstanceInitFunc) gee_benchmark_mounts_int32_instance_init, NULL }; - static const GInterfaceInfo gee_benchmark_generator_info = { (GInterfaceInitFunc) gee_benchmark_mounts_int32_gee_benchmark_generator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_benchmark_mounts_int32_type_id; - gee_benchmark_mounts_int32_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkMountsInt32", &g_define_type_info, 0); - g_type_add_interface_static (gee_benchmark_mounts_int32_type_id, GEE_BENCHMARK_TYPE_GENERATOR, &gee_benchmark_generator_info); + gee_benchmark_mounts_int32_type_id = gee_benchmark_mounts_int32_get_type_once (); g_once_init_leave (&gee_benchmark_mounts_int32_type_id__volatile, gee_benchmark_mounts_int32_type_id); } return gee_benchmark_mounts_int32_type_id__volatile; @@ -1038,7 +1126,7 @@ if (!(i < size)) { break; } - gee_collection_add (collection, (gpointer) ((gintptr) ((gint32) ((size - i) - 1)))); + gee_collection_add (collection, (gpointer) ((gintptr) ((size - i) - 1))); } } } @@ -1092,16 +1180,24 @@ { } +static GType +gee_benchmark_reverse_sorted_int32_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkReverseSortedInt32Class), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_reverse_sorted_int32_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkReverseSortedInt32), 0, (GInstanceInitFunc) gee_benchmark_reverse_sorted_int32_instance_init, NULL }; + static const GInterfaceInfo gee_benchmark_generator_info = { (GInterfaceInitFunc) gee_benchmark_reverse_sorted_int32_gee_benchmark_generator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_benchmark_reverse_sorted_int32_type_id; + gee_benchmark_reverse_sorted_int32_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkReverseSortedInt32", &g_define_type_info, 0); + g_type_add_interface_static (gee_benchmark_reverse_sorted_int32_type_id, GEE_BENCHMARK_TYPE_GENERATOR, &gee_benchmark_generator_info); + return gee_benchmark_reverse_sorted_int32_type_id; +} + GType gee_benchmark_reverse_sorted_int32_get_type (void) { static volatile gsize gee_benchmark_reverse_sorted_int32_type_id__volatile = 0; if (g_once_init_enter (&gee_benchmark_reverse_sorted_int32_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkReverseSortedInt32Class), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_reverse_sorted_int32_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkReverseSortedInt32), 0, (GInstanceInitFunc) gee_benchmark_reverse_sorted_int32_instance_init, NULL }; - static const GInterfaceInfo gee_benchmark_generator_info = { (GInterfaceInitFunc) gee_benchmark_reverse_sorted_int32_gee_benchmark_generator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_benchmark_reverse_sorted_int32_type_id; - gee_benchmark_reverse_sorted_int32_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkReverseSortedInt32", &g_define_type_info, 0); - g_type_add_interface_static (gee_benchmark_reverse_sorted_int32_type_id, GEE_BENCHMARK_TYPE_GENERATOR, &gee_benchmark_generator_info); + gee_benchmark_reverse_sorted_int32_type_id = gee_benchmark_reverse_sorted_int32_get_type_once (); g_once_init_leave (&gee_benchmark_reverse_sorted_int32_type_id__volatile, gee_benchmark_reverse_sorted_int32_type_id); } return gee_benchmark_reverse_sorted_int32_type_id__volatile; @@ -1149,7 +1245,7 @@ if (!(i < size)) { break; } - gee_collection_add (collection, (gpointer) ((gintptr) ((gint32) i))); + gee_collection_add (collection, (gpointer) ((gintptr) i)); } } } @@ -1203,16 +1299,24 @@ { } +static GType +gee_benchmark_sorted_int32_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkSortedInt32Class), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_sorted_int32_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkSortedInt32), 0, (GInstanceInitFunc) gee_benchmark_sorted_int32_instance_init, NULL }; + static const GInterfaceInfo gee_benchmark_generator_info = { (GInterfaceInitFunc) gee_benchmark_sorted_int32_gee_benchmark_generator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_benchmark_sorted_int32_type_id; + gee_benchmark_sorted_int32_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkSortedInt32", &g_define_type_info, 0); + g_type_add_interface_static (gee_benchmark_sorted_int32_type_id, GEE_BENCHMARK_TYPE_GENERATOR, &gee_benchmark_generator_info); + return gee_benchmark_sorted_int32_type_id; +} + GType gee_benchmark_sorted_int32_get_type (void) { static volatile gsize gee_benchmark_sorted_int32_type_id__volatile = 0; if (g_once_init_enter (&gee_benchmark_sorted_int32_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkSortedInt32Class), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_sorted_int32_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkSortedInt32), 0, (GInstanceInitFunc) gee_benchmark_sorted_int32_instance_init, NULL }; - static const GInterfaceInfo gee_benchmark_generator_info = { (GInterfaceInitFunc) gee_benchmark_sorted_int32_gee_benchmark_generator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_benchmark_sorted_int32_type_id; - gee_benchmark_sorted_int32_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkSortedInt32", &g_define_type_info, 0); - g_type_add_interface_static (gee_benchmark_sorted_int32_type_id, GEE_BENCHMARK_TYPE_GENERATOR, &gee_benchmark_generator_info); + gee_benchmark_sorted_int32_type_id = gee_benchmark_sorted_int32_get_type_once (); g_once_init_leave (&gee_benchmark_sorted_int32_type_id__volatile, gee_benchmark_sorted_int32_type_id); } return gee_benchmark_sorted_int32_type_id__volatile; @@ -1347,17 +1451,25 @@ self->priv = gee_benchmark_array_list_factory_get_instance_private (self); } +static GType +gee_benchmark_array_list_factory_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkArrayListFactoryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_array_list_factory_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkArrayListFactory), 0, (GInstanceInitFunc) gee_benchmark_array_list_factory_instance_init, NULL }; + static const GInterfaceInfo gee_benchmark_factory_info = { (GInterfaceInitFunc) gee_benchmark_array_list_factory_gee_benchmark_factory_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_benchmark_array_list_factory_type_id; + gee_benchmark_array_list_factory_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkArrayListFactory", &g_define_type_info, 0); + g_type_add_interface_static (gee_benchmark_array_list_factory_type_id, GEE_BENCHMARK_TYPE_FACTORY, &gee_benchmark_factory_info); + GeeBenchmarkArrayListFactory_private_offset = g_type_add_instance_private (gee_benchmark_array_list_factory_type_id, sizeof (GeeBenchmarkArrayListFactoryPrivate)); + return gee_benchmark_array_list_factory_type_id; +} + GType gee_benchmark_array_list_factory_get_type (void) { static volatile gsize gee_benchmark_array_list_factory_type_id__volatile = 0; if (g_once_init_enter (&gee_benchmark_array_list_factory_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkArrayListFactoryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_array_list_factory_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkArrayListFactory), 0, (GInstanceInitFunc) gee_benchmark_array_list_factory_instance_init, NULL }; - static const GInterfaceInfo gee_benchmark_factory_info = { (GInterfaceInitFunc) gee_benchmark_array_list_factory_gee_benchmark_factory_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_benchmark_array_list_factory_type_id; - gee_benchmark_array_list_factory_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkArrayListFactory", &g_define_type_info, 0); - g_type_add_interface_static (gee_benchmark_array_list_factory_type_id, GEE_BENCHMARK_TYPE_FACTORY, &gee_benchmark_factory_info); - GeeBenchmarkArrayListFactory_private_offset = g_type_add_instance_private (gee_benchmark_array_list_factory_type_id, sizeof (GeeBenchmarkArrayListFactoryPrivate)); + gee_benchmark_array_list_factory_type_id = gee_benchmark_array_list_factory_get_type_once (); g_once_init_leave (&gee_benchmark_array_list_factory_type_id__volatile, gee_benchmark_array_list_factory_type_id); } return gee_benchmark_array_list_factory_type_id__volatile; @@ -1425,9 +1537,12 @@ static gint* _vala_array_dup1 (gint* self, - int length) + gint length) { - return g_memdup (self, length * sizeof (gint)); + if (length > 0) { + return _vala_memdup2 (self, length * sizeof (gint)); + } + return NULL; } GeeBenchmarkBenchmark* @@ -2046,15 +2161,23 @@ G_OBJECT_CLASS (gee_benchmark_benchmark_parent_class)->finalize (obj); } +static GType +gee_benchmark_benchmark_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkBenchmarkClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_benchmark_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkBenchmark), 0, (GInstanceInitFunc) gee_benchmark_benchmark_instance_init, NULL }; + GType gee_benchmark_benchmark_type_id; + gee_benchmark_benchmark_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkBenchmark", &g_define_type_info, 0); + GeeBenchmarkBenchmark_private_offset = g_type_add_instance_private (gee_benchmark_benchmark_type_id, sizeof (GeeBenchmarkBenchmarkPrivate)); + return gee_benchmark_benchmark_type_id; +} + GType gee_benchmark_benchmark_get_type (void) { static volatile gsize gee_benchmark_benchmark_type_id__volatile = 0; if (g_once_init_enter (&gee_benchmark_benchmark_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkBenchmarkClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_benchmark_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkBenchmark), 0, (GInstanceInitFunc) gee_benchmark_benchmark_instance_init, NULL }; GType gee_benchmark_benchmark_type_id; - gee_benchmark_benchmark_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkBenchmark", &g_define_type_info, 0); - GeeBenchmarkBenchmark_private_offset = g_type_add_instance_private (gee_benchmark_benchmark_type_id, sizeof (GeeBenchmarkBenchmarkPrivate)); + gee_benchmark_benchmark_type_id = gee_benchmark_benchmark_get_type_once (); g_once_init_leave (&gee_benchmark_benchmark_type_id__volatile, gee_benchmark_benchmark_type_id); } return gee_benchmark_benchmark_type_id__volatile; @@ -2108,3 +2231,17 @@ } } +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff -Nru libgee-0.8-0.20.3/benchmark/benchmarksorts.c libgee-0.8-0.20.4/benchmark/benchmarksorts.c --- libgee-0.8-0.20.3/benchmark/benchmarksorts.c 2020-02-09 19:04:21.000000000 +0000 +++ libgee-0.8-0.20.4/benchmark/benchmarksorts.c 2021-03-17 19:59:11.000000000 +0000 @@ -1,4 +1,4 @@ -/* benchmarksorts.c generated by valac 0.46.6, the Vala compiler +/* benchmarksorts.c generated by valac 0.52.0, the Vala compiler * generated from benchmarksorts.vala, do not modify */ /* benchmarksorts.vala @@ -177,7 +177,6 @@ typedef struct _GeeMergeSort GeeMergeSort; typedef struct _GeeMergeSortClass GeeMergeSortClass; typedef struct _GeeMergeSortPrivate GeeMergeSortPrivate; -#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL))) #define _gee_merge_sort_unref0(var) ((var == NULL) ? NULL : (var = (gee_merge_sort_unref (var), NULL))) typedef struct _GeeParamSpecMergeSort GeeParamSpecMergeSort; @@ -271,8 +270,8 @@ static gint GeeMergeSort_private_offset; static gpointer gee_merge_sort_parent_class = NULL; -GType gee_benchmark_algorithm_get_type (void) G_GNUC_CONST; -GType gee_benchmark_tim_sort_get_type (void) G_GNUC_CONST; +GType gee_benchmark_algorithm_get_type (void) G_GNUC_CONST ; +GType gee_benchmark_tim_sort_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkTimSort, g_object_unref) static void gee_benchmark_tim_sort_real_process_collection (GeeBenchmarkAlgorithm* base, GeeCollection* collection); @@ -283,7 +282,10 @@ GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); +void gee_benchmark_algorithm_process_collection (GeeBenchmarkAlgorithm* self, + GeeCollection* collection); const gchar* gee_benchmark_algorithm_get_name (GeeBenchmarkAlgorithm* self); +static GType gee_benchmark_tim_sort_get_type_once (void); static void _vala_gee_benchmark_tim_sort_get_property (GObject * object, guint property_id, GValue * value, @@ -292,11 +294,11 @@ guint property_id, const GValue * value, GParamSpec * pspec); -GType gee_benchmark_merge_sort_get_type (void) G_GNUC_CONST; +GType gee_benchmark_merge_sort_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkMergeSort, g_object_unref) static void gee_benchmark_merge_sort_real_process_collection (GeeBenchmarkAlgorithm* base, GeeCollection* collection); -G_GNUC_INTERNAL void gee_merge_sort_sort (GType g_type, + G_GNUC_INTERNAL void gee_merge_sort_sort (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeList* list, @@ -309,6 +311,7 @@ GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); +static GType gee_benchmark_merge_sort_get_type_once (void); static void _vala_gee_benchmark_merge_sort_get_property (GObject * object, guint property_id, GValue * value, @@ -318,28 +321,28 @@ const GValue * value, GParamSpec * pspec); void gee_benchmark_benchmark_sorts (void); -GType gee_benchmark_generator_get_type (void) G_GNUC_CONST; +GType gee_benchmark_generator_get_type (void) G_GNUC_CONST ; GeeBenchmarkRandomInt32* gee_benchmark_random_int32_new (void); GeeBenchmarkRandomInt32* gee_benchmark_random_int32_construct (GType object_type); -GType gee_benchmark_random_int32_get_type (void) G_GNUC_CONST; +GType gee_benchmark_random_int32_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkRandomInt32, g_object_unref) GeeBenchmarkFixedVarianceInt32* gee_benchmark_fixed_variance_int32_new (void); GeeBenchmarkFixedVarianceInt32* gee_benchmark_fixed_variance_int32_construct (GType object_type); -GType gee_benchmark_fixed_variance_int32_get_type (void) G_GNUC_CONST; +GType gee_benchmark_fixed_variance_int32_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkFixedVarianceInt32, g_object_unref) GeeBenchmarkMountsInt32* gee_benchmark_mounts_int32_new (void); GeeBenchmarkMountsInt32* gee_benchmark_mounts_int32_construct (GType object_type); -GType gee_benchmark_mounts_int32_get_type (void) G_GNUC_CONST; +GType gee_benchmark_mounts_int32_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkMountsInt32, g_object_unref) GeeBenchmarkReverseSortedInt32* gee_benchmark_reverse_sorted_int32_new (void); GeeBenchmarkReverseSortedInt32* gee_benchmark_reverse_sorted_int32_construct (GType object_type); -GType gee_benchmark_reverse_sorted_int32_get_type (void) G_GNUC_CONST; +GType gee_benchmark_reverse_sorted_int32_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkReverseSortedInt32, g_object_unref) GeeBenchmarkSortedInt32* gee_benchmark_sorted_int32_new (void); GeeBenchmarkSortedInt32* gee_benchmark_sorted_int32_construct (GType object_type); -GType gee_benchmark_sorted_int32_get_type (void) G_GNUC_CONST; +GType gee_benchmark_sorted_int32_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkSortedInt32, g_object_unref) -GType gee_benchmark_benchmark_get_type (void) G_GNUC_CONST; +GType gee_benchmark_benchmark_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkBenchmark, g_object_unref) GeeBenchmarkArrayListFactory* gee_benchmark_array_list_factory_new (GType g_type, GBoxedCopyFunc g_dup_func, @@ -348,9 +351,9 @@ GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); -GType gee_benchmark_array_list_factory_get_type (void) G_GNUC_CONST; +GType gee_benchmark_array_list_factory_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeBenchmarkArrayListFactory, g_object_unref) -GType gee_benchmark_factory_get_type (void) G_GNUC_CONST; +GType gee_benchmark_factory_get_type (void) G_GNUC_CONST ; GeeBenchmarkBenchmark* gee_benchmark_benchmark_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -371,36 +374,36 @@ gint sizes_length1, gint iteration_count); void gee_benchmark_benchmark_run (GeeBenchmarkBenchmark* self); -G_GNUC_INTERNAL gpointer gee_merge_sort_ref (gpointer instance); -G_GNUC_INTERNAL void gee_merge_sort_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_param_spec_merge_sort (const gchar* name, + G_GNUC_INTERNAL gpointer gee_merge_sort_ref (gpointer instance); + G_GNUC_INTERNAL void gee_merge_sort_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_param_spec_merge_sort (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_value_set_merge_sort (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_value_take_merge_sort (GValue* value, + G_GNUC_INTERNAL void gee_value_set_merge_sort (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_value_take_merge_sort (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_value_get_merge_sort (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_merge_sort_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; + G_GNUC_INTERNAL gpointer gee_value_get_merge_sort (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_merge_sort_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMergeSort, gee_merge_sort_unref) -G_GNUC_INTERNAL void gee_merge_sort_sort_arraylist (GType g_type, + G_GNUC_INTERNAL void gee_merge_sort_sort_arraylist (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeArrayList* list, GCompareDataFunc compare, gpointer compare_target); -G_GNUC_INTERNAL void gee_merge_sort_sort_list (GType g_type, + G_GNUC_INTERNAL void gee_merge_sort_sort_list (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeList* list, GCompareDataFunc compare, gpointer compare_target); -G_GNUC_INTERNAL GeeMergeSort* gee_merge_sort_new (GType g_type, + G_GNUC_INTERNAL GeeMergeSort* gee_merge_sort_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); -G_GNUC_INTERNAL GeeMergeSort* gee_merge_sort_construct (GType object_type, + G_GNUC_INTERNAL GeeMergeSort* gee_merge_sort_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); @@ -411,12 +414,15 @@ gpointer* work_area, gint work_area_length1); static void gee_merge_sort_finalize (GeeMergeSort * obj); +static GType gee_merge_sort_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func); +static inline gpointer _vala_memdup2 (gconstpointer mem, + gsize byte_size); static inline gpointer gee_benchmark_tim_sort_get_instance_private (GeeBenchmarkTimSort* self) @@ -496,17 +502,25 @@ self->priv = gee_benchmark_tim_sort_get_instance_private (self); } +static GType +gee_benchmark_tim_sort_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkTimSortClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_tim_sort_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkTimSort), 0, (GInstanceInitFunc) gee_benchmark_tim_sort_instance_init, NULL }; + static const GInterfaceInfo gee_benchmark_algorithm_info = { (GInterfaceInitFunc) gee_benchmark_tim_sort_gee_benchmark_algorithm_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_benchmark_tim_sort_type_id; + gee_benchmark_tim_sort_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkTimSort", &g_define_type_info, 0); + g_type_add_interface_static (gee_benchmark_tim_sort_type_id, GEE_BENCHMARK_TYPE_ALGORITHM, &gee_benchmark_algorithm_info); + GeeBenchmarkTimSort_private_offset = g_type_add_instance_private (gee_benchmark_tim_sort_type_id, sizeof (GeeBenchmarkTimSortPrivate)); + return gee_benchmark_tim_sort_type_id; +} + GType gee_benchmark_tim_sort_get_type (void) { static volatile gsize gee_benchmark_tim_sort_type_id__volatile = 0; if (g_once_init_enter (&gee_benchmark_tim_sort_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkTimSortClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_tim_sort_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkTimSort), 0, (GInstanceInitFunc) gee_benchmark_tim_sort_instance_init, NULL }; - static const GInterfaceInfo gee_benchmark_algorithm_info = { (GInterfaceInitFunc) gee_benchmark_tim_sort_gee_benchmark_algorithm_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_benchmark_tim_sort_type_id; - gee_benchmark_tim_sort_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkTimSort", &g_define_type_info, 0); - g_type_add_interface_static (gee_benchmark_tim_sort_type_id, GEE_BENCHMARK_TYPE_ALGORITHM, &gee_benchmark_algorithm_info); - GeeBenchmarkTimSort_private_offset = g_type_add_instance_private (gee_benchmark_tim_sort_type_id, sizeof (GeeBenchmarkTimSortPrivate)); + gee_benchmark_tim_sort_type_id = gee_benchmark_tim_sort_get_type_once (); g_once_init_leave (&gee_benchmark_tim_sort_type_id__volatile, gee_benchmark_tim_sort_type_id); } return gee_benchmark_tim_sort_type_id__volatile; @@ -575,7 +589,7 @@ { GeeBenchmarkMergeSort * self; GCompareDataFunc compare = NULL; - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GCompareDataFunc _tmp2_; gpointer compare_target; @@ -655,17 +669,25 @@ self->priv = gee_benchmark_merge_sort_get_instance_private (self); } +static GType +gee_benchmark_merge_sort_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkMergeSortClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_merge_sort_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkMergeSort), 0, (GInstanceInitFunc) gee_benchmark_merge_sort_instance_init, NULL }; + static const GInterfaceInfo gee_benchmark_algorithm_info = { (GInterfaceInitFunc) gee_benchmark_merge_sort_gee_benchmark_algorithm_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_benchmark_merge_sort_type_id; + gee_benchmark_merge_sort_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkMergeSort", &g_define_type_info, 0); + g_type_add_interface_static (gee_benchmark_merge_sort_type_id, GEE_BENCHMARK_TYPE_ALGORITHM, &gee_benchmark_algorithm_info); + GeeBenchmarkMergeSort_private_offset = g_type_add_instance_private (gee_benchmark_merge_sort_type_id, sizeof (GeeBenchmarkMergeSortPrivate)); + return gee_benchmark_merge_sort_type_id; +} + GType gee_benchmark_merge_sort_get_type (void) { static volatile gsize gee_benchmark_merge_sort_type_id__volatile = 0; if (g_once_init_enter (&gee_benchmark_merge_sort_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBenchmarkMergeSortClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_benchmark_merge_sort_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeBenchmarkMergeSort), 0, (GInstanceInitFunc) gee_benchmark_merge_sort_instance_init, NULL }; - static const GInterfaceInfo gee_benchmark_algorithm_info = { (GInterfaceInitFunc) gee_benchmark_merge_sort_gee_benchmark_algorithm_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_benchmark_merge_sort_type_id; - gee_benchmark_merge_sort_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeBenchmarkMergeSort", &g_define_type_info, 0); - g_type_add_interface_static (gee_benchmark_merge_sort_type_id, GEE_BENCHMARK_TYPE_ALGORITHM, &gee_benchmark_algorithm_info); - GeeBenchmarkMergeSort_private_offset = g_type_add_instance_private (gee_benchmark_merge_sort_type_id, sizeof (GeeBenchmarkMergeSortPrivate)); + gee_benchmark_merge_sort_type_id = gee_benchmark_merge_sort_get_type_once (); g_once_init_leave (&gee_benchmark_merge_sort_type_id__volatile, gee_benchmark_merge_sort_type_id); } return gee_benchmark_merge_sort_type_id__volatile; @@ -811,7 +833,7 @@ return G_STRUCT_MEMBER_P (self, GeeMergeSort_private_offset); } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_merge_sort_sort (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -833,7 +855,7 @@ return self ? g_object_ref (self) : NULL; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_merge_sort_sort_list (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -917,14 +939,14 @@ gconstpointer _tmp18_; _tmp18_ = item; gee_collection_add ((GeeCollection*) list, _tmp18_); - _g_destroy_func0 (item); + ((item == NULL) || (g_destroy_func == NULL)) ? NULL : (item = (g_destroy_func (item), NULL)); } } } _gee_merge_sort_unref0 (helper); } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_merge_sort_sort_arraylist (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -1113,7 +1135,7 @@ } } -G_GNUC_INTERNAL GeeMergeSort* + G_GNUC_INTERNAL GeeMergeSort* gee_merge_sort_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -1127,7 +1149,7 @@ return self; } -G_GNUC_INTERNAL GeeMergeSort* + G_GNUC_INTERNAL GeeMergeSort* gee_merge_sort_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func) @@ -1208,7 +1230,7 @@ return NULL; } -G_GNUC_INTERNAL GParamSpec* + G_GNUC_INTERNAL GParamSpec* gee_param_spec_merge_sort (const gchar* name, const gchar* nick, const gchar* blurb, @@ -1222,14 +1244,14 @@ return G_PARAM_SPEC (spec); } -G_GNUC_INTERNAL gpointer + G_GNUC_INTERNAL gpointer gee_value_get_merge_sort (const GValue* value) { g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_TYPE_MERGE_SORT), NULL); return value->data[0].v_pointer; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_value_set_merge_sort (GValue* value, gpointer v_object) { @@ -1249,7 +1271,7 @@ } } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_value_take_merge_sort (GValue* value, gpointer v_object) { @@ -1299,23 +1321,31 @@ self->priv->compare_target_destroy_notify = NULL; } -G_GNUC_INTERNAL GType +static GType +gee_merge_sort_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_value_merge_sort_init, gee_value_merge_sort_free_value, gee_value_merge_sort_copy_value, gee_value_merge_sort_peek_pointer, "p", gee_value_merge_sort_collect_value, "p", gee_value_merge_sort_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeeMergeSortClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_merge_sort_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeMergeSort), 0, (GInstanceInitFunc) gee_merge_sort_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_merge_sort_type_id; + gee_merge_sort_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeMergeSort", &g_define_type_info, &g_define_type_fundamental_info, 0); + GeeMergeSort_private_offset = g_type_add_instance_private (gee_merge_sort_type_id, sizeof (GeeMergeSortPrivate)); + return gee_merge_sort_type_id; +} + + G_GNUC_INTERNAL GType gee_merge_sort_get_type (void) { static volatile gsize gee_merge_sort_type_id__volatile = 0; if (g_once_init_enter (&gee_merge_sort_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_value_merge_sort_init, gee_value_merge_sort_free_value, gee_value_merge_sort_copy_value, gee_value_merge_sort_peek_pointer, "p", gee_value_merge_sort_collect_value, "p", gee_value_merge_sort_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeeMergeSortClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_merge_sort_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeMergeSort), 0, (GInstanceInitFunc) gee_merge_sort_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_merge_sort_type_id; - gee_merge_sort_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeMergeSort", &g_define_type_info, &g_define_type_fundamental_info, 0); - GeeMergeSort_private_offset = g_type_add_instance_private (gee_merge_sort_type_id, sizeof (GeeMergeSortPrivate)); + gee_merge_sort_type_id = gee_merge_sort_get_type_once (); g_once_init_leave (&gee_merge_sort_type_id__volatile, gee_merge_sort_type_id); } return gee_merge_sort_type_id__volatile; } -G_GNUC_INTERNAL gpointer + G_GNUC_INTERNAL gpointer gee_merge_sort_ref (gpointer instance) { GeeMergeSort * self; @@ -1324,7 +1354,7 @@ return instance; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_merge_sort_unref (gpointer instance) { GeeMergeSort * self; @@ -1341,7 +1371,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); @@ -1359,3 +1389,17 @@ g_free (array); } +static inline gpointer +_vala_memdup2 (gconstpointer mem, + gsize byte_size) +{ + gpointer new_mem; + if (mem && byte_size != 0) { + new_mem = g_malloc (byte_size); + memcpy (new_mem, mem, byte_size); + } else { + new_mem = NULL; + } + return new_mem; +} + diff -Nru libgee-0.8-0.20.3/benchmark/Makefile.in libgee-0.8-0.20.4/benchmark/Makefile.in --- libgee-0.8-0.20.3/benchmark/Makefile.in 2020-02-09 19:03:15.000000000 +0000 +++ libgee-0.8-0.20.4/benchmark/Makefile.in 2021-03-17 19:58:39.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -191,8 +191,8 @@ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags -am__DIST_COMMON = $(srcdir)/Makefile.in \ - $(srcdir)/benchmarks_vala.stamp $(top_srcdir)/Makefile.decl \ +am__DIST_COMMON = $(builddir)/benchmarks_vala.stamp \ + $(srcdir)/Makefile.in $(top_srcdir)/Makefile.decl \ $(top_srcdir)/depcomp benchmark.c benchmarksorts.c DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ @@ -480,19 +480,23 @@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='benchmarksorts.c' object='benchmarks-benchmarksorts.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(benchmarks_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o benchmarks-benchmarksorts.obj `if test -f 'benchmarksorts.c'; then $(CYGPATH_W) 'benchmarksorts.c'; else $(CYGPATH_W) '$(srcdir)/benchmarksorts.c'; fi` -$(srcdir)/benchmark.c: $(srcdir)/benchmarks_vala.stamp - @if test -f $@; then :; else rm -f $(srcdir)/benchmarks_vala.stamp; fi +$(builddir)/benchmark.c: $(builddir)/benchmarks_vala.stamp + @if test ! -f $@ && test $(srcdir) != $(builddir) && test -n "$$(find -L $(srcdir)/benchmark.c -prune -newer $(srcdir)/benchmark.vala)"; then cp -p $(srcdir)/benchmark.c $(builddir)/benchmark.c; fi + @if test -f $@; then :; else rm -f $(builddir)/benchmarks_vala.stamp; fi @if test -f $@; then :; else \ - $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/benchmarks_vala.stamp; \ + $(MAKE) $(AM_MAKEFLAGS) $(builddir)/benchmarks_vala.stamp; \ + if test $(builddir) != .; then mv benchmark.c $(builddir)/; fi \ fi -$(srcdir)/benchmarksorts.c: $(srcdir)/benchmarks_vala.stamp - @if test -f $@; then :; else rm -f $(srcdir)/benchmarks_vala.stamp; fi +$(builddir)/benchmarksorts.c: $(builddir)/benchmarks_vala.stamp + @if test ! -f $@ && test $(srcdir) != $(builddir) && test -n "$$(find -L $(srcdir)/benchmarksorts.c -prune -newer $(srcdir)/benchmarksorts.vala)"; then cp -p $(srcdir)/benchmarksorts.c $(builddir)/benchmarksorts.c; fi + @if test -f $@; then :; else rm -f $(builddir)/benchmarks_vala.stamp; fi @if test -f $@; then :; else \ - $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/benchmarks_vala.stamp; \ + $(MAKE) $(AM_MAKEFLAGS) $(builddir)/benchmarks_vala.stamp; \ + if test $(builddir) != .; then mv benchmarksorts.c $(builddir)/; fi \ fi -$(srcdir)/benchmarks_vala.stamp: benchmark.vala benchmarksorts.vala +$(builddir)/benchmarks_vala.stamp: benchmark.vala benchmarksorts.vala $(AM_V_at)rm -f $@ && echo stamp > $@-t - $(AM_V_VALAC)$(am__cd) $(srcdir) && $(VALAC) $(benchmarks_VALAFLAGS) $(VALAFLAGS) -C benchmark.vala benchmarksorts.vala + $(AM_V_VALAC)$(VALAC) $(benchmarks_VALAFLAGS) $(VALAFLAGS) -C $^ $(AM_V_at)mv -f $@-t $@ mostlyclean-libtool: @@ -617,12 +621,14 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f $(builddir)/benchmark.c + -rm -f $(builddir)/benchmarksorts.c maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." + -rm -f $(builddir)/benchmarks_vala.stamp -rm -f $(srcdir)/benchmark.c - -rm -f $(srcdir)/benchmarks_vala.stamp -rm -f $(srcdir)/benchmarksorts.c -rm -f benchmark.c -rm -f benchmarksorts.c diff -Nru libgee-0.8-0.20.3/ChangeLog libgee-0.8-0.20.4/ChangeLog --- libgee-0.8-0.20.3/ChangeLog 2020-02-09 19:04:21.000000000 +0000 +++ libgee-0.8-0.20.4/ChangeLog 2021-03-17 19:59:11.000000000 +0000 @@ -1,3 +1,19 @@ +2021-03-17 Rico Tzschichholz + + Release 0.20.4 + +2021-03-07 Rico Tzschichholz + + Remove invalid usage of type-argument for Gee.Future.SourceFuncArrayElement + +2021-02-05 Rico Tzschichholz + + Replace Memory.dup() with GLib.malloc() and Memory.copy() + +2020-10-23 Reuben Thomas + + Various English and typo fixes in the documentation + 2020-02-09 Rico Tzschichholz Release 0.20.3 diff -Nru libgee-0.8-0.20.3/compile libgee-0.8-0.20.4/compile --- libgee-0.8-0.20.3/compile 2020-02-09 19:03:15.000000000 +0000 +++ libgee-0.8-0.20.4/compile 2021-03-17 19:58:39.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -53,7 +53,7 @@ MINGW*) file_conv=mingw ;; - CYGWIN*) + CYGWIN* | MSYS*) file_conv=cygwin ;; *) @@ -67,7 +67,7 @@ mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/*) + cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) diff -Nru libgee-0.8-0.20.3/configure libgee-0.8-0.20.4/configure --- libgee-0.8-0.20.3/configure 2020-02-09 19:03:14.000000000 +0000 +++ libgee-0.8-0.20.4/configure 2021-03-17 19:58:38.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libgee 0.20.3. +# Generated by GNU Autoconf 2.69 for libgee 0.20.4. # # Report bugs to . # @@ -650,8 +650,8 @@ # Identity of this package. PACKAGE_NAME='libgee' PACKAGE_TARNAME='libgee' -PACKAGE_VERSION='0.20.3' -PACKAGE_STRING='libgee 0.20.3' +PACKAGE_VERSION='0.20.4' +PACKAGE_STRING='libgee 0.20.4' PACKAGE_BUGREPORT='https://gitlab.gnome.org/GNOME/libgee/issues' PACKAGE_URL='https://wiki.gnome.org/Projects/Libgee' @@ -1429,7 +1429,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libgee 0.20.3 to adapt to many kinds of systems. +\`configure' configures libgee 0.20.4 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1500,7 +1500,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libgee 0.20.3:";; + short | recursive ) echo "Configuration of libgee 0.20.4:";; esac cat <<\_ACEOF @@ -1631,7 +1631,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libgee configure 0.20.3 +libgee configure 0.20.4 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1909,7 +1909,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libgee $as_me 0.20.3, which was +It was created by libgee $as_me 0.20.4, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2466,12 +2466,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac + MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then @@ -2776,7 +2771,7 @@ # Define the identity of the package. PACKAGE='libgee' - VERSION='0.20.3' + VERSION='0.20.4' cat >>confdefs.h <<_ACEOF @@ -7494,11 +7489,11 @@ # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + 10.0,*86*-darwin8*|10.0,*-darwin[912]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[012][,.]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*) + 10.*|11.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; @@ -12450,8 +12445,8 @@ fi pkg_failed=no -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5 -$as_echo_n "checking for GLIB... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gio-2.0 >= $GLIB_REQUIRED" >&5 +$as_echo_n "checking for glib-2.0 >= $GLIB_REQUIRED gobject-2.0 >= $GLIB_REQUIRED gio-2.0 >= $GLIB_REQUIRED... " >&6; } if test -n "$GLIB_CFLAGS"; then pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" @@ -12491,7 +12486,7 @@ if test $pkg_failed = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then @@ -12518,7 +12513,7 @@ and GLIB_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} @@ -12797,9 +12792,9 @@ if test "$VALAC" != valac && test -n "0.25.1"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $VALAC is at least version 0.25.1" >&5 -$as_echo_n "checking whether $VALAC is at least version 0.25.1... " >&6; } - am__vala_version=`$VALAC --version | sed 's/Vala *//'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $VALAC supports at least API version 0.25.1" >&5 +$as_echo_n "checking whether $VALAC supports at least API version 0.25.1... " >&6; } + am__vala_version=`$VALAC --api-version` as_arg_v1=0.25.1 as_arg_v2="$am__vala_version" awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null @@ -12819,10 +12814,10 @@ esac fi if test "$VALAC" = valac; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no proper vala compiler found" >&5 -$as_echo "$as_me: WARNING: no proper vala compiler found" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: you will not be able to compile vala source files" >&5 -$as_echo "$as_me: WARNING: you will not be able to compile vala source files" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Vala compiler not found or too old" >&5 +$as_echo "$as_me: WARNING: Vala compiler not found or too old" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: you will not be able to compile Vala source files" >&5 +$as_echo "$as_me: WARNING: you will not be able to compile Vala source files" >&2;} else : fi @@ -13468,7 +13463,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libgee $as_me 0.20.3, which was +This file was extended by libgee $as_me 0.20.4, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -13535,7 +13530,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libgee config.status 0.20.3 +libgee config.status 0.20.4 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -14633,7 +14628,9 @@ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments - for automatic dependency tracking. Try re-running configure with the + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is + necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). See \`config.log' for more details" "$LINENO" 5; } diff -Nru libgee-0.8-0.20.3/configure.ac libgee-0.8-0.20.4/configure.ac --- libgee-0.8-0.20.3/configure.ac 2020-02-09 19:02:35.000000000 +0000 +++ libgee-0.8-0.20.4/configure.ac 2021-03-17 19:54:46.000000000 +0000 @@ -1,4 +1,4 @@ -AC_INIT([libgee], [0.20.3], +AC_INIT([libgee], [0.20.4], [https://gitlab.gnome.org/GNOME/libgee/issues], [libgee], [https://wiki.gnome.org/Projects/Libgee]) diff -Nru libgee-0.8-0.20.3/debian/changelog libgee-0.8-0.20.4/debian/changelog --- libgee-0.8-0.20.3/debian/changelog 2020-02-18 08:46:42.000000000 +0000 +++ libgee-0.8-0.20.4/debian/changelog 2021-03-17 20:08:08.000000000 +0000 @@ -1,8 +1,8 @@ -libgee-0.8 (0.20.3-0ubuntu1~16.04~valateam0) xenial; urgency=high +libgee-0.8 (0.20.4-0ubuntu1~16.04~valateam0) xenial; urgency=high * New upstream release - -- Rico Tzschichholz Tue, 18 Feb 2020 09:46:42 +0100 + -- Rico Tzschichholz Wed, 17 Mar 2021 21:08:08 +0100 libgee-0.8 (0.18.1-1) unstable; urgency=medium diff -Nru libgee-0.8-0.20.3/depcomp libgee-0.8-0.20.4/depcomp --- libgee-0.8-0.20.3/depcomp 2020-02-09 19:03:15.000000000 +0000 +++ libgee-0.8-0.20.4/depcomp 2021-03-17 19:58:39.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2018 Free Software Foundation, Inc. +# Copyright (C) 1999-2020 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff -Nru libgee-0.8-0.20.3/doc/Makefile.in libgee-0.8-0.20.4/doc/Makefile.in --- libgee-0.8-0.20.3/doc/Makefile.in 2020-02-09 19:03:15.000000000 +0000 +++ libgee-0.8-0.20.4/doc/Makefile.in 2021-03-17 19:58:39.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff -Nru libgee-0.8-0.20.3/gee/abstractbidirlist.c libgee-0.8-0.20.4/gee/abstractbidirlist.c --- libgee-0.8-0.20.3/gee/abstractbidirlist.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/abstractbidirlist.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* abstractbidirlist.c generated by valac 0.46.6, the Vala compiler +/* abstractbidirlist.c generated by valac 0.52.0, the Vala compiler * generated from abstractbidirlist.vala, do not modify */ /* bidirlistiterator.vala @@ -23,137 +23,10 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_LIST (gee_list_get_type ()) -#define GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST, GeeList)) -#define GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST)) -#define GEE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST, GeeListIface)) - -typedef struct _GeeList GeeList; -typedef struct _GeeListIface GeeListIface; - -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; - -#define GEE_TYPE_ABSTRACT_LIST (gee_abstract_list_get_type ()) -#define GEE_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractList)) -#define GEE_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) -#define GEE_IS_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_IS_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_ABSTRACT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) - -typedef struct _GeeAbstractList GeeAbstractList; -typedef struct _GeeAbstractListClass GeeAbstractListClass; -typedef struct _GeeAbstractListPrivate GeeAbstractListPrivate; - -#define GEE_TYPE_BIDIR_LIST (gee_bidir_list_get_type ()) -#define GEE_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirList)) -#define GEE_IS_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST)) -#define GEE_BIDIR_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirListIface)) - -typedef struct _GeeBidirList GeeBidirList; -typedef struct _GeeBidirListIface GeeBidirListIface; - -#define GEE_TYPE_BIDIR_LIST_ITERATOR (gee_bidir_list_iterator_get_type ()) -#define GEE_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIterator)) -#define GEE_IS_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR)) -#define GEE_BIDIR_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIteratorIface)) - -typedef struct _GeeBidirListIterator GeeBidirListIterator; -typedef struct _GeeBidirListIteratorIface GeeBidirListIteratorIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; - -#define GEE_TYPE_ABSTRACT_BIDIR_LIST (gee_abstract_bidir_list_get_type ()) -#define GEE_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirList)) -#define GEE_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) -#define GEE_IS_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_IS_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_ABSTRACT_BIDIR_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) - -typedef struct _GeeAbstractBidirList GeeAbstractBidirList; -typedef struct _GeeAbstractBidirListClass GeeAbstractBidirListClass; -typedef struct _GeeAbstractBidirListPrivate GeeAbstractBidirListPrivate; enum { GEE_ABSTRACT_BIDIR_LIST_0_PROPERTY, GEE_ABSTRACT_BIDIR_LIST_G_TYPE, @@ -195,203 +68,6 @@ typedef struct _GeeReadOnlyBidirListClass GeeReadOnlyBidirListClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -struct _GeeListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeList* self); - GDestroyNotify (*get_g_destroy_func) (GeeList* self); - GeeListIterator* (*list_iterator) (GeeList* self); - gpointer (*get) (GeeList* self, gint index); - void (*set) (GeeList* self, gint index, gconstpointer item); - gint (*index_of) (GeeList* self, gconstpointer item); - void (*insert) (GeeList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeList* self, gint index); - GeeList* (*slice) (GeeList* self, gint start, gint stop); - gpointer (*first) (GeeList* self); - gpointer (*last) (GeeList* self); - void (*insert_all) (GeeList* self, gint index, GeeCollection* collection); - void (*sort) (GeeList* self, GCompareDataFunc compare_func, gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify); - GeeList* (*get_read_only_view) (GeeList* self); -}; - -struct _GeeAbstractList { - GeeAbstractCollection parent_instance; - GeeAbstractListPrivate * priv; -}; - -struct _GeeAbstractListClass { - GeeAbstractCollectionClass parent_class; - GeeListIterator* (*list_iterator) (GeeAbstractList* self); - gpointer (*get) (GeeAbstractList* self, gint index); - void (*set) (GeeAbstractList* self, gint index, gconstpointer item); - gint (*index_of) (GeeAbstractList* self, gconstpointer item); - void (*insert) (GeeAbstractList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeAbstractList* self, gint index); - GeeList* (*slice) (GeeAbstractList* self, gint start, gint stop); - void (*reserved0) (GeeAbstractList* self); - void (*reserved1) (GeeAbstractList* self); - void (*reserved2) (GeeAbstractList* self); - void (*reserved3) (GeeAbstractList* self); - void (*reserved4) (GeeAbstractList* self); - void (*reserved5) (GeeAbstractList* self); - void (*reserved6) (GeeAbstractList* self); - void (*reserved7) (GeeAbstractList* self); - void (*reserved8) (GeeAbstractList* self); - void (*reserved9) (GeeAbstractList* self); - GeeList* (*get_read_only_view) (GeeAbstractList* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirListIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirListIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirListIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirListIterator* self); - void (*insert) (GeeBidirListIterator* self, gconstpointer item); -}; - -struct _GeeBidirListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirList* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirList* self); - GeeBidirListIterator* (*bidir_list_iterator) (GeeBidirList* self); - GeeBidirList* (*get_read_only_view) (GeeBidirList* self); -}; - -struct _GeeAbstractBidirList { - GeeAbstractList parent_instance; - GeeAbstractBidirListPrivate * priv; -}; - -struct _GeeAbstractBidirListClass { - GeeAbstractListClass parent_class; - GeeBidirListIterator* (*bidir_list_iterator) (GeeAbstractBidirList* self); - void (*reserved0) (GeeAbstractBidirList* self); - void (*reserved1) (GeeAbstractBidirList* self); - void (*reserved2) (GeeAbstractBidirList* self); - void (*reserved3) (GeeAbstractBidirList* self); - void (*reserved4) (GeeAbstractBidirList* self); - void (*reserved5) (GeeAbstractBidirList* self); - void (*reserved6) (GeeAbstractBidirList* self); - void (*reserved7) (GeeAbstractBidirList* self); - void (*reserved8) (GeeAbstractBidirList* self); - void (*reserved9) (GeeAbstractBidirList* self); - GeeBidirList* (*get_read_only_view) (GeeAbstractBidirList* self); -}; - struct _GeeAbstractBidirListPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -403,86 +79,44 @@ static gpointer gee_abstract_bidir_list_parent_class = NULL; static GeeBidirListIface * gee_abstract_bidir_list_gee_bidir_list_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_get_type (void) G_GNUC_CONST; -GType gee_abstract_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractList, g_object_unref) -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_get_type (void) G_GNUC_CONST; -GType gee_abstract_bidir_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirList, g_object_unref) -GeeBidirListIterator* gee_abstract_bidir_list_bidir_list_iterator (GeeAbstractBidirList* self); + G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved0 (GeeAbstractBidirList* self); + G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved1 (GeeAbstractBidirList* self); + G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved2 (GeeAbstractBidirList* self); + G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved3 (GeeAbstractBidirList* self); + G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved4 (GeeAbstractBidirList* self); + G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved5 (GeeAbstractBidirList* self); + G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved6 (GeeAbstractBidirList* self); + G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved7 (GeeAbstractBidirList* self); + G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved8 (GeeAbstractBidirList* self); + G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved9 (GeeAbstractBidirList* self); static GeeBidirListIterator* gee_abstract_bidir_list_real_bidir_list_iterator (GeeAbstractBidirList* self); -G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved0 (GeeAbstractBidirList* self); static void gee_abstract_bidir_list_real_reserved0 (GeeAbstractBidirList* self); -G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved1 (GeeAbstractBidirList* self); static void gee_abstract_bidir_list_real_reserved1 (GeeAbstractBidirList* self); -G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved2 (GeeAbstractBidirList* self); static void gee_abstract_bidir_list_real_reserved2 (GeeAbstractBidirList* self); -G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved3 (GeeAbstractBidirList* self); static void gee_abstract_bidir_list_real_reserved3 (GeeAbstractBidirList* self); -G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved4 (GeeAbstractBidirList* self); static void gee_abstract_bidir_list_real_reserved4 (GeeAbstractBidirList* self); -G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved5 (GeeAbstractBidirList* self); static void gee_abstract_bidir_list_real_reserved5 (GeeAbstractBidirList* self); -G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved6 (GeeAbstractBidirList* self); static void gee_abstract_bidir_list_real_reserved6 (GeeAbstractBidirList* self); -G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved7 (GeeAbstractBidirList* self); static void gee_abstract_bidir_list_real_reserved7 (GeeAbstractBidirList* self); -G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved8 (GeeAbstractBidirList* self); static void gee_abstract_bidir_list_real_reserved8 (GeeAbstractBidirList* self); -G_GNUC_INTERNAL void gee_abstract_bidir_list_reserved9 (GeeAbstractBidirList* self); static void gee_abstract_bidir_list_real_reserved9 (GeeAbstractBidirList* self); -GeeAbstractBidirList* gee_abstract_bidir_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeAbstractList* gee_abstract_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeBidirList* gee_abstract_bidir_list_get_read_only_view (GeeAbstractBidirList* self); -G_GNUC_INTERNAL GeeReadOnlyBidirList* gee_read_only_bidir_list_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyBidirList* gee_read_only_bidir_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirList* list); -G_GNUC_INTERNAL GeeReadOnlyBidirList* gee_read_only_bidir_list_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyBidirList* gee_read_only_bidir_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirList* list); -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_list_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyList, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_bidir_list_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyBidirList, g_object_unref) + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_list_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_bidir_list_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GObject * gee_abstract_bidir_list_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static void gee_abstract_bidir_list_finalize (GObject * obj); +static GType gee_abstract_bidir_list_get_type_once (void); static void _vala_gee_abstract_bidir_list_get_property (GObject * object, guint property_id, GValue * value, @@ -511,8 +145,13 @@ GeeBidirListIterator* gee_abstract_bidir_list_bidir_list_iterator (GeeAbstractBidirList* self) { + GeeAbstractBidirListClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self)->bidir_list_iterator (self); + _klass_ = GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self); + if (_klass_->bidir_list_iterator) { + return _klass_->bidir_list_iterator (self); + } + return NULL; } static void @@ -523,8 +162,12 @@ void gee_abstract_bidir_list_reserved0 (GeeAbstractBidirList* self) { + GeeAbstractBidirListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self)->reserved0 (self); + _klass_ = GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self); + if (_klass_->reserved0) { + _klass_->reserved0 (self); + } } static void @@ -535,8 +178,12 @@ void gee_abstract_bidir_list_reserved1 (GeeAbstractBidirList* self) { + GeeAbstractBidirListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self)->reserved1 (self); + _klass_ = GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self); + if (_klass_->reserved1) { + _klass_->reserved1 (self); + } } static void @@ -547,8 +194,12 @@ void gee_abstract_bidir_list_reserved2 (GeeAbstractBidirList* self) { + GeeAbstractBidirListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self)->reserved2 (self); + _klass_ = GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self); + if (_klass_->reserved2) { + _klass_->reserved2 (self); + } } static void @@ -559,8 +210,12 @@ void gee_abstract_bidir_list_reserved3 (GeeAbstractBidirList* self) { + GeeAbstractBidirListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self)->reserved3 (self); + _klass_ = GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self); + if (_klass_->reserved3) { + _klass_->reserved3 (self); + } } static void @@ -571,8 +226,12 @@ void gee_abstract_bidir_list_reserved4 (GeeAbstractBidirList* self) { + GeeAbstractBidirListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self)->reserved4 (self); + _klass_ = GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self); + if (_klass_->reserved4) { + _klass_->reserved4 (self); + } } static void @@ -583,8 +242,12 @@ void gee_abstract_bidir_list_reserved5 (GeeAbstractBidirList* self) { + GeeAbstractBidirListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self)->reserved5 (self); + _klass_ = GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self); + if (_klass_->reserved5) { + _klass_->reserved5 (self); + } } static void @@ -595,8 +258,12 @@ void gee_abstract_bidir_list_reserved6 (GeeAbstractBidirList* self) { + GeeAbstractBidirListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self)->reserved6 (self); + _klass_ = GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self); + if (_klass_->reserved6) { + _klass_->reserved6 (self); + } } static void @@ -607,8 +274,12 @@ void gee_abstract_bidir_list_reserved7 (GeeAbstractBidirList* self) { + GeeAbstractBidirListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self)->reserved7 (self); + _klass_ = GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self); + if (_klass_->reserved7) { + _klass_->reserved7 (self); + } } static void @@ -619,8 +290,12 @@ void gee_abstract_bidir_list_reserved8 (GeeAbstractBidirList* self) { + GeeAbstractBidirListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self)->reserved8 (self); + _klass_ = GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self); + if (_klass_->reserved8) { + _klass_->reserved8 (self); + } } static void @@ -631,8 +306,12 @@ void gee_abstract_bidir_list_reserved9 (GeeAbstractBidirList* self) { + GeeAbstractBidirListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self)->reserved9 (self); + _klass_ = GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self); + if (_klass_->reserved9) { + _klass_->reserved9 (self); + } } GeeAbstractBidirList* @@ -652,8 +331,13 @@ GeeBidirList* gee_abstract_bidir_list_get_read_only_view (GeeAbstractBidirList* self) { + GeeAbstractBidirListClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_ABSTRACT_BIDIR_LIST_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static GeeBidirList* @@ -774,17 +458,25 @@ G_OBJECT_CLASS (gee_abstract_bidir_list_parent_class)->finalize (obj); } +static GType +gee_abstract_bidir_list_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractBidirListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_bidir_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractBidirList), 0, (GInstanceInitFunc) gee_abstract_bidir_list_instance_init, NULL }; + static const GInterfaceInfo gee_bidir_list_info = { (GInterfaceInitFunc) gee_abstract_bidir_list_gee_bidir_list_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_bidir_list_type_id; + gee_abstract_bidir_list_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_LIST, "GeeAbstractBidirList", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (gee_abstract_bidir_list_type_id, GEE_TYPE_BIDIR_LIST, &gee_bidir_list_info); + GeeAbstractBidirList_private_offset = g_type_add_instance_private (gee_abstract_bidir_list_type_id, sizeof (GeeAbstractBidirListPrivate)); + return gee_abstract_bidir_list_type_id; +} + GType gee_abstract_bidir_list_get_type (void) { static volatile gsize gee_abstract_bidir_list_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_bidir_list_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractBidirListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_bidir_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractBidirList), 0, (GInstanceInitFunc) gee_abstract_bidir_list_instance_init, NULL }; - static const GInterfaceInfo gee_bidir_list_info = { (GInterfaceInitFunc) gee_abstract_bidir_list_gee_bidir_list_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_bidir_list_type_id; - gee_abstract_bidir_list_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_LIST, "GeeAbstractBidirList", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - g_type_add_interface_static (gee_abstract_bidir_list_type_id, GEE_TYPE_BIDIR_LIST, &gee_bidir_list_info); - GeeAbstractBidirList_private_offset = g_type_add_instance_private (gee_abstract_bidir_list_type_id, sizeof (GeeAbstractBidirListPrivate)); + gee_abstract_bidir_list_type_id = gee_abstract_bidir_list_get_type_once (); g_once_init_leave (&gee_abstract_bidir_list_type_id__volatile, gee_abstract_bidir_list_type_id); } return gee_abstract_bidir_list_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/abstractbidirsortedmap.c libgee-0.8-0.20.4/gee/abstractbidirsortedmap.c --- libgee-0.8-0.20.3/gee/abstractbidirsortedmap.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/abstractbidirsortedmap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* abstractbidirsortedmap.c generated by valac 0.46.6, the Vala compiler +/* abstractbidirsortedmap.c generated by valac 0.52.0, the Vala compiler * generated from abstractbidirsortedmap.vala, do not modify */ /* abstractbidirsortedmap.vala @@ -23,165 +23,10 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - -#define GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type ()) -#define GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)) -#define GEE_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) -#define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) - -typedef struct _GeeAbstractMap GeeAbstractMap; -typedef struct _GeeAbstractMapClass GeeAbstractMapClass; -typedef struct _GeeAbstractMapPrivate GeeAbstractMapPrivate; - -#define GEE_TYPE_SORTED_MAP (gee_sorted_map_get_type ()) -#define GEE_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMap)) -#define GEE_IS_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_MAP)) -#define GEE_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMapIface)) - -typedef struct _GeeSortedMap GeeSortedMap; -typedef struct _GeeSortedMapIface GeeSortedMapIface; - -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - -#define GEE_TYPE_ABSTRACT_SORTED_MAP (gee_abstract_sorted_map_get_type ()) -#define GEE_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMap)) -#define GEE_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) -#define GEE_IS_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_IS_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_ABSTRACT_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) - -typedef struct _GeeAbstractSortedMap GeeAbstractSortedMap; -typedef struct _GeeAbstractSortedMapClass GeeAbstractSortedMapClass; -typedef struct _GeeAbstractSortedMapPrivate GeeAbstractSortedMapPrivate; - -#define GEE_TYPE_BIDIR_SORTED_MAP (gee_bidir_sorted_map_get_type ()) -#define GEE_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMap)) -#define GEE_IS_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_MAP)) -#define GEE_BIDIR_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMapIface)) - -typedef struct _GeeBidirSortedMap GeeBidirSortedMap; -typedef struct _GeeBidirSortedMapIface GeeBidirSortedMapIface; - -#define GEE_TYPE_BIDIR_MAP_ITERATOR (gee_bidir_map_iterator_get_type ()) -#define GEE_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIterator)) -#define GEE_IS_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR)) -#define GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIteratorIface)) - -typedef struct _GeeBidirMapIterator GeeBidirMapIterator; -typedef struct _GeeBidirMapIteratorIface GeeBidirMapIteratorIface; - -#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP (gee_abstract_bidir_sorted_map_get_type ()) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMap)) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP)) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass)) - -typedef struct _GeeAbstractBidirSortedMap GeeAbstractBidirSortedMap; -typedef struct _GeeAbstractBidirSortedMapClass GeeAbstractBidirSortedMapClass; -typedef struct _GeeAbstractBidirSortedMapPrivate GeeAbstractBidirSortedMapPrivate; enum { GEE_ABSTRACT_BIDIR_SORTED_MAP_0_PROPERTY, GEE_ABSTRACT_BIDIR_SORTED_MAP_K_TYPE, @@ -226,262 +71,6 @@ typedef struct _GeeReadOnlyBidirSortedMapClass GeeReadOnlyBidirSortedMapClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeAbstractMap { - GObject parent_instance; - GeeAbstractMapPrivate * priv; -}; - -struct _GeeAbstractMapClass { - GObjectClass parent_class; - gboolean (*has_key) (GeeAbstractMap* self, gconstpointer key); - gboolean (*has) (GeeAbstractMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeAbstractMap* self, gconstpointer key); - void (*set) (GeeAbstractMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeAbstractMap* self, gconstpointer key, gpointer* value); - GeeMapIterator* (*map_iterator) (GeeAbstractMap* self); - void (*clear) (GeeAbstractMap* self); - gboolean (*foreach) (GeeAbstractMap* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeAbstractMap* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - void (*reserved0) (GeeAbstractMap* self); - void (*reserved1) (GeeAbstractMap* self); - void (*reserved2) (GeeAbstractMap* self); - void (*reserved3) (GeeAbstractMap* self); - void (*reserved4) (GeeAbstractMap* self); - void (*reserved5) (GeeAbstractMap* self); - void (*reserved6) (GeeAbstractMap* self); - void (*reserved7) (GeeAbstractMap* self); - void (*reserved8) (GeeAbstractMap* self); - void (*reserved9) (GeeAbstractMap* self); - gint (*get_size) (GeeAbstractMap* self); - gboolean (*get_read_only) (GeeAbstractMap* self); - GeeSet* (*get_keys) (GeeAbstractMap* self); - GeeCollection* (*get_values) (GeeAbstractMap* self); - GeeSet* (*get_entries) (GeeAbstractMap* self); - GeeMap* (*get_read_only_view) (GeeAbstractMap* self); -}; - -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - -struct _GeeSortedMapIface { - GTypeInterface parent_iface; - GeeSortedMap* (*head_map) (GeeSortedMap* self, gconstpointer before); - GeeSortedMap* (*tail_map) (GeeSortedMap* self, gconstpointer after); - GeeSortedMap* (*sub_map) (GeeSortedMap* self, gconstpointer before, gconstpointer after); - GeeSortedSet* (*get_ascending_keys) (GeeSortedMap* self); - GeeSortedSet* (*get_ascending_entries) (GeeSortedMap* self); - GeeSortedMap* (*get_read_only_view) (GeeSortedMap* self); -}; - -struct _GeeAbstractSortedMap { - GeeAbstractMap parent_instance; - GeeAbstractSortedMapPrivate * priv; -}; - -struct _GeeAbstractSortedMapClass { - GeeAbstractMapClass parent_class; - GeeSortedMap* (*head_map) (GeeAbstractSortedMap* self, gconstpointer before); - GeeSortedMap* (*tail_map) (GeeAbstractSortedMap* self, gconstpointer after); - GeeSortedMap* (*sub_map) (GeeAbstractSortedMap* self, gconstpointer before, gconstpointer after); - void (*reserved0) (GeeAbstractSortedMap* self); - void (*reserved1) (GeeAbstractSortedMap* self); - void (*reserved2) (GeeAbstractSortedMap* self); - void (*reserved3) (GeeAbstractSortedMap* self); - void (*reserved4) (GeeAbstractSortedMap* self); - void (*reserved5) (GeeAbstractSortedMap* self); - void (*reserved6) (GeeAbstractSortedMap* self); - void (*reserved7) (GeeAbstractSortedMap* self); - void (*reserved8) (GeeAbstractSortedMap* self); - void (*reserved9) (GeeAbstractSortedMap* self); - GeeSortedSet* (*get_ascending_keys) (GeeAbstractSortedMap* self); - GeeSortedSet* (*get_ascending_entries) (GeeAbstractSortedMap* self); -}; - -struct _GeeBidirMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeBidirMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeBidirMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeBidirMapIterator* self); - GType (*get_v_type) (GeeBidirMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeBidirMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeBidirMapIterator* self); - gboolean (*previous) (GeeBidirMapIterator* self); - gboolean (*has_previous) (GeeBidirMapIterator* self); - gboolean (*first) (GeeBidirMapIterator* self); - gboolean (*last) (GeeBidirMapIterator* self); -}; - -struct _GeeBidirSortedMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeBidirSortedMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeBidirSortedMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeBidirSortedMap* self); - GType (*get_v_type) (GeeBidirSortedMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeBidirSortedMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeBidirSortedMap* self); - GeeBidirMapIterator* (*bidir_map_iterator) (GeeBidirSortedMap* self); - GeeBidirSortedMap* (*get_read_only_view) (GeeBidirSortedMap* self); -}; - -struct _GeeAbstractBidirSortedMap { - GeeAbstractSortedMap parent_instance; - GeeAbstractBidirSortedMapPrivate * priv; -}; - -struct _GeeAbstractBidirSortedMapClass { - GeeAbstractSortedMapClass parent_class; - GeeBidirMapIterator* (*bidir_map_iterator) (GeeAbstractBidirSortedMap* self); - void (*reserved0) (GeeAbstractBidirSortedMap* self); - void (*reserved1) (GeeAbstractBidirSortedMap* self); - void (*reserved2) (GeeAbstractBidirSortedMap* self); - void (*reserved3) (GeeAbstractBidirSortedMap* self); - void (*reserved4) (GeeAbstractBidirSortedMap* self); - void (*reserved5) (GeeAbstractBidirSortedMap* self); - void (*reserved6) (GeeAbstractBidirSortedMap* self); - void (*reserved7) (GeeAbstractBidirSortedMap* self); - void (*reserved8) (GeeAbstractBidirSortedMap* self); - void (*reserved9) (GeeAbstractBidirSortedMap* self); - GeeBidirSortedMap* (*get_read_only_view) (GeeAbstractBidirSortedMap* self); -}; - struct _GeeAbstractBidirSortedMapPrivate { GType k_type; GBoxedCopyFunc k_dup_func; @@ -496,85 +85,35 @@ static gpointer gee_abstract_bidir_sorted_map_parent_class = NULL; static GeeBidirSortedMapIface * gee_abstract_bidir_sorted_map_gee_bidir_sorted_map_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMap, g_object_unref) -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_sorted_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_sorted_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedMap, g_object_unref) -GType gee_bidir_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_sorted_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_bidir_sorted_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedMap, g_object_unref) -GeeBidirMapIterator* gee_abstract_bidir_sorted_map_bidir_map_iterator (GeeAbstractBidirSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved0 (GeeAbstractBidirSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved1 (GeeAbstractBidirSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved2 (GeeAbstractBidirSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved3 (GeeAbstractBidirSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved4 (GeeAbstractBidirSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved5 (GeeAbstractBidirSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved6 (GeeAbstractBidirSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved7 (GeeAbstractBidirSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved8 (GeeAbstractBidirSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved9 (GeeAbstractBidirSortedMap* self); static GeeBidirMapIterator* gee_abstract_bidir_sorted_map_real_bidir_map_iterator (GeeAbstractBidirSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved0 (GeeAbstractBidirSortedMap* self); static void gee_abstract_bidir_sorted_map_real_reserved0 (GeeAbstractBidirSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved1 (GeeAbstractBidirSortedMap* self); static void gee_abstract_bidir_sorted_map_real_reserved1 (GeeAbstractBidirSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved2 (GeeAbstractBidirSortedMap* self); static void gee_abstract_bidir_sorted_map_real_reserved2 (GeeAbstractBidirSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved3 (GeeAbstractBidirSortedMap* self); static void gee_abstract_bidir_sorted_map_real_reserved3 (GeeAbstractBidirSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved4 (GeeAbstractBidirSortedMap* self); static void gee_abstract_bidir_sorted_map_real_reserved4 (GeeAbstractBidirSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved5 (GeeAbstractBidirSortedMap* self); static void gee_abstract_bidir_sorted_map_real_reserved5 (GeeAbstractBidirSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved6 (GeeAbstractBidirSortedMap* self); static void gee_abstract_bidir_sorted_map_real_reserved6 (GeeAbstractBidirSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved7 (GeeAbstractBidirSortedMap* self); static void gee_abstract_bidir_sorted_map_real_reserved7 (GeeAbstractBidirSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved8 (GeeAbstractBidirSortedMap* self); static void gee_abstract_bidir_sorted_map_real_reserved8 (GeeAbstractBidirSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_map_reserved9 (GeeAbstractBidirSortedMap* self); static void gee_abstract_bidir_sorted_map_real_reserved9 (GeeAbstractBidirSortedMap* self); -GeeAbstractBidirSortedMap* gee_abstract_bidir_sorted_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func); -GeeAbstractSortedMap* gee_abstract_sorted_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func); -GeeBidirSortedMap* gee_abstract_bidir_sorted_map_get_read_only_view (GeeAbstractBidirSortedMap* self); -G_GNUC_INTERNAL GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_new (GType k_type, + G_GNUC_INTERNAL GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeBidirSortedMap* map); -G_GNUC_INTERNAL GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -582,16 +121,14 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeBidirSortedMap* map); -G_GNUC_INTERNAL GType gee_read_only_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMap, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_sorted_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySortedMap, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_bidir_sorted_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyBidirSortedMap, g_object_unref) + G_GNUC_INTERNAL GType gee_read_only_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_sorted_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_bidir_sorted_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GObject * gee_abstract_bidir_sorted_map_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static void gee_abstract_bidir_sorted_map_finalize (GObject * obj); +static GType gee_abstract_bidir_sorted_map_get_type_once (void); static void _vala_gee_abstract_bidir_sorted_map_get_property (GObject * object, guint property_id, GValue * value, @@ -620,8 +157,13 @@ GeeBidirMapIterator* gee_abstract_bidir_sorted_map_bidir_map_iterator (GeeAbstractBidirSortedMap* self) { + GeeAbstractBidirSortedMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self)->bidir_map_iterator (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self); + if (_klass_->bidir_map_iterator) { + return _klass_->bidir_map_iterator (self); + } + return NULL; } static void @@ -632,8 +174,12 @@ void gee_abstract_bidir_sorted_map_reserved0 (GeeAbstractBidirSortedMap* self) { + GeeAbstractBidirSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self)->reserved0 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved0) { + _klass_->reserved0 (self); + } } static void @@ -644,8 +190,12 @@ void gee_abstract_bidir_sorted_map_reserved1 (GeeAbstractBidirSortedMap* self) { + GeeAbstractBidirSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self)->reserved1 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved1) { + _klass_->reserved1 (self); + } } static void @@ -656,8 +206,12 @@ void gee_abstract_bidir_sorted_map_reserved2 (GeeAbstractBidirSortedMap* self) { + GeeAbstractBidirSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self)->reserved2 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved2) { + _klass_->reserved2 (self); + } } static void @@ -668,8 +222,12 @@ void gee_abstract_bidir_sorted_map_reserved3 (GeeAbstractBidirSortedMap* self) { + GeeAbstractBidirSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self)->reserved3 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved3) { + _klass_->reserved3 (self); + } } static void @@ -680,8 +238,12 @@ void gee_abstract_bidir_sorted_map_reserved4 (GeeAbstractBidirSortedMap* self) { + GeeAbstractBidirSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self)->reserved4 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved4) { + _klass_->reserved4 (self); + } } static void @@ -692,8 +254,12 @@ void gee_abstract_bidir_sorted_map_reserved5 (GeeAbstractBidirSortedMap* self) { + GeeAbstractBidirSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self)->reserved5 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved5) { + _klass_->reserved5 (self); + } } static void @@ -704,8 +270,12 @@ void gee_abstract_bidir_sorted_map_reserved6 (GeeAbstractBidirSortedMap* self) { + GeeAbstractBidirSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self)->reserved6 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved6) { + _klass_->reserved6 (self); + } } static void @@ -716,8 +286,12 @@ void gee_abstract_bidir_sorted_map_reserved7 (GeeAbstractBidirSortedMap* self) { + GeeAbstractBidirSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self)->reserved7 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved7) { + _klass_->reserved7 (self); + } } static void @@ -728,8 +302,12 @@ void gee_abstract_bidir_sorted_map_reserved8 (GeeAbstractBidirSortedMap* self) { + GeeAbstractBidirSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self)->reserved8 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved8) { + _klass_->reserved8 (self); + } } static void @@ -740,8 +318,12 @@ void gee_abstract_bidir_sorted_map_reserved9 (GeeAbstractBidirSortedMap* self) { + GeeAbstractBidirSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self)->reserved9 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved9) { + _klass_->reserved9 (self); + } } GeeAbstractBidirSortedMap* @@ -767,8 +349,13 @@ GeeBidirSortedMap* gee_abstract_bidir_sorted_map_get_read_only_view (GeeAbstractBidirSortedMap* self) { + GeeAbstractBidirSortedMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static GeeBidirSortedMap* @@ -920,17 +507,25 @@ * * @see TreeSet */ +static GType +gee_abstract_bidir_sorted_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractBidirSortedMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_bidir_sorted_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractBidirSortedMap), 0, (GInstanceInitFunc) gee_abstract_bidir_sorted_map_instance_init, NULL }; + static const GInterfaceInfo gee_bidir_sorted_map_info = { (GInterfaceInitFunc) gee_abstract_bidir_sorted_map_gee_bidir_sorted_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_bidir_sorted_map_type_id; + gee_abstract_bidir_sorted_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SORTED_MAP, "GeeAbstractBidirSortedMap", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (gee_abstract_bidir_sorted_map_type_id, GEE_TYPE_BIDIR_SORTED_MAP, &gee_bidir_sorted_map_info); + GeeAbstractBidirSortedMap_private_offset = g_type_add_instance_private (gee_abstract_bidir_sorted_map_type_id, sizeof (GeeAbstractBidirSortedMapPrivate)); + return gee_abstract_bidir_sorted_map_type_id; +} + GType gee_abstract_bidir_sorted_map_get_type (void) { static volatile gsize gee_abstract_bidir_sorted_map_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_bidir_sorted_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractBidirSortedMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_bidir_sorted_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractBidirSortedMap), 0, (GInstanceInitFunc) gee_abstract_bidir_sorted_map_instance_init, NULL }; - static const GInterfaceInfo gee_bidir_sorted_map_info = { (GInterfaceInitFunc) gee_abstract_bidir_sorted_map_gee_bidir_sorted_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_bidir_sorted_map_type_id; - gee_abstract_bidir_sorted_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SORTED_MAP, "GeeAbstractBidirSortedMap", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - g_type_add_interface_static (gee_abstract_bidir_sorted_map_type_id, GEE_TYPE_BIDIR_SORTED_MAP, &gee_bidir_sorted_map_info); - GeeAbstractBidirSortedMap_private_offset = g_type_add_instance_private (gee_abstract_bidir_sorted_map_type_id, sizeof (GeeAbstractBidirSortedMapPrivate)); + gee_abstract_bidir_sorted_map_type_id = gee_abstract_bidir_sorted_map_get_type_once (); g_once_init_leave (&gee_abstract_bidir_sorted_map_type_id__volatile, gee_abstract_bidir_sorted_map_type_id); } return gee_abstract_bidir_sorted_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/abstractbidirsortedset.c libgee-0.8-0.20.4/gee/abstractbidirsortedset.c --- libgee-0.8-0.20.3/gee/abstractbidirsortedset.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/abstractbidirsortedset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* abstractbidirsortedset.c generated by valac 0.46.6, the Vala compiler +/* abstractbidirsortedset.c generated by valac 0.52.0, the Vala compiler * generated from abstractbidirsortedset.vala, do not modify */ /* abstractbidirsortedset.vala @@ -23,140 +23,10 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; -typedef struct _GeeAbstractSetPrivate GeeAbstractSetPrivate; - -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - -#define GEE_TYPE_ABSTRACT_SORTED_SET (gee_abstract_sorted_set_get_type ()) -#define GEE_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet)) -#define GEE_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) -#define GEE_IS_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_IS_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_ABSTRACT_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) - -typedef struct _GeeAbstractSortedSet GeeAbstractSortedSet; -typedef struct _GeeAbstractSortedSetClass GeeAbstractSortedSetClass; -typedef struct _GeeAbstractSortedSetPrivate GeeAbstractSortedSetPrivate; - -#define GEE_TYPE_BIDIR_SORTED_SET (gee_bidir_sorted_set_get_type ()) -#define GEE_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSet)) -#define GEE_IS_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_SET)) -#define GEE_BIDIR_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSetIface)) - -typedef struct _GeeBidirSortedSet GeeBidirSortedSet; -typedef struct _GeeBidirSortedSetIface GeeBidirSortedSetIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; - -#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET (gee_abstract_bidir_sorted_set_get_type ()) -#define GEE_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSet)) -#define GEE_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET)) -#define GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass)) - -typedef struct _GeeAbstractBidirSortedSet GeeAbstractBidirSortedSet; -typedef struct _GeeAbstractBidirSortedSetClass GeeAbstractBidirSortedSetClass; -typedef struct _GeeAbstractBidirSortedSetPrivate GeeAbstractBidirSortedSetPrivate; enum { GEE_ABSTRACT_BIDIR_SORTED_SET_0_PROPERTY, GEE_ABSTRACT_BIDIR_SORTED_SET_G_TYPE, @@ -208,218 +78,6 @@ typedef struct _GeeReadOnlyBidirSortedSetClass GeeReadOnlyBidirSortedSetClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeAbstractSet { - GeeAbstractCollection parent_instance; - GeeAbstractSetPrivate * priv; -}; - -struct _GeeAbstractSetClass { - GeeAbstractCollectionClass parent_class; - void (*reserved0) (GeeAbstractSet* self); - void (*reserved1) (GeeAbstractSet* self); - void (*reserved2) (GeeAbstractSet* self); - void (*reserved3) (GeeAbstractSet* self); - void (*reserved4) (GeeAbstractSet* self); - void (*reserved5) (GeeAbstractSet* self); - void (*reserved6) (GeeAbstractSet* self); - void (*reserved7) (GeeAbstractSet* self); - void (*reserved8) (GeeAbstractSet* self); - void (*reserved9) (GeeAbstractSet* self); - GeeSet* (*get_read_only_view) (GeeAbstractSet* self); -}; - -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - -struct _GeeAbstractSortedSet { - GeeAbstractSet parent_instance; - GeeAbstractSortedSetPrivate * priv; -}; - -struct _GeeAbstractSortedSetClass { - GeeAbstractSetClass parent_class; - gpointer (*first) (GeeAbstractSortedSet* self); - gpointer (*last) (GeeAbstractSortedSet* self); - GeeIterator* (*iterator_at) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeAbstractSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeAbstractSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeAbstractSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to); - void (*reserved0) (GeeAbstractSortedSet* self); - void (*reserved1) (GeeAbstractSortedSet* self); - void (*reserved2) (GeeAbstractSortedSet* self); - void (*reserved3) (GeeAbstractSortedSet* self); - void (*reserved4) (GeeAbstractSortedSet* self); - void (*reserved5) (GeeAbstractSortedSet* self); - void (*reserved6) (GeeAbstractSortedSet* self); - void (*reserved7) (GeeAbstractSortedSet* self); - void (*reserved8) (GeeAbstractSortedSet* self); - void (*reserved9) (GeeAbstractSortedSet* self); - GeeSortedSet* (*get_read_only_view) (GeeAbstractSortedSet* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirSortedSet* self); - GeeBidirIterator* (*bidir_iterator) (GeeBidirSortedSet* self); - GeeBidirSortedSet* (*get_read_only_view) (GeeBidirSortedSet* self); -}; - -struct _GeeAbstractBidirSortedSet { - GeeAbstractSortedSet parent_instance; - GeeAbstractBidirSortedSetPrivate * priv; -}; - -struct _GeeAbstractBidirSortedSetClass { - GeeAbstractSortedSetClass parent_class; - GeeBidirIterator* (*bidir_iterator) (GeeAbstractBidirSortedSet* self); - void (*reserved0) (GeeAbstractBidirSortedSet* self); - void (*reserved1) (GeeAbstractBidirSortedSet* self); - void (*reserved2) (GeeAbstractBidirSortedSet* self); - void (*reserved3) (GeeAbstractBidirSortedSet* self); - void (*reserved4) (GeeAbstractBidirSortedSet* self); - void (*reserved5) (GeeAbstractBidirSortedSet* self); - void (*reserved6) (GeeAbstractBidirSortedSet* self); - void (*reserved7) (GeeAbstractBidirSortedSet* self); - void (*reserved8) (GeeAbstractBidirSortedSet* self); - void (*reserved9) (GeeAbstractBidirSortedSet* self); - GeeBidirSortedSet* (*get_read_only_view) (GeeAbstractBidirSortedSet* self); -}; - struct _GeeAbstractBidirSortedSetPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -431,89 +89,45 @@ static gpointer gee_abstract_bidir_sorted_set_parent_class = NULL; static GeeBidirSortedSetIface * gee_abstract_bidir_sorted_set_gee_bidir_sorted_set_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedSet, g_object_unref) -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_bidir_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedSet, g_object_unref) -GeeBidirIterator* gee_abstract_bidir_sorted_set_bidir_iterator (GeeAbstractBidirSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved0 (GeeAbstractBidirSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved1 (GeeAbstractBidirSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved2 (GeeAbstractBidirSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved3 (GeeAbstractBidirSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved4 (GeeAbstractBidirSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved5 (GeeAbstractBidirSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved6 (GeeAbstractBidirSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved7 (GeeAbstractBidirSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved8 (GeeAbstractBidirSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved9 (GeeAbstractBidirSortedSet* self); static GeeBidirIterator* gee_abstract_bidir_sorted_set_real_bidir_iterator (GeeAbstractBidirSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved0 (GeeAbstractBidirSortedSet* self); static void gee_abstract_bidir_sorted_set_real_reserved0 (GeeAbstractBidirSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved1 (GeeAbstractBidirSortedSet* self); static void gee_abstract_bidir_sorted_set_real_reserved1 (GeeAbstractBidirSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved2 (GeeAbstractBidirSortedSet* self); static void gee_abstract_bidir_sorted_set_real_reserved2 (GeeAbstractBidirSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved3 (GeeAbstractBidirSortedSet* self); static void gee_abstract_bidir_sorted_set_real_reserved3 (GeeAbstractBidirSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved4 (GeeAbstractBidirSortedSet* self); static void gee_abstract_bidir_sorted_set_real_reserved4 (GeeAbstractBidirSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved5 (GeeAbstractBidirSortedSet* self); static void gee_abstract_bidir_sorted_set_real_reserved5 (GeeAbstractBidirSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved6 (GeeAbstractBidirSortedSet* self); static void gee_abstract_bidir_sorted_set_real_reserved6 (GeeAbstractBidirSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved7 (GeeAbstractBidirSortedSet* self); static void gee_abstract_bidir_sorted_set_real_reserved7 (GeeAbstractBidirSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved8 (GeeAbstractBidirSortedSet* self); static void gee_abstract_bidir_sorted_set_real_reserved8 (GeeAbstractBidirSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_bidir_sorted_set_reserved9 (GeeAbstractBidirSortedSet* self); static void gee_abstract_bidir_sorted_set_real_reserved9 (GeeAbstractBidirSortedSet* self); -GeeAbstractBidirSortedSet* gee_abstract_bidir_sorted_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeAbstractSortedSet* gee_abstract_sorted_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeBidirSortedSet* gee_abstract_bidir_sorted_set_get_read_only_view (GeeAbstractBidirSortedSet* self); -G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirSortedSet* set); -G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirSortedSet* set); -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySet, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySortedSet, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_bidir_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyBidirSortedSet, g_object_unref) + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_bidir_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GObject * gee_abstract_bidir_sorted_set_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static void gee_abstract_bidir_sorted_set_finalize (GObject * obj); +static GType gee_abstract_bidir_sorted_set_get_type_once (void); static void _vala_gee_abstract_bidir_sorted_set_get_property (GObject * object, guint property_id, GValue * value, @@ -542,8 +156,13 @@ GeeBidirIterator* gee_abstract_bidir_sorted_set_bidir_iterator (GeeAbstractBidirSortedSet* self) { + GeeAbstractBidirSortedSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self)->bidir_iterator (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self); + if (_klass_->bidir_iterator) { + return _klass_->bidir_iterator (self); + } + return NULL; } static void @@ -554,8 +173,12 @@ void gee_abstract_bidir_sorted_set_reserved0 (GeeAbstractBidirSortedSet* self) { + GeeAbstractBidirSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self)->reserved0 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved0) { + _klass_->reserved0 (self); + } } static void @@ -566,8 +189,12 @@ void gee_abstract_bidir_sorted_set_reserved1 (GeeAbstractBidirSortedSet* self) { + GeeAbstractBidirSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self)->reserved1 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved1) { + _klass_->reserved1 (self); + } } static void @@ -578,8 +205,12 @@ void gee_abstract_bidir_sorted_set_reserved2 (GeeAbstractBidirSortedSet* self) { + GeeAbstractBidirSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self)->reserved2 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved2) { + _klass_->reserved2 (self); + } } static void @@ -590,8 +221,12 @@ void gee_abstract_bidir_sorted_set_reserved3 (GeeAbstractBidirSortedSet* self) { + GeeAbstractBidirSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self)->reserved3 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved3) { + _klass_->reserved3 (self); + } } static void @@ -602,8 +237,12 @@ void gee_abstract_bidir_sorted_set_reserved4 (GeeAbstractBidirSortedSet* self) { + GeeAbstractBidirSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self)->reserved4 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved4) { + _klass_->reserved4 (self); + } } static void @@ -614,8 +253,12 @@ void gee_abstract_bidir_sorted_set_reserved5 (GeeAbstractBidirSortedSet* self) { + GeeAbstractBidirSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self)->reserved5 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved5) { + _klass_->reserved5 (self); + } } static void @@ -626,8 +269,12 @@ void gee_abstract_bidir_sorted_set_reserved6 (GeeAbstractBidirSortedSet* self) { + GeeAbstractBidirSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self)->reserved6 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved6) { + _klass_->reserved6 (self); + } } static void @@ -638,8 +285,12 @@ void gee_abstract_bidir_sorted_set_reserved7 (GeeAbstractBidirSortedSet* self) { + GeeAbstractBidirSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self)->reserved7 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved7) { + _klass_->reserved7 (self); + } } static void @@ -650,8 +301,12 @@ void gee_abstract_bidir_sorted_set_reserved8 (GeeAbstractBidirSortedSet* self) { + GeeAbstractBidirSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self)->reserved8 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved8) { + _klass_->reserved8 (self); + } } static void @@ -662,8 +317,12 @@ void gee_abstract_bidir_sorted_set_reserved9 (GeeAbstractBidirSortedSet* self) { + GeeAbstractBidirSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self)->reserved9 (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved9) { + _klass_->reserved9 (self); + } } GeeAbstractBidirSortedSet* @@ -683,8 +342,13 @@ GeeBidirSortedSet* gee_abstract_bidir_sorted_set_get_read_only_view (GeeAbstractBidirSortedSet* self) { + GeeAbstractBidirSortedSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static GeeBidirSortedSet* @@ -812,17 +476,25 @@ * * @see TreeSet */ +static GType +gee_abstract_bidir_sorted_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractBidirSortedSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_bidir_sorted_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractBidirSortedSet), 0, (GInstanceInitFunc) gee_abstract_bidir_sorted_set_instance_init, NULL }; + static const GInterfaceInfo gee_bidir_sorted_set_info = { (GInterfaceInitFunc) gee_abstract_bidir_sorted_set_gee_bidir_sorted_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_bidir_sorted_set_type_id; + gee_abstract_bidir_sorted_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SORTED_SET, "GeeAbstractBidirSortedSet", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (gee_abstract_bidir_sorted_set_type_id, GEE_TYPE_BIDIR_SORTED_SET, &gee_bidir_sorted_set_info); + GeeAbstractBidirSortedSet_private_offset = g_type_add_instance_private (gee_abstract_bidir_sorted_set_type_id, sizeof (GeeAbstractBidirSortedSetPrivate)); + return gee_abstract_bidir_sorted_set_type_id; +} + GType gee_abstract_bidir_sorted_set_get_type (void) { static volatile gsize gee_abstract_bidir_sorted_set_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_bidir_sorted_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractBidirSortedSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_bidir_sorted_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractBidirSortedSet), 0, (GInstanceInitFunc) gee_abstract_bidir_sorted_set_instance_init, NULL }; - static const GInterfaceInfo gee_bidir_sorted_set_info = { (GInterfaceInitFunc) gee_abstract_bidir_sorted_set_gee_bidir_sorted_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_bidir_sorted_set_type_id; - gee_abstract_bidir_sorted_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SORTED_SET, "GeeAbstractBidirSortedSet", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - g_type_add_interface_static (gee_abstract_bidir_sorted_set_type_id, GEE_TYPE_BIDIR_SORTED_SET, &gee_bidir_sorted_set_info); - GeeAbstractBidirSortedSet_private_offset = g_type_add_instance_private (gee_abstract_bidir_sorted_set_type_id, sizeof (GeeAbstractBidirSortedSetPrivate)); + gee_abstract_bidir_sorted_set_type_id = gee_abstract_bidir_sorted_set_get_type_once (); g_once_init_leave (&gee_abstract_bidir_sorted_set_type_id__volatile, gee_abstract_bidir_sorted_set_type_id); } return gee_abstract_bidir_sorted_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/abstractcollection.c libgee-0.8-0.20.4/gee/abstractcollection.c --- libgee-0.8-0.20.3/gee/abstractcollection.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/abstractcollection.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* abstractcollection.c generated by valac 0.46.6, the Vala compiler +/* abstractcollection.c generated by valac 0.52.0, the Vala compiler * generated from abstractcollection.vala, do not modify */ /* abstractcollection.vala @@ -24,75 +24,10 @@ * Didier 'Ptitjes' Villevalois */ +#include "gee.h" #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; enum { GEE_ABSTRACT_COLLECTION_0_PROPERTY, GEE_ABSTRACT_COLLECTION_G_TYPE, @@ -116,101 +51,6 @@ typedef struct _GeeReadOnlyCollection GeeReadOnlyCollection; typedef struct _GeeReadOnlyCollectionClass GeeReadOnlyCollectionClass; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - struct _GeeAbstractCollectionPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -224,94 +64,52 @@ static GeeIterableIface * gee_abstract_collection_gee_iterable_parent_iface = NULL; static GeeCollectionIface * gee_abstract_collection_gee_collection_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -gboolean gee_abstract_collection_contains (GeeAbstractCollection* self, - gconstpointer item); + G_GNUC_INTERNAL void gee_abstract_collection_reserved0 (GeeAbstractCollection* self); + G_GNUC_INTERNAL void gee_abstract_collection_reserved1 (GeeAbstractCollection* self); + G_GNUC_INTERNAL void gee_abstract_collection_reserved2 (GeeAbstractCollection* self); + G_GNUC_INTERNAL void gee_abstract_collection_reserved3 (GeeAbstractCollection* self); + G_GNUC_INTERNAL void gee_abstract_collection_reserved4 (GeeAbstractCollection* self); + G_GNUC_INTERNAL void gee_abstract_collection_reserved5 (GeeAbstractCollection* self); + G_GNUC_INTERNAL void gee_abstract_collection_reserved6 (GeeAbstractCollection* self); + G_GNUC_INTERNAL void gee_abstract_collection_reserved7 (GeeAbstractCollection* self); + G_GNUC_INTERNAL void gee_abstract_collection_reserved8 (GeeAbstractCollection* self); + G_GNUC_INTERNAL void gee_abstract_collection_reserved9 (GeeAbstractCollection* self); static gboolean gee_abstract_collection_real_contains (GeeAbstractCollection* self, gconstpointer item); -gboolean gee_abstract_collection_add (GeeAbstractCollection* self, - gconstpointer item); static gboolean gee_abstract_collection_real_add (GeeAbstractCollection* self, gconstpointer item); -gboolean gee_abstract_collection_remove (GeeAbstractCollection* self, - gconstpointer item); static gboolean gee_abstract_collection_real_remove (GeeAbstractCollection* self, gconstpointer item); -void gee_abstract_collection_clear (GeeAbstractCollection* self); static void gee_abstract_collection_real_clear (GeeAbstractCollection* self); -GeeIterator* gee_abstract_collection_iterator (GeeAbstractCollection* self); static GeeIterator* gee_abstract_collection_real_iterator (GeeAbstractCollection* self); -gboolean gee_abstract_collection_foreach (GeeAbstractCollection* self, - GeeForallFunc f, - gpointer f_target); static gboolean gee_abstract_collection_real_foreach (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); -gboolean gee_traversable_foreach (GeeTraversable* self, - GeeForallFunc f, - gpointer f_target); -G_GNUC_INTERNAL void gee_abstract_collection_reserved0 (GeeAbstractCollection* self); static void gee_abstract_collection_real_reserved0 (GeeAbstractCollection* self); -G_GNUC_INTERNAL void gee_abstract_collection_reserved1 (GeeAbstractCollection* self); static void gee_abstract_collection_real_reserved1 (GeeAbstractCollection* self); -G_GNUC_INTERNAL void gee_abstract_collection_reserved2 (GeeAbstractCollection* self); static void gee_abstract_collection_real_reserved2 (GeeAbstractCollection* self); -G_GNUC_INTERNAL void gee_abstract_collection_reserved3 (GeeAbstractCollection* self); static void gee_abstract_collection_real_reserved3 (GeeAbstractCollection* self); -G_GNUC_INTERNAL void gee_abstract_collection_reserved4 (GeeAbstractCollection* self); static void gee_abstract_collection_real_reserved4 (GeeAbstractCollection* self); -G_GNUC_INTERNAL void gee_abstract_collection_reserved5 (GeeAbstractCollection* self); static void gee_abstract_collection_real_reserved5 (GeeAbstractCollection* self); -G_GNUC_INTERNAL void gee_abstract_collection_reserved6 (GeeAbstractCollection* self); static void gee_abstract_collection_real_reserved6 (GeeAbstractCollection* self); -G_GNUC_INTERNAL void gee_abstract_collection_reserved7 (GeeAbstractCollection* self); static void gee_abstract_collection_real_reserved7 (GeeAbstractCollection* self); -G_GNUC_INTERNAL void gee_abstract_collection_reserved8 (GeeAbstractCollection* self); static void gee_abstract_collection_real_reserved8 (GeeAbstractCollection* self); -G_GNUC_INTERNAL void gee_abstract_collection_reserved9 (GeeAbstractCollection* self); static void gee_abstract_collection_real_reserved9 (GeeAbstractCollection* self); -GeeAbstractCollection* gee_abstract_collection_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); -GeeCollection* gee_abstract_collection_get_read_only_view (GeeAbstractCollection* self); -G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeCollection* collection); -G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeCollection* collection); -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GObject * gee_abstract_collection_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static void gee_abstract_collection_finalize (GObject * obj); +static GType gee_abstract_collection_get_type_once (void); static void _vala_gee_abstract_collection_get_property (GObject * object, guint property_id, GValue * value, @@ -343,8 +141,13 @@ gee_abstract_collection_contains (GeeAbstractCollection* self, gconstpointer item) { + GeeAbstractCollectionClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->contains (self, item); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->contains) { + return _klass_->contains (self, item); + } + return FALSE; } /** @@ -363,8 +166,13 @@ gee_abstract_collection_add (GeeAbstractCollection* self, gconstpointer item) { + GeeAbstractCollectionClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->add (self, item); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->add) { + return _klass_->add (self, item); + } + return FALSE; } /** @@ -383,8 +191,13 @@ gee_abstract_collection_remove (GeeAbstractCollection* self, gconstpointer item) { + GeeAbstractCollectionClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->remove (self, item); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->remove) { + return _klass_->remove (self, item); + } + return FALSE; } /** @@ -400,8 +213,12 @@ void gee_abstract_collection_clear (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->clear (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->clear) { + _klass_->clear (self); + } } /** @@ -417,8 +234,13 @@ GeeIterator* gee_abstract_collection_iterator (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->iterator (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->iterator) { + return _klass_->iterator (self); + } + return NULL; } static gboolean @@ -443,8 +265,13 @@ GeeForallFunc f, gpointer f_target) { + GeeAbstractCollectionClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->foreach (self, f, f_target); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->foreach) { + return _klass_->foreach (self, f, f_target); + } + return FALSE; } static void @@ -455,8 +282,12 @@ void gee_abstract_collection_reserved0 (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->reserved0 (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->reserved0) { + _klass_->reserved0 (self); + } } static void @@ -467,8 +298,12 @@ void gee_abstract_collection_reserved1 (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->reserved1 (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->reserved1) { + _klass_->reserved1 (self); + } } static void @@ -479,8 +314,12 @@ void gee_abstract_collection_reserved2 (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->reserved2 (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->reserved2) { + _klass_->reserved2 (self); + } } static void @@ -491,8 +330,12 @@ void gee_abstract_collection_reserved3 (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->reserved3 (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->reserved3) { + _klass_->reserved3 (self); + } } static void @@ -503,8 +346,12 @@ void gee_abstract_collection_reserved4 (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->reserved4 (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->reserved4) { + _klass_->reserved4 (self); + } } static void @@ -515,8 +362,12 @@ void gee_abstract_collection_reserved5 (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->reserved5 (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->reserved5) { + _klass_->reserved5 (self); + } } static void @@ -527,8 +378,12 @@ void gee_abstract_collection_reserved6 (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->reserved6 (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->reserved6) { + _klass_->reserved6 (self); + } } static void @@ -539,8 +394,12 @@ void gee_abstract_collection_reserved7 (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->reserved7 (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->reserved7) { + _klass_->reserved7 (self); + } } static void @@ -551,8 +410,12 @@ void gee_abstract_collection_reserved8 (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->reserved8 (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->reserved8) { + _klass_->reserved8 (self); + } } static void @@ -563,8 +426,12 @@ void gee_abstract_collection_reserved9 (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->reserved9 (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->reserved9) { + _klass_->reserved9 (self); + } } GeeAbstractCollection* @@ -584,22 +451,37 @@ gint gee_abstract_collection_get_size (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_val_if_fail (self != NULL, 0); - return GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->get_size (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->get_size) { + return _klass_->get_size (self); + } + return -1; } gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->get_read_only (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->get_read_only) { + return _klass_->get_read_only (self); + } + return FALSE; } GeeCollection* gee_abstract_collection_get_read_only_view (GeeAbstractCollection* self) { + GeeAbstractCollectionClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_COLLECTION_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_ABSTRACT_COLLECTION_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static GeeCollection* @@ -805,21 +687,29 @@ * @see AbstractSet * @see AbstractMultiSet */ +static GType +gee_abstract_collection_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractCollection), 0, (GInstanceInitFunc) gee_abstract_collection_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_abstract_collection_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterable_info = { (GInterfaceInitFunc) gee_abstract_collection_gee_iterable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_collection_info = { (GInterfaceInitFunc) gee_abstract_collection_gee_collection_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_collection_type_id; + gee_abstract_collection_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeAbstractCollection", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (gee_abstract_collection_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_abstract_collection_type_id, GEE_TYPE_ITERABLE, &gee_iterable_info); + g_type_add_interface_static (gee_abstract_collection_type_id, GEE_TYPE_COLLECTION, &gee_collection_info); + GeeAbstractCollection_private_offset = g_type_add_instance_private (gee_abstract_collection_type_id, sizeof (GeeAbstractCollectionPrivate)); + return gee_abstract_collection_type_id; +} + GType gee_abstract_collection_get_type (void) { static volatile gsize gee_abstract_collection_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_collection_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractCollection), 0, (GInstanceInitFunc) gee_abstract_collection_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_abstract_collection_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterable_info = { (GInterfaceInitFunc) gee_abstract_collection_gee_iterable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_collection_info = { (GInterfaceInitFunc) gee_abstract_collection_gee_collection_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_collection_type_id; - gee_abstract_collection_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeAbstractCollection", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - g_type_add_interface_static (gee_abstract_collection_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_abstract_collection_type_id, GEE_TYPE_ITERABLE, &gee_iterable_info); - g_type_add_interface_static (gee_abstract_collection_type_id, GEE_TYPE_COLLECTION, &gee_collection_info); - GeeAbstractCollection_private_offset = g_type_add_instance_private (gee_abstract_collection_type_id, sizeof (GeeAbstractCollectionPrivate)); + gee_abstract_collection_type_id = gee_abstract_collection_get_type_once (); g_once_init_leave (&gee_abstract_collection_type_id__volatile, gee_abstract_collection_type_id); } return gee_abstract_collection_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/abstractlist.c libgee-0.8-0.20.4/gee/abstractlist.c --- libgee-0.8-0.20.3/gee/abstractlist.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/abstractlist.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* abstractlist.c generated by valac 0.46.6, the Vala compiler +/* abstractlist.c generated by valac 0.52.0, the Vala compiler * generated from abstractlist.vala, do not modify */ /* abstractlist.vala @@ -24,102 +24,10 @@ * Didier 'Ptitjes' Villevalois */ +#include "gee.h" #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_LIST (gee_list_get_type ()) -#define GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST, GeeList)) -#define GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST)) -#define GEE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST, GeeListIface)) - -typedef struct _GeeList GeeList; -typedef struct _GeeListIface GeeListIface; - -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; - -#define GEE_TYPE_ABSTRACT_LIST (gee_abstract_list_get_type ()) -#define GEE_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractList)) -#define GEE_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) -#define GEE_IS_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_IS_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_ABSTRACT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) - -typedef struct _GeeAbstractList GeeAbstractList; -typedef struct _GeeAbstractListClass GeeAbstractListClass; -typedef struct _GeeAbstractListPrivate GeeAbstractListPrivate; enum { GEE_ABSTRACT_LIST_0_PROPERTY, GEE_ABSTRACT_LIST_G_TYPE, @@ -151,154 +59,6 @@ typedef struct _GeeReadOnlyListClass GeeReadOnlyListClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -struct _GeeListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeList* self); - GDestroyNotify (*get_g_destroy_func) (GeeList* self); - GeeListIterator* (*list_iterator) (GeeList* self); - gpointer (*get) (GeeList* self, gint index); - void (*set) (GeeList* self, gint index, gconstpointer item); - gint (*index_of) (GeeList* self, gconstpointer item); - void (*insert) (GeeList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeList* self, gint index); - GeeList* (*slice) (GeeList* self, gint start, gint stop); - gpointer (*first) (GeeList* self); - gpointer (*last) (GeeList* self); - void (*insert_all) (GeeList* self, gint index, GeeCollection* collection); - void (*sort) (GeeList* self, GCompareDataFunc compare_func, gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify); - GeeList* (*get_read_only_view) (GeeList* self); -}; - -struct _GeeAbstractList { - GeeAbstractCollection parent_instance; - GeeAbstractListPrivate * priv; -}; - -struct _GeeAbstractListClass { - GeeAbstractCollectionClass parent_class; - GeeListIterator* (*list_iterator) (GeeAbstractList* self); - gpointer (*get) (GeeAbstractList* self, gint index); - void (*set) (GeeAbstractList* self, gint index, gconstpointer item); - gint (*index_of) (GeeAbstractList* self, gconstpointer item); - void (*insert) (GeeAbstractList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeAbstractList* self, gint index); - GeeList* (*slice) (GeeAbstractList* self, gint start, gint stop); - void (*reserved0) (GeeAbstractList* self); - void (*reserved1) (GeeAbstractList* self); - void (*reserved2) (GeeAbstractList* self); - void (*reserved3) (GeeAbstractList* self); - void (*reserved4) (GeeAbstractList* self); - void (*reserved5) (GeeAbstractList* self); - void (*reserved6) (GeeAbstractList* self); - void (*reserved7) (GeeAbstractList* self); - void (*reserved8) (GeeAbstractList* self); - void (*reserved9) (GeeAbstractList* self); - GeeList* (*get_read_only_view) (GeeAbstractList* self); -}; - struct _GeeAbstractListPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -310,109 +70,58 @@ static gpointer gee_abstract_list_parent_class = NULL; static GeeListIface * gee_abstract_list_gee_list_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_get_type (void) G_GNUC_CONST; -GType gee_abstract_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractList, g_object_unref) -GeeListIterator* gee_abstract_list_list_iterator (GeeAbstractList* self); + G_GNUC_INTERNAL void gee_abstract_list_reserved0 (GeeAbstractList* self); + G_GNUC_INTERNAL void gee_abstract_list_reserved1 (GeeAbstractList* self); + G_GNUC_INTERNAL void gee_abstract_list_reserved2 (GeeAbstractList* self); + G_GNUC_INTERNAL void gee_abstract_list_reserved3 (GeeAbstractList* self); + G_GNUC_INTERNAL void gee_abstract_list_reserved4 (GeeAbstractList* self); + G_GNUC_INTERNAL void gee_abstract_list_reserved5 (GeeAbstractList* self); + G_GNUC_INTERNAL void gee_abstract_list_reserved6 (GeeAbstractList* self); + G_GNUC_INTERNAL void gee_abstract_list_reserved7 (GeeAbstractList* self); + G_GNUC_INTERNAL void gee_abstract_list_reserved8 (GeeAbstractList* self); + G_GNUC_INTERNAL void gee_abstract_list_reserved9 (GeeAbstractList* self); static GeeListIterator* gee_abstract_list_real_list_iterator (GeeAbstractList* self); -gpointer gee_abstract_list_get (GeeAbstractList* self, - gint index); static gpointer gee_abstract_list_real_get (GeeAbstractList* self, gint index); -void gee_abstract_list_set (GeeAbstractList* self, - gint index, - gconstpointer item); static void gee_abstract_list_real_set (GeeAbstractList* self, gint index, gconstpointer item); -gint gee_abstract_list_index_of (GeeAbstractList* self, - gconstpointer item); static gint gee_abstract_list_real_index_of (GeeAbstractList* self, gconstpointer item); -void gee_abstract_list_insert (GeeAbstractList* self, - gint index, - gconstpointer item); static void gee_abstract_list_real_insert (GeeAbstractList* self, gint index, gconstpointer item); -gpointer gee_abstract_list_remove_at (GeeAbstractList* self, - gint index); static gpointer gee_abstract_list_real_remove_at (GeeAbstractList* self, gint index); -GeeList* gee_abstract_list_slice (GeeAbstractList* self, - gint start, - gint stop); static GeeList* gee_abstract_list_real_slice (GeeAbstractList* self, gint start, gint stop); -G_GNUC_INTERNAL void gee_abstract_list_reserved0 (GeeAbstractList* self); static void gee_abstract_list_real_reserved0 (GeeAbstractList* self); -G_GNUC_INTERNAL void gee_abstract_list_reserved1 (GeeAbstractList* self); static void gee_abstract_list_real_reserved1 (GeeAbstractList* self); -G_GNUC_INTERNAL void gee_abstract_list_reserved2 (GeeAbstractList* self); static void gee_abstract_list_real_reserved2 (GeeAbstractList* self); -G_GNUC_INTERNAL void gee_abstract_list_reserved3 (GeeAbstractList* self); static void gee_abstract_list_real_reserved3 (GeeAbstractList* self); -G_GNUC_INTERNAL void gee_abstract_list_reserved4 (GeeAbstractList* self); static void gee_abstract_list_real_reserved4 (GeeAbstractList* self); -G_GNUC_INTERNAL void gee_abstract_list_reserved5 (GeeAbstractList* self); static void gee_abstract_list_real_reserved5 (GeeAbstractList* self); -G_GNUC_INTERNAL void gee_abstract_list_reserved6 (GeeAbstractList* self); static void gee_abstract_list_real_reserved6 (GeeAbstractList* self); -G_GNUC_INTERNAL void gee_abstract_list_reserved7 (GeeAbstractList* self); static void gee_abstract_list_real_reserved7 (GeeAbstractList* self); -G_GNUC_INTERNAL void gee_abstract_list_reserved8 (GeeAbstractList* self); static void gee_abstract_list_real_reserved8 (GeeAbstractList* self); -G_GNUC_INTERNAL void gee_abstract_list_reserved9 (GeeAbstractList* self); static void gee_abstract_list_real_reserved9 (GeeAbstractList* self); -GeeAbstractList* gee_abstract_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeAbstractCollection* gee_abstract_collection_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeList* gee_abstract_list_get_read_only_view (GeeAbstractList* self); -G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeList* list); -G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeList* list); -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_list_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyList, g_object_unref) + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_list_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GObject * gee_abstract_list_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static void gee_abstract_list_finalize (GObject * obj); +static GType gee_abstract_list_get_type_once (void); static void _vala_gee_abstract_list_get_property (GObject * object, guint property_id, GValue * value, @@ -441,8 +150,13 @@ GeeListIterator* gee_abstract_list_list_iterator (GeeAbstractList* self) { + GeeAbstractListClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_LIST_GET_CLASS (self)->list_iterator (self); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->list_iterator) { + return _klass_->list_iterator (self); + } + return NULL; } /** @@ -460,8 +174,13 @@ gee_abstract_list_get (GeeAbstractList* self, gint index) { + GeeAbstractListClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_LIST_GET_CLASS (self)->get (self, index); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->get) { + return _klass_->get (self, index); + } + return NULL; } /** @@ -481,8 +200,12 @@ gint index, gconstpointer item) { + GeeAbstractListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_LIST_GET_CLASS (self)->set (self, index, item); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->set) { + _klass_->set (self, index, item); + } } /** @@ -501,8 +224,13 @@ gee_abstract_list_index_of (GeeAbstractList* self, gconstpointer item) { + GeeAbstractListClass* _klass_; g_return_val_if_fail (self != NULL, 0); - return GEE_ABSTRACT_LIST_GET_CLASS (self)->index_of (self, item); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->index_of) { + return _klass_->index_of (self, item); + } + return -1; } /** @@ -522,8 +250,12 @@ gint index, gconstpointer item) { + GeeAbstractListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_LIST_GET_CLASS (self)->insert (self, index, item); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->insert) { + _klass_->insert (self, index, item); + } } /** @@ -541,8 +273,13 @@ gee_abstract_list_remove_at (GeeAbstractList* self, gint index) { + GeeAbstractListClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_LIST_GET_CLASS (self)->remove_at (self, index); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->remove_at) { + return _klass_->remove_at (self, index); + } + return NULL; } /** @@ -562,8 +299,13 @@ gint start, gint stop) { + GeeAbstractListClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_LIST_GET_CLASS (self)->slice (self, start, stop); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->slice) { + return _klass_->slice (self, start, stop); + } + return NULL; } static void @@ -574,8 +316,12 @@ void gee_abstract_list_reserved0 (GeeAbstractList* self) { + GeeAbstractListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_LIST_GET_CLASS (self)->reserved0 (self); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->reserved0) { + _klass_->reserved0 (self); + } } static void @@ -586,8 +332,12 @@ void gee_abstract_list_reserved1 (GeeAbstractList* self) { + GeeAbstractListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_LIST_GET_CLASS (self)->reserved1 (self); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->reserved1) { + _klass_->reserved1 (self); + } } static void @@ -598,8 +348,12 @@ void gee_abstract_list_reserved2 (GeeAbstractList* self) { + GeeAbstractListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_LIST_GET_CLASS (self)->reserved2 (self); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->reserved2) { + _klass_->reserved2 (self); + } } static void @@ -610,8 +364,12 @@ void gee_abstract_list_reserved3 (GeeAbstractList* self) { + GeeAbstractListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_LIST_GET_CLASS (self)->reserved3 (self); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->reserved3) { + _klass_->reserved3 (self); + } } static void @@ -622,8 +380,12 @@ void gee_abstract_list_reserved4 (GeeAbstractList* self) { + GeeAbstractListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_LIST_GET_CLASS (self)->reserved4 (self); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->reserved4) { + _klass_->reserved4 (self); + } } static void @@ -634,8 +396,12 @@ void gee_abstract_list_reserved5 (GeeAbstractList* self) { + GeeAbstractListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_LIST_GET_CLASS (self)->reserved5 (self); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->reserved5) { + _klass_->reserved5 (self); + } } static void @@ -646,8 +412,12 @@ void gee_abstract_list_reserved6 (GeeAbstractList* self) { + GeeAbstractListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_LIST_GET_CLASS (self)->reserved6 (self); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->reserved6) { + _klass_->reserved6 (self); + } } static void @@ -658,8 +428,12 @@ void gee_abstract_list_reserved7 (GeeAbstractList* self) { + GeeAbstractListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_LIST_GET_CLASS (self)->reserved7 (self); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->reserved7) { + _klass_->reserved7 (self); + } } static void @@ -670,8 +444,12 @@ void gee_abstract_list_reserved8 (GeeAbstractList* self) { + GeeAbstractListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_LIST_GET_CLASS (self)->reserved8 (self); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->reserved8) { + _klass_->reserved8 (self); + } } static void @@ -682,8 +460,12 @@ void gee_abstract_list_reserved9 (GeeAbstractList* self) { + GeeAbstractListClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_LIST_GET_CLASS (self)->reserved9 (self); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->reserved9) { + _klass_->reserved9 (self); + } } GeeAbstractList* @@ -703,8 +485,13 @@ GeeList* gee_abstract_list_get_read_only_view (GeeAbstractList* self) { + GeeAbstractListClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_LIST_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_ABSTRACT_LIST_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static GeeList* @@ -845,17 +632,25 @@ * @see ArrayList * @see LinkedList */ +static GType +gee_abstract_list_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractList), 0, (GInstanceInitFunc) gee_abstract_list_instance_init, NULL }; + static const GInterfaceInfo gee_list_info = { (GInterfaceInitFunc) gee_abstract_list_gee_list_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_list_type_id; + gee_abstract_list_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractList", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (gee_abstract_list_type_id, GEE_TYPE_LIST, &gee_list_info); + GeeAbstractList_private_offset = g_type_add_instance_private (gee_abstract_list_type_id, sizeof (GeeAbstractListPrivate)); + return gee_abstract_list_type_id; +} + GType gee_abstract_list_get_type (void) { static volatile gsize gee_abstract_list_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_list_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractList), 0, (GInstanceInitFunc) gee_abstract_list_instance_init, NULL }; - static const GInterfaceInfo gee_list_info = { (GInterfaceInitFunc) gee_abstract_list_gee_list_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_list_type_id; - gee_abstract_list_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractList", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - g_type_add_interface_static (gee_abstract_list_type_id, GEE_TYPE_LIST, &gee_list_info); - GeeAbstractList_private_offset = g_type_add_instance_private (gee_abstract_list_type_id, sizeof (GeeAbstractListPrivate)); + gee_abstract_list_type_id = gee_abstract_list_get_type_once (); g_once_init_leave (&gee_abstract_list_type_id__volatile, gee_abstract_list_type_id); } return gee_abstract_list_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/abstractmap.c libgee-0.8-0.20.4/gee/abstractmap.c --- libgee-0.8-0.20.3/gee/abstractmap.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/abstractmap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* abstractmap.c generated by valac 0.46.6, the Vala compiler +/* abstractmap.c generated by valac 0.52.0, the Vala compiler * generated from abstractmap.vala, do not modify */ /* abstractmap.vala @@ -24,111 +24,10 @@ * Tomaž Vajngerl */ +#include "gee.h" #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - -#define GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type ()) -#define GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)) -#define GEE_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) -#define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) - -typedef struct _GeeAbstractMap GeeAbstractMap; -typedef struct _GeeAbstractMapClass GeeAbstractMapClass; -typedef struct _GeeAbstractMapPrivate GeeAbstractMapPrivate; enum { GEE_ABSTRACT_MAP_0_PROPERTY, GEE_ABSTRACT_MAP_K_TYPE, @@ -158,163 +57,6 @@ typedef struct _GeeReadOnlyMap GeeReadOnlyMap; typedef struct _GeeReadOnlyMapClass GeeReadOnlyMapClass; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeAbstractMap { - GObject parent_instance; - GeeAbstractMapPrivate * priv; -}; - -struct _GeeAbstractMapClass { - GObjectClass parent_class; - gboolean (*has_key) (GeeAbstractMap* self, gconstpointer key); - gboolean (*has) (GeeAbstractMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeAbstractMap* self, gconstpointer key); - void (*set) (GeeAbstractMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeAbstractMap* self, gconstpointer key, gpointer* value); - GeeMapIterator* (*map_iterator) (GeeAbstractMap* self); - void (*clear) (GeeAbstractMap* self); - gboolean (*foreach) (GeeAbstractMap* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeAbstractMap* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - void (*reserved0) (GeeAbstractMap* self); - void (*reserved1) (GeeAbstractMap* self); - void (*reserved2) (GeeAbstractMap* self); - void (*reserved3) (GeeAbstractMap* self); - void (*reserved4) (GeeAbstractMap* self); - void (*reserved5) (GeeAbstractMap* self); - void (*reserved6) (GeeAbstractMap* self); - void (*reserved7) (GeeAbstractMap* self); - void (*reserved8) (GeeAbstractMap* self); - void (*reserved9) (GeeAbstractMap* self); - gint (*get_size) (GeeAbstractMap* self); - gboolean (*get_read_only) (GeeAbstractMap* self); - GeeSet* (*get_keys) (GeeAbstractMap* self); - GeeCollection* (*get_values) (GeeAbstractMap* self); - GeeSet* (*get_entries) (GeeAbstractMap* self); - GeeMap* (*get_read_only_view) (GeeAbstractMap* self); -}; - struct _GeeAbstractMapPrivate { GType k_type; GBoxedCopyFunc k_dup_func; @@ -331,81 +73,35 @@ static GeeIterableIface * gee_abstract_map_gee_iterable_parent_iface = NULL; static GeeMapIface * gee_abstract_map_gee_map_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMap, g_object_unref) -gboolean gee_abstract_map_has_key (GeeAbstractMap* self, - gconstpointer key); + G_GNUC_INTERNAL void gee_abstract_map_reserved0 (GeeAbstractMap* self); + G_GNUC_INTERNAL void gee_abstract_map_reserved1 (GeeAbstractMap* self); + G_GNUC_INTERNAL void gee_abstract_map_reserved2 (GeeAbstractMap* self); + G_GNUC_INTERNAL void gee_abstract_map_reserved3 (GeeAbstractMap* self); + G_GNUC_INTERNAL void gee_abstract_map_reserved4 (GeeAbstractMap* self); + G_GNUC_INTERNAL void gee_abstract_map_reserved5 (GeeAbstractMap* self); + G_GNUC_INTERNAL void gee_abstract_map_reserved6 (GeeAbstractMap* self); + G_GNUC_INTERNAL void gee_abstract_map_reserved7 (GeeAbstractMap* self); + G_GNUC_INTERNAL void gee_abstract_map_reserved8 (GeeAbstractMap* self); + G_GNUC_INTERNAL void gee_abstract_map_reserved9 (GeeAbstractMap* self); static gboolean gee_abstract_map_real_has_key (GeeAbstractMap* self, gconstpointer key); -gboolean gee_abstract_map_has (GeeAbstractMap* self, - gconstpointer key, - gconstpointer value); static gboolean gee_abstract_map_real_has (GeeAbstractMap* self, gconstpointer key, gconstpointer value); -gpointer gee_abstract_map_get (GeeAbstractMap* self, - gconstpointer key); static gpointer gee_abstract_map_real_get (GeeAbstractMap* self, gconstpointer key); -void gee_abstract_map_set (GeeAbstractMap* self, - gconstpointer key, - gconstpointer value); static void gee_abstract_map_real_set (GeeAbstractMap* self, gconstpointer key, gconstpointer value); -gboolean gee_abstract_map_unset (GeeAbstractMap* self, - gconstpointer key, - gpointer* value); static gboolean gee_abstract_map_real_unset (GeeAbstractMap* self, gconstpointer key, gpointer* value); -GeeMapIterator* gee_abstract_map_map_iterator (GeeAbstractMap* self); static GeeMapIterator* gee_abstract_map_real_map_iterator (GeeAbstractMap* self); -void gee_abstract_map_clear (GeeAbstractMap* self); static void gee_abstract_map_real_clear (GeeAbstractMap* self); static GeeIterator* gee_abstract_map_real_iterator (GeeIterable* base); -GeeSet* gee_map_get_entries (GeeMap* self); -GeeIterator* gee_iterable_iterator (GeeIterable* self); -gboolean gee_abstract_map_foreach (GeeAbstractMap* self, - GeeForallFunc f, - gpointer f_target); static gboolean gee_abstract_map_real_foreach (GeeAbstractMap* self, GeeForallFunc f, gpointer f_target); -gboolean gee_traversable_foreach (GeeTraversable* self, - GeeForallFunc f, - gpointer f_target); -GeeIterator* gee_abstract_map_stream (GeeAbstractMap* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeStreamFunc f, - gpointer f_target, - GDestroyNotify f_target_destroy_notify); static GeeIterator* gee_abstract_map_real_stream (GeeAbstractMap* self, GType a_type, GBoxedCopyFunc a_dup_func, @@ -413,54 +109,24 @@ GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); -GeeIterator* gee_traversable_stream (GeeTraversable* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeStreamFunc f, - gpointer f_target, - GDestroyNotify f_target_destroy_notify); -G_GNUC_INTERNAL void gee_abstract_map_reserved0 (GeeAbstractMap* self); static void gee_abstract_map_real_reserved0 (GeeAbstractMap* self); -G_GNUC_INTERNAL void gee_abstract_map_reserved1 (GeeAbstractMap* self); static void gee_abstract_map_real_reserved1 (GeeAbstractMap* self); -G_GNUC_INTERNAL void gee_abstract_map_reserved2 (GeeAbstractMap* self); static void gee_abstract_map_real_reserved2 (GeeAbstractMap* self); -G_GNUC_INTERNAL void gee_abstract_map_reserved3 (GeeAbstractMap* self); static void gee_abstract_map_real_reserved3 (GeeAbstractMap* self); -G_GNUC_INTERNAL void gee_abstract_map_reserved4 (GeeAbstractMap* self); static void gee_abstract_map_real_reserved4 (GeeAbstractMap* self); -G_GNUC_INTERNAL void gee_abstract_map_reserved5 (GeeAbstractMap* self); static void gee_abstract_map_real_reserved5 (GeeAbstractMap* self); -G_GNUC_INTERNAL void gee_abstract_map_reserved6 (GeeAbstractMap* self); static void gee_abstract_map_real_reserved6 (GeeAbstractMap* self); -G_GNUC_INTERNAL void gee_abstract_map_reserved7 (GeeAbstractMap* self); static void gee_abstract_map_real_reserved7 (GeeAbstractMap* self); -G_GNUC_INTERNAL void gee_abstract_map_reserved8 (GeeAbstractMap* self); static void gee_abstract_map_real_reserved8 (GeeAbstractMap* self); -G_GNUC_INTERNAL void gee_abstract_map_reserved9 (GeeAbstractMap* self); static void gee_abstract_map_real_reserved9 (GeeAbstractMap* self); -GeeAbstractMap* gee_abstract_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func); -gint gee_abstract_map_get_size (GeeAbstractMap* self); -gboolean gee_abstract_map_get_read_only (GeeAbstractMap* self); -GeeSet* gee_abstract_map_get_keys (GeeAbstractMap* self); -GeeCollection* gee_abstract_map_get_values (GeeAbstractMap* self); -GeeSet* gee_abstract_map_get_entries (GeeAbstractMap* self); -GeeMap* gee_abstract_map_get_read_only_view (GeeAbstractMap* self); -G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_new (GType k_type, + G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map); -G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -468,12 +134,12 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map); -G_GNUC_INTERNAL GType gee_read_only_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMap, g_object_unref) + G_GNUC_INTERNAL GType gee_read_only_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GObject * gee_abstract_map_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static void gee_abstract_map_finalize (GObject * obj); +static GType gee_abstract_map_get_type_once (void); static void _vala_gee_abstract_map_get_property (GObject * object, guint property_id, GValue * value, @@ -505,8 +171,13 @@ gee_abstract_map_has_key (GeeAbstractMap* self, gconstpointer key) { + GeeAbstractMapClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ABSTRACT_MAP_GET_CLASS (self)->has_key (self, key); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->has_key) { + return _klass_->has_key (self, key); + } + return FALSE; } /** @@ -527,8 +198,13 @@ gconstpointer key, gconstpointer value) { + GeeAbstractMapClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ABSTRACT_MAP_GET_CLASS (self)->has (self, key, value); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->has) { + return _klass_->has (self, key, value); + } + return FALSE; } /** @@ -546,8 +222,13 @@ gee_abstract_map_get (GeeAbstractMap* self, gconstpointer key) { + GeeAbstractMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_MAP_GET_CLASS (self)->get (self, key); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->get) { + return _klass_->get (self, key); + } + return NULL; } /** @@ -567,8 +248,12 @@ gconstpointer key, gconstpointer value) { + GeeAbstractMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MAP_GET_CLASS (self)->set (self, key, value); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->set) { + _klass_->set (self, key, value); + } } /** @@ -589,8 +274,13 @@ gconstpointer key, gpointer* value) { + GeeAbstractMapClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ABSTRACT_MAP_GET_CLASS (self)->unset (self, key, value); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->unset) { + return _klass_->unset (self, key, value); + } + return FALSE; } /** @@ -606,8 +296,13 @@ GeeMapIterator* gee_abstract_map_map_iterator (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_MAP_GET_CLASS (self)->map_iterator (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->map_iterator) { + return _klass_->map_iterator (self); + } + return NULL; } /** @@ -623,8 +318,12 @@ void gee_abstract_map_clear (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MAP_GET_CLASS (self)->clear (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->clear) { + _klass_->clear (self); + } } /** @@ -676,8 +375,13 @@ GeeForallFunc f, gpointer f_target) { + GeeAbstractMapClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ABSTRACT_MAP_GET_CLASS (self)->foreach (self, f, f_target); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->foreach) { + return _klass_->foreach (self, f, f_target); + } + return FALSE; } /** @@ -728,8 +432,13 @@ gpointer f_target, GDestroyNotify f_target_destroy_notify) { + GeeAbstractMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_MAP_GET_CLASS (self)->stream (self, a_type, a_dup_func, a_destroy_func, f, f_target, f_target_destroy_notify); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->stream) { + return _klass_->stream (self, a_type, a_dup_func, a_destroy_func, f, f_target, f_target_destroy_notify); + } + return NULL; } static void @@ -740,8 +449,12 @@ void gee_abstract_map_reserved0 (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MAP_GET_CLASS (self)->reserved0 (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->reserved0) { + _klass_->reserved0 (self); + } } static void @@ -752,8 +465,12 @@ void gee_abstract_map_reserved1 (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MAP_GET_CLASS (self)->reserved1 (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->reserved1) { + _klass_->reserved1 (self); + } } static void @@ -764,8 +481,12 @@ void gee_abstract_map_reserved2 (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MAP_GET_CLASS (self)->reserved2 (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->reserved2) { + _klass_->reserved2 (self); + } } static void @@ -776,8 +497,12 @@ void gee_abstract_map_reserved3 (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MAP_GET_CLASS (self)->reserved3 (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->reserved3) { + _klass_->reserved3 (self); + } } static void @@ -788,8 +513,12 @@ void gee_abstract_map_reserved4 (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MAP_GET_CLASS (self)->reserved4 (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->reserved4) { + _klass_->reserved4 (self); + } } static void @@ -800,8 +529,12 @@ void gee_abstract_map_reserved5 (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MAP_GET_CLASS (self)->reserved5 (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->reserved5) { + _klass_->reserved5 (self); + } } static void @@ -812,8 +545,12 @@ void gee_abstract_map_reserved6 (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MAP_GET_CLASS (self)->reserved6 (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->reserved6) { + _klass_->reserved6 (self); + } } static void @@ -824,8 +561,12 @@ void gee_abstract_map_reserved7 (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MAP_GET_CLASS (self)->reserved7 (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->reserved7) { + _klass_->reserved7 (self); + } } static void @@ -836,8 +577,12 @@ void gee_abstract_map_reserved8 (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MAP_GET_CLASS (self)->reserved8 (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->reserved8) { + _klass_->reserved8 (self); + } } static void @@ -848,8 +593,12 @@ void gee_abstract_map_reserved9 (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MAP_GET_CLASS (self)->reserved9 (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->reserved9) { + _klass_->reserved9 (self); + } } GeeAbstractMap* @@ -875,43 +624,73 @@ gint gee_abstract_map_get_size (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_val_if_fail (self != NULL, 0); - return GEE_ABSTRACT_MAP_GET_CLASS (self)->get_size (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->get_size) { + return _klass_->get_size (self); + } + return -1; } gboolean gee_abstract_map_get_read_only (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ABSTRACT_MAP_GET_CLASS (self)->get_read_only (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->get_read_only) { + return _klass_->get_read_only (self); + } + return FALSE; } GeeSet* gee_abstract_map_get_keys (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_MAP_GET_CLASS (self)->get_keys (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->get_keys) { + return _klass_->get_keys (self); + } + return NULL; } GeeCollection* gee_abstract_map_get_values (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_MAP_GET_CLASS (self)->get_values (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->get_values) { + return _klass_->get_values (self); + } + return NULL; } GeeSet* gee_abstract_map_get_entries (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_MAP_GET_CLASS (self)->get_entries (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->get_entries) { + return _klass_->get_entries (self); + } + return NULL; } GeeMap* gee_abstract_map_get_read_only_view (GeeAbstractMap* self) { + GeeAbstractMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_MAP_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_ABSTRACT_MAP_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static GeeMap* @@ -1162,21 +941,29 @@ * @see HashMap * @see TreeMap */ +static GType +gee_abstract_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMap), 0, (GInstanceInitFunc) gee_abstract_map_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_abstract_map_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterable_info = { (GInterfaceInitFunc) gee_abstract_map_gee_iterable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_map_info = { (GInterfaceInitFunc) gee_abstract_map_gee_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_map_type_id; + gee_abstract_map_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeAbstractMap", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (gee_abstract_map_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_abstract_map_type_id, GEE_TYPE_ITERABLE, &gee_iterable_info); + g_type_add_interface_static (gee_abstract_map_type_id, GEE_TYPE_MAP, &gee_map_info); + GeeAbstractMap_private_offset = g_type_add_instance_private (gee_abstract_map_type_id, sizeof (GeeAbstractMapPrivate)); + return gee_abstract_map_type_id; +} + GType gee_abstract_map_get_type (void) { static volatile gsize gee_abstract_map_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMap), 0, (GInstanceInitFunc) gee_abstract_map_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_abstract_map_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterable_info = { (GInterfaceInitFunc) gee_abstract_map_gee_iterable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_map_info = { (GInterfaceInitFunc) gee_abstract_map_gee_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_map_type_id; - gee_abstract_map_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeAbstractMap", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - g_type_add_interface_static (gee_abstract_map_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_abstract_map_type_id, GEE_TYPE_ITERABLE, &gee_iterable_info); - g_type_add_interface_static (gee_abstract_map_type_id, GEE_TYPE_MAP, &gee_map_info); - GeeAbstractMap_private_offset = g_type_add_instance_private (gee_abstract_map_type_id, sizeof (GeeAbstractMapPrivate)); + gee_abstract_map_type_id = gee_abstract_map_get_type_once (); g_once_init_leave (&gee_abstract_map_type_id__volatile, gee_abstract_map_type_id); } return gee_abstract_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/abstractmultimap.c libgee-0.8-0.20.4/gee/abstractmultimap.c --- libgee-0.8-0.20.3/gee/abstractmultimap.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/abstractmultimap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* abstractmultimap.c generated by valac 0.46.6, the Vala compiler +/* abstractmultimap.c generated by valac 0.52.0, the Vala compiler * generated from abstractmultimap.vala, do not modify */ /* abstractmultimap.vala @@ -24,128 +24,10 @@ * Didier 'Ptitjes Villevalois */ -#include +#include "gee.h" #include +#include -#define GEE_TYPE_MULTI_MAP (gee_multi_map_get_type ()) -#define GEE_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMap)) -#define GEE_IS_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_MAP)) -#define GEE_MULTI_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMapIface)) - -typedef struct _GeeMultiMap GeeMultiMap; -typedef struct _GeeMultiMapIface GeeMultiMapIface; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_MULTI_SET (gee_multi_set_get_type ()) -#define GEE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_SET, GeeMultiSet)) -#define GEE_IS_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_SET)) -#define GEE_MULTI_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface)) - -typedef struct _GeeMultiSet GeeMultiSet; -typedef struct _GeeMultiSetIface GeeMultiSetIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_MULTI_MAP (gee_abstract_multi_map_get_type ()) -#define GEE_ABSTRACT_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMap)) -#define GEE_ABSTRACT_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMapClass)) -#define GEE_IS_ABSTRACT_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MULTI_MAP)) -#define GEE_IS_ABSTRACT_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MULTI_MAP)) -#define GEE_ABSTRACT_MULTI_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMapClass)) - -typedef struct _GeeAbstractMultiMap GeeAbstractMultiMap; -typedef struct _GeeAbstractMultiMapClass GeeAbstractMultiMapClass; -typedef struct _GeeAbstractMultiMapPrivate GeeAbstractMultiMapPrivate; -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; enum { GEE_ABSTRACT_MULTI_MAP_0_PROPERTY, GEE_ABSTRACT_MULTI_MAP_K_TYPE, @@ -161,16 +43,6 @@ static GParamSpec* gee_abstract_multi_map_properties[GEE_ABSTRACT_MULTI_MAP_NUM_PROPERTIES]; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - #define GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS (gee_abstract_multi_map_all_keys_get_type ()) #define GEE_ABSTRACT_MULTI_MAP_ALL_KEYS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS, GeeAbstractMultiMapAllKeys)) #define GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_ABSTRACT_MULTI_MAP_TYPE_ALL_KEYS, GeeAbstractMultiMapAllKeysClass)) @@ -220,7 +92,6 @@ typedef struct _GeeReadOnlyMultiMap GeeReadOnlyMultiMap; typedef struct _GeeReadOnlyMultiMapClass GeeReadOnlyMultiMapClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; typedef struct _GeeAbstractMultiMapAllKeysPrivate GeeAbstractMultiMapAllKeysPrivate; enum { GEE_ABSTRACT_MULTI_MAP_ALL_KEYS_0_PROPERTY, @@ -329,184 +200,6 @@ #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMultiSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeMultiSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeMultiSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeMultiSet* self); - gint (*count) (GeeMultiSet* self, gconstpointer item); - GeeMultiSet* (*get_read_only_view) (GeeMultiSet* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeMultiMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMultiMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMultiMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMultiMap* self); - GType (*get_v_type) (GeeMultiMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMultiMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMultiMap* self); - GeeSet* (*get_keys) (GeeMultiMap* self); - GeeMultiSet* (*get_all_keys) (GeeMultiMap* self); - GeeCollection* (*get_values) (GeeMultiMap* self); - gboolean (*contains) (GeeMultiMap* self, gconstpointer key); - GeeCollection* (*get) (GeeMultiMap* self, gconstpointer key); - void (*set) (GeeMultiMap* self, gconstpointer key, gconstpointer value); - gboolean (*remove) (GeeMultiMap* self, gconstpointer key, gconstpointer value); - gboolean (*remove_all) (GeeMultiMap* self, gconstpointer key); - void (*clear) (GeeMultiMap* self); - GeeMapIterator* (*map_iterator) (GeeMultiMap* self); - gint (*get_size) (GeeMultiMap* self); - gboolean (*get_read_only) (GeeMultiMap* self); - GeeMultiMap* (*get_read_only_view) (GeeMultiMap* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeAbstractMultiMap { - GObject parent_instance; - GeeAbstractMultiMapPrivate * priv; - GeeMap* _storage_map; -}; - -struct _GeeAbstractMultiMapClass { - GObjectClass parent_class; - GeeCollection* (*create_value_storage) (GeeAbstractMultiMap* self); - GeeMultiSet* (*create_multi_key_set) (GeeAbstractMultiMap* self); - GeeEqualDataFunc (*get_value_equal_func) (GeeAbstractMultiMap* self, gpointer* result_target, GDestroyNotify* result_target_destroy_notify); - void (*reserved0) (GeeAbstractMultiMap* self); - void (*reserved1) (GeeAbstractMultiMap* self); - void (*reserved2) (GeeAbstractMultiMap* self); - void (*reserved3) (GeeAbstractMultiMap* self); - void (*reserved4) (GeeAbstractMultiMap* self); - void (*reserved5) (GeeAbstractMultiMap* self); - void (*reserved6) (GeeAbstractMultiMap* self); - void (*reserved7) (GeeAbstractMultiMap* self); - void (*reserved8) (GeeAbstractMultiMap* self); - GeeMultiMap* (*get_read_only_view) (GeeAbstractMultiMap* self); -}; - struct _GeeAbstractMultiMapPrivate { GType k_type; GBoxedCopyFunc k_dup_func; @@ -518,34 +211,6 @@ GWeakRef _read_only_view; }; -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - struct _GeeAbstractMultiMapAllKeys { GeeAbstractCollection parent_instance; GeeAbstractMultiMapAllKeysPrivate * priv; @@ -707,44 +372,16 @@ static GeeMapIteratorIface * gee_abstract_multi_map_map_iterator_gee_map_iterator_parent_iface = NULL; static GeeMultiMapIface * gee_abstract_multi_map_gee_multi_map_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_multi_set_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_multi_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_multi_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiMap, g_object_unref) -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GeeAbstractMultiMap* gee_abstract_multi_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GeeMap* storage_map); + G_GNUC_INTERNAL void gee_abstract_multi_map_reserved0 (GeeAbstractMultiMap* self); + G_GNUC_INTERNAL void gee_abstract_multi_map_reserved1 (GeeAbstractMultiMap* self); + G_GNUC_INTERNAL void gee_abstract_multi_map_reserved2 (GeeAbstractMultiMap* self); + G_GNUC_INTERNAL void gee_abstract_multi_map_reserved3 (GeeAbstractMultiMap* self); + G_GNUC_INTERNAL void gee_abstract_multi_map_reserved4 (GeeAbstractMultiMap* self); + G_GNUC_INTERNAL void gee_abstract_multi_map_reserved5 (GeeAbstractMultiMap* self); + G_GNUC_INTERNAL void gee_abstract_multi_map_reserved6 (GeeAbstractMultiMap* self); + G_GNUC_INTERNAL void gee_abstract_multi_map_reserved7 (GeeAbstractMultiMap* self); + G_GNUC_INTERNAL void gee_abstract_multi_map_reserved8 (GeeAbstractMultiMap* self); static GeeSet* gee_abstract_multi_map_real_get_keys (GeeMultiMap* base); -GeeSet* gee_map_get_keys (GeeMap* self); static GeeMultiSet* gee_abstract_multi_map_real_get_all_keys (GeeMultiMap* base); static GeeAbstractMultiMapAllKeys* gee_abstract_multi_map_all_keys_new (GType k_type, GBoxedCopyFunc k_dup_func, @@ -761,10 +398,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeAbstractMultiMap* multi_map); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -static GType gee_abstract_multi_map_all_keys_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiMapAllKeys, g_object_unref) +static GType gee_abstract_multi_map_all_keys_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeCollection* gee_abstract_multi_map_real_get_values (GeeMultiMap* base); static GeeAbstractMultiMapValues* gee_abstract_multi_map_values_new (GType k_type, GBoxedCopyFunc k_dup_func, @@ -781,46 +415,21 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeAbstractMultiMap* multi_map); -static GType gee_abstract_multi_map_values_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiMapValues, g_object_unref) +static GType gee_abstract_multi_map_values_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_abstract_multi_map_real_contains (GeeMultiMap* base, gconstpointer key); -gboolean gee_map_has_key (GeeMap* self, - gconstpointer key); static GeeCollection* gee_abstract_multi_map_real_get (GeeMultiMap* base, gconstpointer key); -gpointer gee_map_get (GeeMap* self, - gconstpointer key); -GeeCollection* gee_collection_get_read_only_view (GeeCollection* self); -GeeSet* gee_set_empty (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); static void gee_abstract_multi_map_real_set (GeeMultiMap* base, gconstpointer key, gconstpointer value); -gboolean gee_collection_add (GeeCollection* self, - gconstpointer item); -GeeCollection* gee_abstract_multi_map_create_value_storage (GeeAbstractMultiMap* self); -void gee_map_set (GeeMap* self, - gconstpointer key, - gconstpointer value); static gboolean gee_abstract_multi_map_real_remove (GeeMultiMap* base, gconstpointer key, gconstpointer value); -gboolean gee_collection_contains (GeeCollection* self, - gconstpointer item); -gboolean gee_collection_remove (GeeCollection* self, - gconstpointer item); -gint gee_collection_get_size (GeeCollection* self); -gboolean gee_map_unset (GeeMap* self, - gconstpointer key, - gpointer* value); static gboolean gee_abstract_multi_map_real_remove_all (GeeMultiMap* base, gconstpointer key); static void gee_abstract_multi_map_real_clear (GeeMultiMap* base); -void gee_map_clear (GeeMap* self); static GeeMapIterator* gee_abstract_multi_map_real_map_iterator (GeeMultiMap* base); -GeeMapIterator* gee_map_map_iterator (GeeMap* self); static GeeAbstractMultiMapMapIterator* gee_abstract_multi_map_map_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -836,46 +445,30 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* outer); -static GType gee_abstract_multi_map_mapping_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiMapMappingIterator, g_object_unref) -static GType gee_abstract_multi_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiMapMapIterator, g_object_unref) +static GType gee_abstract_multi_map_mapping_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +static GType gee_abstract_multi_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeCollection* gee_abstract_multi_map_real_create_value_storage (GeeAbstractMultiMap* self); -GeeMultiSet* gee_abstract_multi_map_create_multi_key_set (GeeAbstractMultiMap* self); static GeeMultiSet* gee_abstract_multi_map_real_create_multi_key_set (GeeAbstractMultiMap* self); -GeeEqualDataFunc gee_abstract_multi_map_get_value_equal_func (GeeAbstractMultiMap* self, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); static GeeEqualDataFunc gee_abstract_multi_map_real_get_value_equal_func (GeeAbstractMultiMap* self, gpointer* result_target, GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL void gee_abstract_multi_map_reserved0 (GeeAbstractMultiMap* self); static void gee_abstract_multi_map_real_reserved0 (GeeAbstractMultiMap* self); -G_GNUC_INTERNAL void gee_abstract_multi_map_reserved1 (GeeAbstractMultiMap* self); static void gee_abstract_multi_map_real_reserved1 (GeeAbstractMultiMap* self); -G_GNUC_INTERNAL void gee_abstract_multi_map_reserved2 (GeeAbstractMultiMap* self); static void gee_abstract_multi_map_real_reserved2 (GeeAbstractMultiMap* self); -G_GNUC_INTERNAL void gee_abstract_multi_map_reserved3 (GeeAbstractMultiMap* self); static void gee_abstract_multi_map_real_reserved3 (GeeAbstractMultiMap* self); -G_GNUC_INTERNAL void gee_abstract_multi_map_reserved4 (GeeAbstractMultiMap* self); static void gee_abstract_multi_map_real_reserved4 (GeeAbstractMultiMap* self); -G_GNUC_INTERNAL void gee_abstract_multi_map_reserved5 (GeeAbstractMultiMap* self); static void gee_abstract_multi_map_real_reserved5 (GeeAbstractMultiMap* self); -G_GNUC_INTERNAL void gee_abstract_multi_map_reserved6 (GeeAbstractMultiMap* self); static void gee_abstract_multi_map_real_reserved6 (GeeAbstractMultiMap* self); -G_GNUC_INTERNAL void gee_abstract_multi_map_reserved7 (GeeAbstractMultiMap* self); static void gee_abstract_multi_map_real_reserved7 (GeeAbstractMultiMap* self); -G_GNUC_INTERNAL void gee_abstract_multi_map_reserved8 (GeeAbstractMultiMap* self); static void gee_abstract_multi_map_real_reserved8 (GeeAbstractMultiMap* self); -GeeMultiMap* gee_abstract_multi_map_get_read_only_view (GeeAbstractMultiMap* self); -G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_new (GType k_type, + G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMultiMap* multimap); -G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -883,15 +476,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMultiMap* multimap); -G_GNUC_INTERNAL GType gee_read_only_multi_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMultiMap, g_object_unref) -static GObject * gee_abstract_multi_map_constructor (GType type, - guint n_construct_properties, - GObjectConstructParam * construct_properties); -GeeAbstractCollection* gee_abstract_collection_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); + G_GNUC_INTERNAL GType gee_read_only_multi_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeIterator* gee_abstract_multi_map_all_keys_real_iterator (GeeAbstractCollection* base); static GeeAbstractMultiMapKeyIterator* gee_abstract_multi_map_key_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, @@ -908,8 +493,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* outer); -static GType gee_abstract_multi_map_key_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiMapKeyIterator, g_object_unref) +static GType gee_abstract_multi_map_key_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_abstract_multi_map_all_keys_real_contains (GeeAbstractCollection* base, gconstpointer key); static gboolean gee_abstract_multi_map_all_keys_real_add (GeeAbstractCollection* base, @@ -919,10 +503,8 @@ static void gee_abstract_multi_map_all_keys_real_clear (GeeAbstractCollection* base); static gint gee_abstract_multi_map_all_keys_real_count (GeeMultiSet* base, gconstpointer item); -gint gee_multi_map_get_size (GeeMultiMap* self); static void gee_abstract_multi_map_all_keys_finalize (GObject * obj); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); +static GType gee_abstract_multi_map_all_keys_get_type_once (void); static void _vala_gee_abstract_multi_map_all_keys_get_property (GObject * object, guint property_id, GValue * value, @@ -947,20 +529,16 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* outer); -static GType gee_abstract_multi_map_value_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiMapValueIterator, g_object_unref) +static GType gee_abstract_multi_map_value_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_abstract_multi_map_values_real_contains (GeeAbstractCollection* base, gconstpointer value); -GeeCollection* gee_map_get_values (GeeMap* self); -GeeIterator* gee_iterable_iterator (GeeIterable* self); -gboolean gee_iterator_next (GeeIterator* self); -gpointer gee_iterator_get (GeeIterator* self); static gboolean gee_abstract_multi_map_values_real_add (GeeAbstractCollection* base, gconstpointer value); static gboolean gee_abstract_multi_map_values_real_remove (GeeAbstractCollection* base, gconstpointer value); static void gee_abstract_multi_map_values_real_clear (GeeAbstractCollection* base); static void gee_abstract_multi_map_values_finalize (GObject * obj); +static GType gee_abstract_multi_map_values_get_type_once (void); static void _vala_gee_abstract_multi_map_values_get_property (GObject * object, guint property_id, GValue * value, @@ -969,6 +547,7 @@ guint property_id, const GValue * value, GParamSpec * pspec); +static gboolean gee_abstract_multi_map_mapping_iterator_get_read_only (GeeAbstractMultiMapMappingIterator* self); static GeeAbstractMultiMapMappingIterator* gee_abstract_multi_map_mapping_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -985,20 +564,12 @@ GDestroyNotify v_destroy_func, GeeMapIterator* outer); static gboolean gee_abstract_multi_map_mapping_iterator_next (GeeAbstractMultiMapMappingIterator* self); -gboolean gee_map_iterator_next (GeeMapIterator* self); -gpointer gee_map_iterator_get_value (GeeMapIterator* self); static gboolean gee_abstract_multi_map_mapping_iterator_has_next (GeeAbstractMultiMapMappingIterator* self); -gboolean gee_iterator_has_next (GeeIterator* self); -gboolean gee_map_iterator_has_next (GeeMapIterator* self); static void gee_abstract_multi_map_mapping_iterator_remove (GeeAbstractMultiMapMappingIterator* self); static void gee_abstract_multi_map_mapping_iterator_unset (GeeAbstractMultiMapMappingIterator* self); -void gee_iterator_remove (GeeIterator* self); -gboolean gee_collection_get_is_empty (GeeCollection* self); -void gee_map_iterator_unset (GeeMapIterator* self); -static gboolean gee_abstract_multi_map_mapping_iterator_get_read_only (GeeAbstractMultiMapMappingIterator* self); static gboolean gee_abstract_multi_map_mapping_iterator_get_valid (GeeAbstractMultiMapMappingIterator* self); -gboolean gee_iterator_get_valid (GeeIterator* self); static void gee_abstract_multi_map_mapping_iterator_finalize (GObject * obj); +static GType gee_abstract_multi_map_mapping_iterator_get_type_once (void); static void _vala_gee_abstract_multi_map_mapping_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -1008,25 +579,17 @@ const GValue * value, GParamSpec * pspec); static gpointer gee_abstract_multi_map_key_iterator_real_get (GeeIterator* base); -gpointer gee_map_iterator_get_key (GeeMapIterator* self); static gboolean gee_abstract_multi_map_key_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, gpointer f_target); static Block1Data* block1_data_ref (Block1Data* _data1_); static void block1_data_unref (void * _userdata_); -gboolean gee_map_iterator_get_valid (GeeMapIterator* self); static Block2Data* block2_data_ref (Block2Data* _data2_); static void block2_data_unref (void * _userdata_); -gboolean gee_traversable_foreach (GeeTraversable* self, - GeeForallFunc f, - gpointer f_target); static gboolean ___lambda50_ (Block2Data* _data2_, gpointer v); static gboolean ____lambda50__gee_forall_func (gpointer g, gpointer self); -gboolean gee_map_iterator_foreach (GeeMapIterator* self, - GeeForallMapFunc f, - gpointer f_target); static gboolean __lambda51_ (Block1Data* _data1_, gconstpointer key, GeeCollection* col); @@ -1039,6 +602,7 @@ static gboolean ___lambda51__gee_forall_map_func (gconstpointer k, gconstpointer v, gpointer self); +static GType gee_abstract_multi_map_key_iterator_get_type_once (void); static void _vala_gee_abstract_multi_map_key_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -1059,6 +623,7 @@ static gboolean ___lambda53__gee_forall_map_func (gconstpointer k, gconstpointer v, gpointer self); +static GType gee_abstract_multi_map_value_iterator_get_type_once (void); static void _vala_gee_abstract_multi_map_value_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -1071,7 +636,7 @@ static gpointer gee_abstract_multi_map_map_iterator_real_get_value (GeeMapIterator* base); static void gee_abstract_multi_map_map_iterator_real_set_value (GeeMapIterator* base, gconstpointer value); -gboolean gee_map_iterator_get_mutable (GeeMapIterator* self); +static GType gee_abstract_multi_map_map_iterator_get_type_once (void); static void _vala_gee_abstract_multi_map_map_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -1080,8 +645,11 @@ guint property_id, const GValue * value, GParamSpec * pspec); +static GObject * gee_abstract_multi_map_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam * construct_properties); static void gee_abstract_multi_map_finalize (GObject * obj); -gboolean gee_multi_map_get_read_only (GeeMultiMap* self); +static GType gee_abstract_multi_map_get_type_once (void); static void _vala_gee_abstract_multi_map_get_property (GObject * object, guint property_id, GValue * value, @@ -1388,8 +956,13 @@ GeeCollection* gee_abstract_multi_map_create_value_storage (GeeAbstractMultiMap* self) { + GeeAbstractMultiMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->create_value_storage (self); + _klass_ = GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self); + if (_klass_->create_value_storage) { + return _klass_->create_value_storage (self); + } + return NULL; } static GeeMultiSet* @@ -1402,8 +975,13 @@ GeeMultiSet* gee_abstract_multi_map_create_multi_key_set (GeeAbstractMultiMap* self) { + GeeAbstractMultiMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->create_multi_key_set (self); + _klass_ = GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self); + if (_klass_->create_multi_key_set) { + return _klass_->create_multi_key_set (self); + } + return NULL; } static GeeEqualDataFunc @@ -1420,8 +998,13 @@ gpointer* result_target, GDestroyNotify* result_target_destroy_notify) { + GeeAbstractMultiMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->get_value_equal_func (self, result_target, result_target_destroy_notify); + _klass_ = GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self); + if (_klass_->get_value_equal_func) { + return _klass_->get_value_equal_func (self, result_target, result_target_destroy_notify); + } + return NULL; } static void @@ -1432,8 +1015,12 @@ void gee_abstract_multi_map_reserved0 (GeeAbstractMultiMap* self) { + GeeAbstractMultiMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved0 (self); + _klass_ = GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self); + if (_klass_->reserved0) { + _klass_->reserved0 (self); + } } static void @@ -1444,8 +1031,12 @@ void gee_abstract_multi_map_reserved1 (GeeAbstractMultiMap* self) { + GeeAbstractMultiMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved1 (self); + _klass_ = GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self); + if (_klass_->reserved1) { + _klass_->reserved1 (self); + } } static void @@ -1456,8 +1047,12 @@ void gee_abstract_multi_map_reserved2 (GeeAbstractMultiMap* self) { + GeeAbstractMultiMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved2 (self); + _klass_ = GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self); + if (_klass_->reserved2) { + _klass_->reserved2 (self); + } } static void @@ -1468,8 +1063,12 @@ void gee_abstract_multi_map_reserved3 (GeeAbstractMultiMap* self) { + GeeAbstractMultiMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved3 (self); + _klass_ = GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self); + if (_klass_->reserved3) { + _klass_->reserved3 (self); + } } static void @@ -1480,8 +1079,12 @@ void gee_abstract_multi_map_reserved4 (GeeAbstractMultiMap* self) { + GeeAbstractMultiMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved4 (self); + _klass_ = GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self); + if (_klass_->reserved4) { + _klass_->reserved4 (self); + } } static void @@ -1492,8 +1095,12 @@ void gee_abstract_multi_map_reserved5 (GeeAbstractMultiMap* self) { + GeeAbstractMultiMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved5 (self); + _klass_ = GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self); + if (_klass_->reserved5) { + _klass_->reserved5 (self); + } } static void @@ -1504,8 +1111,12 @@ void gee_abstract_multi_map_reserved6 (GeeAbstractMultiMap* self) { + GeeAbstractMultiMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved6 (self); + _klass_ = GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self); + if (_klass_->reserved6) { + _klass_->reserved6 (self); + } } static void @@ -1516,8 +1127,12 @@ void gee_abstract_multi_map_reserved7 (GeeAbstractMultiMap* self) { + GeeAbstractMultiMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved7 (self); + _klass_ = GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self); + if (_klass_->reserved7) { + _klass_->reserved7 (self); + } } static void @@ -1528,8 +1143,12 @@ void gee_abstract_multi_map_reserved8 (GeeAbstractMultiMap* self) { + GeeAbstractMultiMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->reserved8 (self); + _klass_ = GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self); + if (_klass_->reserved8) { + _klass_->reserved8 (self); + } } static gint @@ -1555,8 +1174,13 @@ GeeMultiMap* gee_abstract_multi_map_get_read_only_view (GeeAbstractMultiMap* self) { + GeeAbstractMultiMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_ABSTRACT_MULTI_MAP_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static GeeMultiMap* @@ -1584,22 +1208,6 @@ return result; } -static GObject * -gee_abstract_multi_map_constructor (GType type, - guint n_construct_properties, - GObjectConstructParam * construct_properties) -{ - GObject * obj; - GObjectClass * parent_class; - GeeAbstractMultiMap * self; - parent_class = G_OBJECT_CLASS (gee_abstract_multi_map_parent_class); - obj = parent_class->constructor (type, n_construct_properties, construct_properties); - self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMap); - g_weak_ref_clear (&self->priv->_read_only_view); - g_weak_ref_init (&self->priv->_read_only_view, NULL); - return obj; -} - static inline gpointer gee_abstract_multi_map_all_keys_get_instance_private (GeeAbstractMultiMapAllKeys* self) { @@ -1840,16 +1448,24 @@ } static GType +gee_abstract_multi_map_all_keys_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapAllKeysClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_all_keys_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapAllKeys), 0, (GInstanceInitFunc) gee_abstract_multi_map_all_keys_instance_init, NULL }; + static const GInterfaceInfo gee_multi_set_info = { (GInterfaceInitFunc) gee_abstract_multi_map_all_keys_gee_multi_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_multi_map_all_keys_type_id; + gee_abstract_multi_map_all_keys_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractMultiMapAllKeys", &g_define_type_info, 0); + g_type_add_interface_static (gee_abstract_multi_map_all_keys_type_id, GEE_TYPE_MULTI_SET, &gee_multi_set_info); + GeeAbstractMultiMapAllKeys_private_offset = g_type_add_instance_private (gee_abstract_multi_map_all_keys_type_id, sizeof (GeeAbstractMultiMapAllKeysPrivate)); + return gee_abstract_multi_map_all_keys_type_id; +} + +static GType gee_abstract_multi_map_all_keys_get_type (void) { static volatile gsize gee_abstract_multi_map_all_keys_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_multi_map_all_keys_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapAllKeysClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_all_keys_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapAllKeys), 0, (GInstanceInitFunc) gee_abstract_multi_map_all_keys_instance_init, NULL }; - static const GInterfaceInfo gee_multi_set_info = { (GInterfaceInitFunc) gee_abstract_multi_map_all_keys_gee_multi_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_multi_map_all_keys_type_id; - gee_abstract_multi_map_all_keys_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractMultiMapAllKeys", &g_define_type_info, 0); - g_type_add_interface_static (gee_abstract_multi_map_all_keys_type_id, GEE_TYPE_MULTI_SET, &gee_multi_set_info); - GeeAbstractMultiMapAllKeys_private_offset = g_type_add_instance_private (gee_abstract_multi_map_all_keys_type_id, sizeof (GeeAbstractMultiMapAllKeysPrivate)); + gee_abstract_multi_map_all_keys_type_id = gee_abstract_multi_map_all_keys_get_type_once (); g_once_init_leave (&gee_abstract_multi_map_all_keys_type_id__volatile, gee_abstract_multi_map_all_keys_type_id); } return gee_abstract_multi_map_all_keys_type_id__volatile; @@ -2142,14 +1758,22 @@ } static GType +gee_abstract_multi_map_values_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapValuesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_values_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapValues), 0, (GInstanceInitFunc) gee_abstract_multi_map_values_instance_init, NULL }; + GType gee_abstract_multi_map_values_type_id; + gee_abstract_multi_map_values_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractMultiMapValues", &g_define_type_info, 0); + GeeAbstractMultiMapValues_private_offset = g_type_add_instance_private (gee_abstract_multi_map_values_type_id, sizeof (GeeAbstractMultiMapValuesPrivate)); + return gee_abstract_multi_map_values_type_id; +} + +static GType gee_abstract_multi_map_values_get_type (void) { static volatile gsize gee_abstract_multi_map_values_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_multi_map_values_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapValuesClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_values_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapValues), 0, (GInstanceInitFunc) gee_abstract_multi_map_values_instance_init, NULL }; GType gee_abstract_multi_map_values_type_id; - gee_abstract_multi_map_values_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractMultiMapValues", &g_define_type_info, 0); - GeeAbstractMultiMapValues_private_offset = g_type_add_instance_private (gee_abstract_multi_map_values_type_id, sizeof (GeeAbstractMultiMapValuesPrivate)); + gee_abstract_multi_map_values_type_id = gee_abstract_multi_map_values_get_type_once (); g_once_init_leave (&gee_abstract_multi_map_values_type_id__volatile, gee_abstract_multi_map_values_type_id); } return gee_abstract_multi_map_values_type_id__volatile; @@ -2371,8 +1995,13 @@ static gboolean gee_abstract_multi_map_mapping_iterator_get_read_only (GeeAbstractMultiMapMappingIterator* self) { + GeeAbstractMultiMapMappingIteratorClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_GET_CLASS (self)->get_read_only (self); + _klass_ = GEE_ABSTRACT_MULTI_MAP_MAPPING_ITERATOR_GET_CLASS (self); + if (_klass_->get_read_only) { + return _klass_->get_read_only (self); + } + return FALSE; } static gboolean @@ -2447,14 +2076,22 @@ } static GType +gee_abstract_multi_map_mapping_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapMappingIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_mapping_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapMappingIterator), 0, (GInstanceInitFunc) gee_abstract_multi_map_mapping_iterator_instance_init, NULL }; + GType gee_abstract_multi_map_mapping_iterator_type_id; + gee_abstract_multi_map_mapping_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeAbstractMultiMapMappingIterator", &g_define_type_info, 0); + GeeAbstractMultiMapMappingIterator_private_offset = g_type_add_instance_private (gee_abstract_multi_map_mapping_iterator_type_id, sizeof (GeeAbstractMultiMapMappingIteratorPrivate)); + return gee_abstract_multi_map_mapping_iterator_type_id; +} + +static GType gee_abstract_multi_map_mapping_iterator_get_type (void) { static volatile gsize gee_abstract_multi_map_mapping_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_multi_map_mapping_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapMappingIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_mapping_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapMappingIterator), 0, (GInstanceInitFunc) gee_abstract_multi_map_mapping_iterator_instance_init, NULL }; GType gee_abstract_multi_map_mapping_iterator_type_id; - gee_abstract_multi_map_mapping_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeAbstractMultiMapMappingIterator", &g_define_type_info, 0); - GeeAbstractMultiMapMappingIterator_private_offset = g_type_add_instance_private (gee_abstract_multi_map_mapping_iterator_type_id, sizeof (GeeAbstractMultiMapMappingIteratorPrivate)); + gee_abstract_multi_map_mapping_iterator_type_id = gee_abstract_multi_map_mapping_iterator_get_type_once (); g_once_init_leave (&gee_abstract_multi_map_mapping_iterator_type_id__volatile, gee_abstract_multi_map_mapping_iterator_type_id); } return gee_abstract_multi_map_mapping_iterator_type_id__volatile; @@ -2867,18 +2504,26 @@ } static GType +gee_abstract_multi_map_key_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapKeyIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_key_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapKeyIterator), 0, (GInstanceInitFunc) gee_abstract_multi_map_key_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_abstract_multi_map_key_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_abstract_multi_map_key_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_multi_map_key_iterator_type_id; + gee_abstract_multi_map_key_iterator_type_id = g_type_register_static (GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, "GeeAbstractMultiMapKeyIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_abstract_multi_map_key_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_abstract_multi_map_key_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeAbstractMultiMapKeyIterator_private_offset = g_type_add_instance_private (gee_abstract_multi_map_key_iterator_type_id, sizeof (GeeAbstractMultiMapKeyIteratorPrivate)); + return gee_abstract_multi_map_key_iterator_type_id; +} + +static GType gee_abstract_multi_map_key_iterator_get_type (void) { static volatile gsize gee_abstract_multi_map_key_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_multi_map_key_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapKeyIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_key_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapKeyIterator), 0, (GInstanceInitFunc) gee_abstract_multi_map_key_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_abstract_multi_map_key_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_abstract_multi_map_key_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_multi_map_key_iterator_type_id; - gee_abstract_multi_map_key_iterator_type_id = g_type_register_static (GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, "GeeAbstractMultiMapKeyIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_abstract_multi_map_key_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_abstract_multi_map_key_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeAbstractMultiMapKeyIterator_private_offset = g_type_add_instance_private (gee_abstract_multi_map_key_iterator_type_id, sizeof (GeeAbstractMultiMapKeyIteratorPrivate)); + gee_abstract_multi_map_key_iterator_type_id = gee_abstract_multi_map_key_iterator_get_type_once (); g_once_init_leave (&gee_abstract_multi_map_key_iterator_type_id__volatile, gee_abstract_multi_map_key_iterator_type_id); } return gee_abstract_multi_map_key_iterator_type_id__volatile; @@ -3166,18 +2811,26 @@ } static GType +gee_abstract_multi_map_value_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapValueIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_value_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapValueIterator), 0, (GInstanceInitFunc) gee_abstract_multi_map_value_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_abstract_multi_map_value_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_abstract_multi_map_value_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_multi_map_value_iterator_type_id; + gee_abstract_multi_map_value_iterator_type_id = g_type_register_static (GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, "GeeAbstractMultiMapValueIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_abstract_multi_map_value_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_abstract_multi_map_value_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeAbstractMultiMapValueIterator_private_offset = g_type_add_instance_private (gee_abstract_multi_map_value_iterator_type_id, sizeof (GeeAbstractMultiMapValueIteratorPrivate)); + return gee_abstract_multi_map_value_iterator_type_id; +} + +static GType gee_abstract_multi_map_value_iterator_get_type (void) { static volatile gsize gee_abstract_multi_map_value_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_multi_map_value_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapValueIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_value_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapValueIterator), 0, (GInstanceInitFunc) gee_abstract_multi_map_value_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_abstract_multi_map_value_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_abstract_multi_map_value_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_multi_map_value_iterator_type_id; - gee_abstract_multi_map_value_iterator_type_id = g_type_register_static (GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, "GeeAbstractMultiMapValueIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_abstract_multi_map_value_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_abstract_multi_map_value_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeAbstractMultiMapValueIterator_private_offset = g_type_add_instance_private (gee_abstract_multi_map_value_iterator_type_id, sizeof (GeeAbstractMultiMapValueIteratorPrivate)); + gee_abstract_multi_map_value_iterator_type_id = gee_abstract_multi_map_value_iterator_get_type_once (); g_once_init_leave (&gee_abstract_multi_map_value_iterator_type_id__volatile, gee_abstract_multi_map_value_iterator_type_id); } return gee_abstract_multi_map_value_iterator_type_id__volatile; @@ -3413,8 +3066,8 @@ iface->get_v_dup_func = (GBoxedCopyFunc (*) (GeeMapIterator *)) gee_abstract_multi_map_map_iterator_gee_map_iterator_get_v_dup_func; iface->get_v_destroy_func = (GDestroyNotify (*) (GeeMapIterator *)) gee_abstract_multi_map_map_iterator_gee_map_iterator_get_v_destroy_func; iface->next = (gboolean (*) (GeeMapIterator*)) gee_abstract_multi_map_mapping_iterator_next; - iface->unset = (void (*) (GeeMapIterator*)) gee_abstract_multi_map_mapping_iterator_unset; iface->has_next = (gboolean (*) (GeeMapIterator*)) gee_abstract_multi_map_mapping_iterator_has_next; + iface->unset = (void (*) (GeeMapIterator*)) gee_abstract_multi_map_mapping_iterator_unset; iface->get_mutable = gee_abstract_multi_map_map_iterator_real_get_mutable; iface->get_valid = (gboolean (*) (GeeMapIterator *)) gee_abstract_multi_map_mapping_iterator_get_valid; iface->get_read_only = (gboolean (*) (GeeMapIterator *)) gee_abstract_multi_map_mapping_iterator_get_read_only; @@ -3428,16 +3081,24 @@ } static GType +gee_abstract_multi_map_map_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapMapIterator), 0, (GInstanceInitFunc) gee_abstract_multi_map_map_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_abstract_multi_map_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_multi_map_map_iterator_type_id; + gee_abstract_multi_map_map_iterator_type_id = g_type_register_static (GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, "GeeAbstractMultiMapMapIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_abstract_multi_map_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info); + GeeAbstractMultiMapMapIterator_private_offset = g_type_add_instance_private (gee_abstract_multi_map_map_iterator_type_id, sizeof (GeeAbstractMultiMapMapIteratorPrivate)); + return gee_abstract_multi_map_map_iterator_type_id; +} + +static GType gee_abstract_multi_map_map_iterator_get_type (void) { static volatile gsize gee_abstract_multi_map_map_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_multi_map_map_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMapMapIterator), 0, (GInstanceInitFunc) gee_abstract_multi_map_map_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_abstract_multi_map_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_multi_map_map_iterator_type_id; - gee_abstract_multi_map_map_iterator_type_id = g_type_register_static (GEE_ABSTRACT_MULTI_MAP_TYPE_MAPPING_ITERATOR, "GeeAbstractMultiMapMapIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_abstract_multi_map_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info); - GeeAbstractMultiMapMapIterator_private_offset = g_type_add_instance_private (gee_abstract_multi_map_map_iterator_type_id, sizeof (GeeAbstractMultiMapMapIteratorPrivate)); + gee_abstract_multi_map_map_iterator_type_id = gee_abstract_multi_map_map_iterator_get_type_once (); g_once_init_leave (&gee_abstract_multi_map_map_iterator_type_id__volatile, gee_abstract_multi_map_map_iterator_type_id); } return gee_abstract_multi_map_map_iterator_type_id__volatile; @@ -3512,6 +3173,22 @@ } } +static GObject * +gee_abstract_multi_map_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam * construct_properties) +{ + GObject * obj; + GObjectClass * parent_class; + GeeAbstractMultiMap * self; + parent_class = G_OBJECT_CLASS (gee_abstract_multi_map_parent_class); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMap); + g_weak_ref_clear (&self->priv->_read_only_view); + g_weak_ref_init (&self->priv->_read_only_view, NULL); + return obj; +} + static void gee_abstract_multi_map_class_init (GeeAbstractMultiMapClass * klass, gpointer klass_data) @@ -3631,17 +3308,25 @@ * @see HashMultiMap * @see TreeMultiMap */ +static GType +gee_abstract_multi_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMap), 0, (GInstanceInitFunc) gee_abstract_multi_map_instance_init, NULL }; + static const GInterfaceInfo gee_multi_map_info = { (GInterfaceInitFunc) gee_abstract_multi_map_gee_multi_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_multi_map_type_id; + gee_abstract_multi_map_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeAbstractMultiMap", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (gee_abstract_multi_map_type_id, GEE_TYPE_MULTI_MAP, &gee_multi_map_info); + GeeAbstractMultiMap_private_offset = g_type_add_instance_private (gee_abstract_multi_map_type_id, sizeof (GeeAbstractMultiMapPrivate)); + return gee_abstract_multi_map_type_id; +} + GType gee_abstract_multi_map_get_type (void) { static volatile gsize gee_abstract_multi_map_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_multi_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiMap), 0, (GInstanceInitFunc) gee_abstract_multi_map_instance_init, NULL }; - static const GInterfaceInfo gee_multi_map_info = { (GInterfaceInitFunc) gee_abstract_multi_map_gee_multi_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_multi_map_type_id; - gee_abstract_multi_map_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeAbstractMultiMap", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - g_type_add_interface_static (gee_abstract_multi_map_type_id, GEE_TYPE_MULTI_MAP, &gee_multi_map_info); - GeeAbstractMultiMap_private_offset = g_type_add_instance_private (gee_abstract_multi_map_type_id, sizeof (GeeAbstractMultiMapPrivate)); + gee_abstract_multi_map_type_id = gee_abstract_multi_map_get_type_once (); g_once_init_leave (&gee_abstract_multi_map_type_id__volatile, gee_abstract_multi_map_type_id); } return gee_abstract_multi_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/abstractmultiset.c libgee-0.8-0.20.4/gee/abstractmultiset.c --- libgee-0.8-0.20.3/gee/abstractmultiset.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/abstractmultiset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* abstractmultiset.c generated by valac 0.46.6, the Vala compiler +/* abstractmultiset.c generated by valac 0.52.0, the Vala compiler * generated from abstractmultiset.vala, do not modify */ /* abstractmultiset.vala @@ -24,130 +24,10 @@ * Didier 'Ptitjes Villevalois */ -#include +#include "gee.h" #include +#include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_MULTI_SET (gee_multi_set_get_type ()) -#define GEE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_SET, GeeMultiSet)) -#define GEE_IS_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_SET)) -#define GEE_MULTI_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface)) - -typedef struct _GeeMultiSet GeeMultiSet; -typedef struct _GeeMultiSetIface GeeMultiSetIface; - -#define GEE_TYPE_ABSTRACT_MULTI_SET (gee_abstract_multi_set_get_type ()) -#define GEE_ABSTRACT_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSet)) -#define GEE_ABSTRACT_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSetClass)) -#define GEE_IS_ABSTRACT_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MULTI_SET)) -#define GEE_IS_ABSTRACT_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MULTI_SET)) -#define GEE_ABSTRACT_MULTI_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSetClass)) - -typedef struct _GeeAbstractMultiSet GeeAbstractMultiSet; -typedef struct _GeeAbstractMultiSetClass GeeAbstractMultiSetClass; -typedef struct _GeeAbstractMultiSetPrivate GeeAbstractMultiSetPrivate; - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; enum { GEE_ABSTRACT_MULTI_SET_0_PROPERTY, GEE_ABSTRACT_MULTI_SET_G_TYPE, @@ -205,186 +85,6 @@ #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeMultiSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeMultiSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeMultiSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeMultiSet* self); - gint (*count) (GeeMultiSet* self, gconstpointer item); - GeeMultiSet* (*get_read_only_view) (GeeMultiSet* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeAbstractMultiSet { - GeeAbstractCollection parent_instance; - GeeAbstractMultiSetPrivate * priv; - GeeMap* _storage_map; -}; - -struct _GeeAbstractMultiSetClass { - GeeAbstractCollectionClass parent_class; - void (*reserved0) (GeeAbstractMultiSet* self); - void (*reserved1) (GeeAbstractMultiSet* self); - void (*reserved2) (GeeAbstractMultiSet* self); - void (*reserved3) (GeeAbstractMultiSet* self); - void (*reserved4) (GeeAbstractMultiSet* self); - void (*reserved5) (GeeAbstractMultiSet* self); - void (*reserved6) (GeeAbstractMultiSet* self); - void (*reserved7) (GeeAbstractMultiSet* self); - void (*reserved8) (GeeAbstractMultiSet* self); - GeeMultiSet* (*get_read_only_view) (GeeAbstractMultiSet* self); -}; - struct _GeeAbstractMultiSetPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -420,50 +120,17 @@ static GeeIteratorIface * gee_abstract_multi_set_iterator_gee_iterator_parent_iface = NULL; static GeeMultiSetIface * gee_abstract_multi_set_gee_multi_set_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_multi_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_multi_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiSet, g_object_unref) -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GeeAbstractMultiSet* gee_abstract_multi_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeMap* storage_map); -GeeAbstractCollection* gee_abstract_collection_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); + G_GNUC_INTERNAL void gee_abstract_multi_set_reserved0 (GeeAbstractMultiSet* self); + G_GNUC_INTERNAL void gee_abstract_multi_set_reserved1 (GeeAbstractMultiSet* self); + G_GNUC_INTERNAL void gee_abstract_multi_set_reserved2 (GeeAbstractMultiSet* self); + G_GNUC_INTERNAL void gee_abstract_multi_set_reserved3 (GeeAbstractMultiSet* self); + G_GNUC_INTERNAL void gee_abstract_multi_set_reserved4 (GeeAbstractMultiSet* self); + G_GNUC_INTERNAL void gee_abstract_multi_set_reserved5 (GeeAbstractMultiSet* self); + G_GNUC_INTERNAL void gee_abstract_multi_set_reserved6 (GeeAbstractMultiSet* self); + G_GNUC_INTERNAL void gee_abstract_multi_set_reserved7 (GeeAbstractMultiSet* self); + G_GNUC_INTERNAL void gee_abstract_multi_set_reserved8 (GeeAbstractMultiSet* self); static gint gee_abstract_multi_set_real_count (GeeMultiSet* base, gconstpointer item); -gboolean gee_map_has_key (GeeMap* self, - gconstpointer key); -gpointer gee_map_get (GeeMap* self, - gconstpointer key); static gboolean gee_abstract_multi_set_real_contains (GeeAbstractCollection* base, gconstpointer item); static GeeIterator* gee_abstract_multi_set_real_iterator (GeeAbstractCollection* base); @@ -476,74 +143,41 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeAbstractMultiSet* set); -static GType gee_abstract_multi_set_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiSetIterator, g_object_unref) +static GType gee_abstract_multi_set_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_abstract_multi_set_real_add (GeeAbstractCollection* base, gconstpointer item); -void gee_map_set (GeeMap* self, - gconstpointer key, - gconstpointer value); static gboolean gee_abstract_multi_set_real_remove (GeeAbstractCollection* base, gconstpointer item); -gboolean gee_map_unset (GeeMap* self, - gconstpointer key, - gpointer* value); static void gee_abstract_multi_set_real_clear (GeeAbstractCollection* base); -void gee_map_clear (GeeMap* self); -G_GNUC_INTERNAL void gee_abstract_multi_set_reserved0 (GeeAbstractMultiSet* self); static void gee_abstract_multi_set_real_reserved0 (GeeAbstractMultiSet* self); -G_GNUC_INTERNAL void gee_abstract_multi_set_reserved1 (GeeAbstractMultiSet* self); static void gee_abstract_multi_set_real_reserved1 (GeeAbstractMultiSet* self); -G_GNUC_INTERNAL void gee_abstract_multi_set_reserved2 (GeeAbstractMultiSet* self); static void gee_abstract_multi_set_real_reserved2 (GeeAbstractMultiSet* self); -G_GNUC_INTERNAL void gee_abstract_multi_set_reserved3 (GeeAbstractMultiSet* self); static void gee_abstract_multi_set_real_reserved3 (GeeAbstractMultiSet* self); -G_GNUC_INTERNAL void gee_abstract_multi_set_reserved4 (GeeAbstractMultiSet* self); static void gee_abstract_multi_set_real_reserved4 (GeeAbstractMultiSet* self); -G_GNUC_INTERNAL void gee_abstract_multi_set_reserved5 (GeeAbstractMultiSet* self); static void gee_abstract_multi_set_real_reserved5 (GeeAbstractMultiSet* self); -G_GNUC_INTERNAL void gee_abstract_multi_set_reserved6 (GeeAbstractMultiSet* self); static void gee_abstract_multi_set_real_reserved6 (GeeAbstractMultiSet* self); -G_GNUC_INTERNAL void gee_abstract_multi_set_reserved7 (GeeAbstractMultiSet* self); static void gee_abstract_multi_set_real_reserved7 (GeeAbstractMultiSet* self); -G_GNUC_INTERNAL void gee_abstract_multi_set_reserved8 (GeeAbstractMultiSet* self); static void gee_abstract_multi_set_real_reserved8 (GeeAbstractMultiSet* self); -GeeMultiSet* gee_abstract_multi_set_get_read_only_view (GeeAbstractMultiSet* self); -G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeMultiSet* multiset); -G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeMultiSet* multiset); -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_multi_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMultiSet, g_object_unref) -static GObject * gee_abstract_multi_set_constructor (GType type, - guint n_construct_properties, - GObjectConstructParam * construct_properties); -GeeMapIterator* gee_map_map_iterator (GeeMap* self); + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_multi_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_abstract_multi_set_iterator_real_next (GeeIterator* base); -gboolean gee_map_iterator_next (GeeMapIterator* self); -gpointer gee_map_iterator_get_value (GeeMapIterator* self); static gboolean gee_abstract_multi_set_iterator_real_has_next (GeeIterator* base); -gboolean gee_map_iterator_has_next (GeeMapIterator* self); static gpointer gee_abstract_multi_set_iterator_real_get (GeeIterator* base); -gpointer gee_map_iterator_get_key (GeeMapIterator* self); static void gee_abstract_multi_set_iterator_real_remove (GeeIterator* base); -void gee_map_iterator_set_value (GeeMapIterator* self, - gconstpointer value); -void gee_map_iterator_unset (GeeMapIterator* self); static gboolean gee_abstract_multi_set_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, gpointer f_target); -gboolean gee_map_iterator_get_valid (GeeMapIterator* self); static void gee_abstract_multi_set_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_read_only (GeeIterator* self); -gboolean gee_iterator_get_valid (GeeIterator* self); +static GType gee_abstract_multi_set_iterator_get_type_once (void); static void _vala_gee_abstract_multi_set_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -552,9 +186,11 @@ guint property_id, const GValue * value, GParamSpec * pspec); +static GObject * gee_abstract_multi_set_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam * construct_properties); static void gee_abstract_multi_set_finalize (GObject * obj); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); +static GType gee_abstract_multi_set_get_type_once (void); static void _vala_gee_abstract_multi_set_get_property (GObject * object, guint property_id, GValue * value, @@ -737,8 +373,12 @@ void gee_abstract_multi_set_reserved0 (GeeAbstractMultiSet* self) { + GeeAbstractMultiSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_SET_GET_CLASS (self)->reserved0 (self); + _klass_ = GEE_ABSTRACT_MULTI_SET_GET_CLASS (self); + if (_klass_->reserved0) { + _klass_->reserved0 (self); + } } static void @@ -749,8 +389,12 @@ void gee_abstract_multi_set_reserved1 (GeeAbstractMultiSet* self) { + GeeAbstractMultiSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_SET_GET_CLASS (self)->reserved1 (self); + _klass_ = GEE_ABSTRACT_MULTI_SET_GET_CLASS (self); + if (_klass_->reserved1) { + _klass_->reserved1 (self); + } } static void @@ -761,8 +405,12 @@ void gee_abstract_multi_set_reserved2 (GeeAbstractMultiSet* self) { + GeeAbstractMultiSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_SET_GET_CLASS (self)->reserved2 (self); + _klass_ = GEE_ABSTRACT_MULTI_SET_GET_CLASS (self); + if (_klass_->reserved2) { + _klass_->reserved2 (self); + } } static void @@ -773,8 +421,12 @@ void gee_abstract_multi_set_reserved3 (GeeAbstractMultiSet* self) { + GeeAbstractMultiSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_SET_GET_CLASS (self)->reserved3 (self); + _klass_ = GEE_ABSTRACT_MULTI_SET_GET_CLASS (self); + if (_klass_->reserved3) { + _klass_->reserved3 (self); + } } static void @@ -785,8 +437,12 @@ void gee_abstract_multi_set_reserved4 (GeeAbstractMultiSet* self) { + GeeAbstractMultiSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_SET_GET_CLASS (self)->reserved4 (self); + _klass_ = GEE_ABSTRACT_MULTI_SET_GET_CLASS (self); + if (_klass_->reserved4) { + _klass_->reserved4 (self); + } } static void @@ -797,8 +453,12 @@ void gee_abstract_multi_set_reserved5 (GeeAbstractMultiSet* self) { + GeeAbstractMultiSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_SET_GET_CLASS (self)->reserved5 (self); + _klass_ = GEE_ABSTRACT_MULTI_SET_GET_CLASS (self); + if (_klass_->reserved5) { + _klass_->reserved5 (self); + } } static void @@ -809,8 +469,12 @@ void gee_abstract_multi_set_reserved6 (GeeAbstractMultiSet* self) { + GeeAbstractMultiSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_SET_GET_CLASS (self)->reserved6 (self); + _klass_ = GEE_ABSTRACT_MULTI_SET_GET_CLASS (self); + if (_klass_->reserved6) { + _klass_->reserved6 (self); + } } static void @@ -821,8 +485,12 @@ void gee_abstract_multi_set_reserved7 (GeeAbstractMultiSet* self) { + GeeAbstractMultiSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_SET_GET_CLASS (self)->reserved7 (self); + _klass_ = GEE_ABSTRACT_MULTI_SET_GET_CLASS (self); + if (_klass_->reserved7) { + _klass_->reserved7 (self); + } } static void @@ -833,8 +501,12 @@ void gee_abstract_multi_set_reserved8 (GeeAbstractMultiSet* self) { + GeeAbstractMultiSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_MULTI_SET_GET_CLASS (self)->reserved8 (self); + _klass_ = GEE_ABSTRACT_MULTI_SET_GET_CLASS (self); + if (_klass_->reserved8) { + _klass_->reserved8 (self); + } } static gint @@ -860,8 +532,13 @@ GeeMultiSet* gee_abstract_multi_set_get_read_only_view (GeeAbstractMultiSet* self) { + GeeAbstractMultiSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_MULTI_SET_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_ABSTRACT_MULTI_SET_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static GeeMultiSet* @@ -889,22 +566,6 @@ return result; } -static GObject * -gee_abstract_multi_set_constructor (GType type, - guint n_construct_properties, - GObjectConstructParam * construct_properties) -{ - GObject * obj; - GObjectClass * parent_class; - GeeAbstractMultiSet * self; - parent_class = G_OBJECT_CLASS (gee_abstract_multi_set_parent_class); - obj = parent_class->constructor (type, n_construct_properties, construct_properties); - self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSet); - g_weak_ref_clear (&self->priv->_read_only_view); - g_weak_ref_init (&self->priv->_read_only_view, NULL); - return obj; -} - static inline gpointer gee_abstract_multi_set_iterator_get_instance_private (GeeAbstractMultiSetIterator* self) { @@ -1070,18 +731,20 @@ gboolean _tmp5_ = FALSE; _tmp5_ = TRUE; while (TRUE) { - GeeMapIterator* _tmp6_; - gpointer _tmp7_; + GeeMapIterator* _tmp7_; + gpointer _tmp8_; if (!_tmp5_) { + gint _tmp6_; i = i - 1; + _tmp6_ = i; } _tmp5_ = FALSE; if (!(i >= 0)) { break; } - _tmp6_ = self->priv->_iter; - _tmp7_ = gee_map_iterator_get_key (_tmp6_); - if (!f (_tmp7_, f_target)) { + _tmp7_ = self->priv->_iter; + _tmp8_ = gee_map_iterator_get_key (_tmp7_); + if (!f (_tmp8_, f_target)) { self->priv->_pending = i; result = FALSE; return result; @@ -1091,34 +754,36 @@ } } while (TRUE) { - GeeMapIterator* _tmp8_; - _tmp8_ = self->priv->_iter; - if (!gee_map_iterator_next (_tmp8_)) { + GeeMapIterator* _tmp9_; + _tmp9_ = self->priv->_iter; + if (!gee_map_iterator_next (_tmp9_)) { break; } { gint i = 0; - GeeMapIterator* _tmp9_; - gpointer _tmp10_; - _tmp9_ = self->priv->_iter; - _tmp10_ = gee_map_iterator_get_value (_tmp9_); - i = ((gint) ((gintptr) _tmp10_)) - 1; + GeeMapIterator* _tmp10_; + gpointer _tmp11_; + _tmp10_ = self->priv->_iter; + _tmp11_ = gee_map_iterator_get_value (_tmp10_); + i = ((gint) ((gintptr) _tmp11_)) - 1; { - gboolean _tmp11_ = FALSE; - _tmp11_ = TRUE; + gboolean _tmp12_ = FALSE; + _tmp12_ = TRUE; while (TRUE) { - GeeMapIterator* _tmp12_; - gpointer _tmp13_; - if (!_tmp11_) { + GeeMapIterator* _tmp14_; + gpointer _tmp15_; + if (!_tmp12_) { + gint _tmp13_; i = i - 1; + _tmp13_ = i; } - _tmp11_ = FALSE; + _tmp12_ = FALSE; if (!(i >= 0)) { break; } - _tmp12_ = self->priv->_iter; - _tmp13_ = gee_map_iterator_get_key (_tmp12_); - if (!f (_tmp13_, f_target)) { + _tmp14_ = self->priv->_iter; + _tmp15_ = gee_map_iterator_get_key (_tmp14_); + if (!f (_tmp15_, f_target)) { self->priv->_removed = FALSE; self->priv->_pending = i; result = FALSE; @@ -1244,18 +909,26 @@ } static GType +gee_abstract_multi_set_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiSetIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_set_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiSetIterator), 0, (GInstanceInitFunc) gee_abstract_multi_set_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_abstract_multi_set_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_abstract_multi_set_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_multi_set_iterator_type_id; + gee_abstract_multi_set_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeAbstractMultiSetIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_abstract_multi_set_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_abstract_multi_set_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeAbstractMultiSetIterator_private_offset = g_type_add_instance_private (gee_abstract_multi_set_iterator_type_id, sizeof (GeeAbstractMultiSetIteratorPrivate)); + return gee_abstract_multi_set_iterator_type_id; +} + +static GType gee_abstract_multi_set_iterator_get_type (void) { static volatile gsize gee_abstract_multi_set_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_multi_set_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiSetIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_set_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiSetIterator), 0, (GInstanceInitFunc) gee_abstract_multi_set_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_abstract_multi_set_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_abstract_multi_set_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_multi_set_iterator_type_id; - gee_abstract_multi_set_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeAbstractMultiSetIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_abstract_multi_set_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_abstract_multi_set_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeAbstractMultiSetIterator_private_offset = g_type_add_instance_private (gee_abstract_multi_set_iterator_type_id, sizeof (GeeAbstractMultiSetIteratorPrivate)); + gee_abstract_multi_set_iterator_type_id = gee_abstract_multi_set_iterator_get_type_once (); g_once_init_leave (&gee_abstract_multi_set_iterator_type_id__volatile, gee_abstract_multi_set_iterator_type_id); } return gee_abstract_multi_set_iterator_type_id__volatile; @@ -1315,6 +988,22 @@ } } +static GObject * +gee_abstract_multi_set_constructor (GType type, + guint n_construct_properties, + GObjectConstructParam * construct_properties) +{ + GObject * obj; + GObjectClass * parent_class; + GeeAbstractMultiSet * self; + parent_class = G_OBJECT_CLASS (gee_abstract_multi_set_parent_class); + obj = parent_class->constructor (type, n_construct_properties, construct_properties); + self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSet); + g_weak_ref_clear (&self->priv->_read_only_view); + g_weak_ref_init (&self->priv->_read_only_view, NULL); + return obj; +} + static void gee_abstract_multi_set_class_init (GeeAbstractMultiSetClass * klass, gpointer klass_data) @@ -1403,17 +1092,25 @@ * @see HashMultiSet * @see TreeMultiSet */ +static GType +gee_abstract_multi_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiSet), 0, (GInstanceInitFunc) gee_abstract_multi_set_instance_init, NULL }; + static const GInterfaceInfo gee_multi_set_info = { (GInterfaceInitFunc) gee_abstract_multi_set_gee_multi_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_multi_set_type_id; + gee_abstract_multi_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractMultiSet", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (gee_abstract_multi_set_type_id, GEE_TYPE_MULTI_SET, &gee_multi_set_info); + GeeAbstractMultiSet_private_offset = g_type_add_instance_private (gee_abstract_multi_set_type_id, sizeof (GeeAbstractMultiSetPrivate)); + return gee_abstract_multi_set_type_id; +} + GType gee_abstract_multi_set_get_type (void) { static volatile gsize gee_abstract_multi_set_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_multi_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractMultiSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_multi_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractMultiSet), 0, (GInstanceInitFunc) gee_abstract_multi_set_instance_init, NULL }; - static const GInterfaceInfo gee_multi_set_info = { (GInterfaceInitFunc) gee_abstract_multi_set_gee_multi_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_multi_set_type_id; - gee_abstract_multi_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractMultiSet", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - g_type_add_interface_static (gee_abstract_multi_set_type_id, GEE_TYPE_MULTI_SET, &gee_multi_set_info); - GeeAbstractMultiSet_private_offset = g_type_add_instance_private (gee_abstract_multi_set_type_id, sizeof (GeeAbstractMultiSetPrivate)); + gee_abstract_multi_set_type_id = gee_abstract_multi_set_get_type_once (); g_once_init_leave (&gee_abstract_multi_set_type_id__volatile, gee_abstract_multi_set_type_id); } return gee_abstract_multi_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/abstractqueue.c libgee-0.8-0.20.4/gee/abstractqueue.c --- libgee-0.8-0.20.3/gee/abstractqueue.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/abstractqueue.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* abstractqueue.c generated by valac 0.46.6, the Vala compiler +/* abstractqueue.c generated by valac 0.52.0, the Vala compiler * generated from abstractqueue.vala, do not modify */ /* abstractqueue.vala @@ -23,94 +23,10 @@ * Didier 'Ptitjes Villevalois */ +#include "gee.h" #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_QUEUE (gee_queue_get_type ()) -#define GEE_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_QUEUE, GeeQueue)) -#define GEE_IS_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_QUEUE)) -#define GEE_QUEUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_QUEUE, GeeQueueIface)) - -typedef struct _GeeQueue GeeQueue; -typedef struct _GeeQueueIface GeeQueueIface; - -#define GEE_TYPE_ABSTRACT_QUEUE (gee_abstract_queue_get_type ()) -#define GEE_ABSTRACT_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueue)) -#define GEE_ABSTRACT_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueueClass)) -#define GEE_IS_ABSTRACT_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_QUEUE)) -#define GEE_IS_ABSTRACT_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_QUEUE)) -#define GEE_ABSTRACT_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueueClass)) - -typedef struct _GeeAbstractQueue GeeAbstractQueue; -typedef struct _GeeAbstractQueueClass GeeAbstractQueueClass; -typedef struct _GeeAbstractQueuePrivate GeeAbstractQueuePrivate; enum { GEE_ABSTRACT_QUEUE_0_PROPERTY, GEE_ABSTRACT_QUEUE_G_TYPE, @@ -123,139 +39,6 @@ }; static GParamSpec* gee_abstract_queue_properties[GEE_ABSTRACT_QUEUE_NUM_PROPERTIES]; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeQueueIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeQueue* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeQueue* self); - GDestroyNotify (*get_g_destroy_func) (GeeQueue* self); - gboolean (*offer) (GeeQueue* self, gconstpointer element); - gpointer (*peek) (GeeQueue* self); - gpointer (*poll) (GeeQueue* self); - gint (*drain) (GeeQueue* self, GeeCollection* recipient, gint amount); - gint (*get_capacity) (GeeQueue* self); - gint (*get_remaining_capacity) (GeeQueue* self); - gboolean (*get_is_full) (GeeQueue* self); -}; - -struct _GeeAbstractQueue { - GeeAbstractCollection parent_instance; - GeeAbstractQueuePrivate * priv; -}; - -struct _GeeAbstractQueueClass { - GeeAbstractCollectionClass parent_class; - gpointer (*peek) (GeeAbstractQueue* self); - gpointer (*poll) (GeeAbstractQueue* self); - void (*reserved0) (GeeAbstractQueue* self); - void (*reserved1) (GeeAbstractQueue* self); - void (*reserved2) (GeeAbstractQueue* self); - void (*reserved3) (GeeAbstractQueue* self); - void (*reserved4) (GeeAbstractQueue* self); - void (*reserved5) (GeeAbstractQueue* self); - void (*reserved6) (GeeAbstractQueue* self); - void (*reserved7) (GeeAbstractQueue* self); - void (*reserved8) (GeeAbstractQueue* self); - void (*reserved9) (GeeAbstractQueue* self); - gint (*get_capacity) (GeeAbstractQueue* self); - gint (*get_remaining_capacity) (GeeAbstractQueue* self); - gboolean (*get_is_full) (GeeAbstractQueue* self); -}; - struct _GeeAbstractQueuePrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -266,65 +49,29 @@ static gpointer gee_abstract_queue_parent_class = NULL; static GeeQueueIface * gee_abstract_queue_gee_queue_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_queue_get_type (void) G_GNUC_CONST; -GType gee_abstract_queue_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractQueue, g_object_unref) -gpointer gee_abstract_queue_peek (GeeAbstractQueue* self); + G_GNUC_INTERNAL void gee_abstract_queue_reserved0 (GeeAbstractQueue* self); + G_GNUC_INTERNAL void gee_abstract_queue_reserved1 (GeeAbstractQueue* self); + G_GNUC_INTERNAL void gee_abstract_queue_reserved2 (GeeAbstractQueue* self); + G_GNUC_INTERNAL void gee_abstract_queue_reserved3 (GeeAbstractQueue* self); + G_GNUC_INTERNAL void gee_abstract_queue_reserved4 (GeeAbstractQueue* self); + G_GNUC_INTERNAL void gee_abstract_queue_reserved5 (GeeAbstractQueue* self); + G_GNUC_INTERNAL void gee_abstract_queue_reserved6 (GeeAbstractQueue* self); + G_GNUC_INTERNAL void gee_abstract_queue_reserved7 (GeeAbstractQueue* self); + G_GNUC_INTERNAL void gee_abstract_queue_reserved8 (GeeAbstractQueue* self); + G_GNUC_INTERNAL void gee_abstract_queue_reserved9 (GeeAbstractQueue* self); static gpointer gee_abstract_queue_real_peek (GeeAbstractQueue* self); -gpointer gee_abstract_queue_poll (GeeAbstractQueue* self); static gpointer gee_abstract_queue_real_poll (GeeAbstractQueue* self); -G_GNUC_INTERNAL void gee_abstract_queue_reserved0 (GeeAbstractQueue* self); static void gee_abstract_queue_real_reserved0 (GeeAbstractQueue* self); -G_GNUC_INTERNAL void gee_abstract_queue_reserved1 (GeeAbstractQueue* self); static void gee_abstract_queue_real_reserved1 (GeeAbstractQueue* self); -G_GNUC_INTERNAL void gee_abstract_queue_reserved2 (GeeAbstractQueue* self); static void gee_abstract_queue_real_reserved2 (GeeAbstractQueue* self); -G_GNUC_INTERNAL void gee_abstract_queue_reserved3 (GeeAbstractQueue* self); static void gee_abstract_queue_real_reserved3 (GeeAbstractQueue* self); -G_GNUC_INTERNAL void gee_abstract_queue_reserved4 (GeeAbstractQueue* self); static void gee_abstract_queue_real_reserved4 (GeeAbstractQueue* self); -G_GNUC_INTERNAL void gee_abstract_queue_reserved5 (GeeAbstractQueue* self); static void gee_abstract_queue_real_reserved5 (GeeAbstractQueue* self); -G_GNUC_INTERNAL void gee_abstract_queue_reserved6 (GeeAbstractQueue* self); static void gee_abstract_queue_real_reserved6 (GeeAbstractQueue* self); -G_GNUC_INTERNAL void gee_abstract_queue_reserved7 (GeeAbstractQueue* self); static void gee_abstract_queue_real_reserved7 (GeeAbstractQueue* self); -G_GNUC_INTERNAL void gee_abstract_queue_reserved8 (GeeAbstractQueue* self); static void gee_abstract_queue_real_reserved8 (GeeAbstractQueue* self); -G_GNUC_INTERNAL void gee_abstract_queue_reserved9 (GeeAbstractQueue* self); static void gee_abstract_queue_real_reserved9 (GeeAbstractQueue* self); -GeeAbstractQueue* gee_abstract_queue_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeAbstractCollection* gee_abstract_collection_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -gint gee_abstract_queue_get_capacity (GeeAbstractQueue* self); -gint gee_abstract_queue_get_remaining_capacity (GeeAbstractQueue* self); -gboolean gee_abstract_queue_get_is_full (GeeAbstractQueue* self); +static GType gee_abstract_queue_get_type_once (void); static void _vala_gee_abstract_queue_get_property (GObject * object, guint property_id, GValue * value, @@ -353,8 +100,13 @@ gpointer gee_abstract_queue_peek (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_QUEUE_GET_CLASS (self)->peek (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->peek) { + return _klass_->peek (self); + } + return NULL; } /** @@ -370,8 +122,13 @@ gpointer gee_abstract_queue_poll (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_QUEUE_GET_CLASS (self)->poll (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->poll) { + return _klass_->poll (self); + } + return NULL; } static void @@ -382,8 +139,12 @@ void gee_abstract_queue_reserved0 (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_QUEUE_GET_CLASS (self)->reserved0 (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->reserved0) { + _klass_->reserved0 (self); + } } static void @@ -394,8 +155,12 @@ void gee_abstract_queue_reserved1 (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_QUEUE_GET_CLASS (self)->reserved1 (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->reserved1) { + _klass_->reserved1 (self); + } } static void @@ -406,8 +171,12 @@ void gee_abstract_queue_reserved2 (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_QUEUE_GET_CLASS (self)->reserved2 (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->reserved2) { + _klass_->reserved2 (self); + } } static void @@ -418,8 +187,12 @@ void gee_abstract_queue_reserved3 (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_QUEUE_GET_CLASS (self)->reserved3 (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->reserved3) { + _klass_->reserved3 (self); + } } static void @@ -430,8 +203,12 @@ void gee_abstract_queue_reserved4 (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_QUEUE_GET_CLASS (self)->reserved4 (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->reserved4) { + _klass_->reserved4 (self); + } } static void @@ -442,8 +219,12 @@ void gee_abstract_queue_reserved5 (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_QUEUE_GET_CLASS (self)->reserved5 (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->reserved5) { + _klass_->reserved5 (self); + } } static void @@ -454,8 +235,12 @@ void gee_abstract_queue_reserved6 (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_QUEUE_GET_CLASS (self)->reserved6 (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->reserved6) { + _klass_->reserved6 (self); + } } static void @@ -466,8 +251,12 @@ void gee_abstract_queue_reserved7 (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_QUEUE_GET_CLASS (self)->reserved7 (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->reserved7) { + _klass_->reserved7 (self); + } } static void @@ -478,8 +267,12 @@ void gee_abstract_queue_reserved8 (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_QUEUE_GET_CLASS (self)->reserved8 (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->reserved8) { + _klass_->reserved8 (self); + } } static void @@ -490,8 +283,12 @@ void gee_abstract_queue_reserved9 (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_QUEUE_GET_CLASS (self)->reserved9 (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->reserved9) { + _klass_->reserved9 (self); + } } GeeAbstractQueue* @@ -511,22 +308,37 @@ gint gee_abstract_queue_get_capacity (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_val_if_fail (self != NULL, 0); - return GEE_ABSTRACT_QUEUE_GET_CLASS (self)->get_capacity (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->get_capacity) { + return _klass_->get_capacity (self); + } + return -1; } gint gee_abstract_queue_get_remaining_capacity (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_val_if_fail (self != NULL, 0); - return GEE_ABSTRACT_QUEUE_GET_CLASS (self)->get_remaining_capacity (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->get_remaining_capacity) { + return _klass_->get_remaining_capacity (self); + } + return -1; } gboolean gee_abstract_queue_get_is_full (GeeAbstractQueue* self) { + GeeAbstractQueueClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ABSTRACT_QUEUE_GET_CLASS (self)->get_is_full (self); + _klass_ = GEE_ABSTRACT_QUEUE_GET_CLASS (self); + if (_klass_->get_is_full) { + return _klass_->get_is_full (self); + } + return FALSE; } static void @@ -613,17 +425,25 @@ * * @see PriorityQueue */ +static GType +gee_abstract_queue_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractQueueClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_queue_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractQueue), 0, (GInstanceInitFunc) gee_abstract_queue_instance_init, NULL }; + static const GInterfaceInfo gee_queue_info = { (GInterfaceInitFunc) gee_abstract_queue_gee_queue_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_queue_type_id; + gee_abstract_queue_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractQueue", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (gee_abstract_queue_type_id, GEE_TYPE_QUEUE, &gee_queue_info); + GeeAbstractQueue_private_offset = g_type_add_instance_private (gee_abstract_queue_type_id, sizeof (GeeAbstractQueuePrivate)); + return gee_abstract_queue_type_id; +} + GType gee_abstract_queue_get_type (void) { static volatile gsize gee_abstract_queue_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_queue_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractQueueClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_queue_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractQueue), 0, (GInstanceInitFunc) gee_abstract_queue_instance_init, NULL }; - static const GInterfaceInfo gee_queue_info = { (GInterfaceInitFunc) gee_abstract_queue_gee_queue_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_queue_type_id; - gee_abstract_queue_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractQueue", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - g_type_add_interface_static (gee_abstract_queue_type_id, GEE_TYPE_QUEUE, &gee_queue_info); - GeeAbstractQueue_private_offset = g_type_add_instance_private (gee_abstract_queue_type_id, sizeof (GeeAbstractQueuePrivate)); + gee_abstract_queue_type_id = gee_abstract_queue_get_type_once (); g_once_init_leave (&gee_abstract_queue_type_id__volatile, gee_abstract_queue_type_id); } return gee_abstract_queue_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/abstractset.c libgee-0.8-0.20.4/gee/abstractset.c --- libgee-0.8-0.20.3/gee/abstractset.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/abstractset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* abstractset.c generated by valac 0.46.6, the Vala compiler +/* abstractset.c generated by valac 0.52.0, the Vala compiler * generated from abstractset.vala, do not modify */ /* abstractset.vala @@ -24,94 +24,10 @@ * Julien Peeters */ +#include "gee.h" #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; -typedef struct _GeeAbstractSetPrivate GeeAbstractSetPrivate; enum { GEE_ABSTRACT_SET_0_PROPERTY, GEE_ABSTRACT_SET_G_TYPE, @@ -143,129 +59,6 @@ typedef struct _GeeReadOnlySetClass GeeReadOnlySetClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeAbstractSet { - GeeAbstractCollection parent_instance; - GeeAbstractSetPrivate * priv; -}; - -struct _GeeAbstractSetClass { - GeeAbstractCollectionClass parent_class; - void (*reserved0) (GeeAbstractSet* self); - void (*reserved1) (GeeAbstractSet* self); - void (*reserved2) (GeeAbstractSet* self); - void (*reserved3) (GeeAbstractSet* self); - void (*reserved4) (GeeAbstractSet* self); - void (*reserved5) (GeeAbstractSet* self); - void (*reserved6) (GeeAbstractSet* self); - void (*reserved7) (GeeAbstractSet* self); - void (*reserved8) (GeeAbstractSet* self); - void (*reserved9) (GeeAbstractSet* self); - GeeSet* (*get_read_only_view) (GeeAbstractSet* self); -}; - struct _GeeAbstractSetPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -277,76 +70,42 @@ static gpointer gee_abstract_set_parent_class = NULL; static GeeSetIface * gee_abstract_set_gee_set_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -G_GNUC_INTERNAL void gee_abstract_set_reserved0 (GeeAbstractSet* self); + G_GNUC_INTERNAL void gee_abstract_set_reserved0 (GeeAbstractSet* self); + G_GNUC_INTERNAL void gee_abstract_set_reserved1 (GeeAbstractSet* self); + G_GNUC_INTERNAL void gee_abstract_set_reserved2 (GeeAbstractSet* self); + G_GNUC_INTERNAL void gee_abstract_set_reserved3 (GeeAbstractSet* self); + G_GNUC_INTERNAL void gee_abstract_set_reserved4 (GeeAbstractSet* self); + G_GNUC_INTERNAL void gee_abstract_set_reserved5 (GeeAbstractSet* self); + G_GNUC_INTERNAL void gee_abstract_set_reserved6 (GeeAbstractSet* self); + G_GNUC_INTERNAL void gee_abstract_set_reserved7 (GeeAbstractSet* self); + G_GNUC_INTERNAL void gee_abstract_set_reserved8 (GeeAbstractSet* self); + G_GNUC_INTERNAL void gee_abstract_set_reserved9 (GeeAbstractSet* self); static void gee_abstract_set_real_reserved0 (GeeAbstractSet* self); -G_GNUC_INTERNAL void gee_abstract_set_reserved1 (GeeAbstractSet* self); static void gee_abstract_set_real_reserved1 (GeeAbstractSet* self); -G_GNUC_INTERNAL void gee_abstract_set_reserved2 (GeeAbstractSet* self); static void gee_abstract_set_real_reserved2 (GeeAbstractSet* self); -G_GNUC_INTERNAL void gee_abstract_set_reserved3 (GeeAbstractSet* self); static void gee_abstract_set_real_reserved3 (GeeAbstractSet* self); -G_GNUC_INTERNAL void gee_abstract_set_reserved4 (GeeAbstractSet* self); static void gee_abstract_set_real_reserved4 (GeeAbstractSet* self); -G_GNUC_INTERNAL void gee_abstract_set_reserved5 (GeeAbstractSet* self); static void gee_abstract_set_real_reserved5 (GeeAbstractSet* self); -G_GNUC_INTERNAL void gee_abstract_set_reserved6 (GeeAbstractSet* self); static void gee_abstract_set_real_reserved6 (GeeAbstractSet* self); -G_GNUC_INTERNAL void gee_abstract_set_reserved7 (GeeAbstractSet* self); static void gee_abstract_set_real_reserved7 (GeeAbstractSet* self); -G_GNUC_INTERNAL void gee_abstract_set_reserved8 (GeeAbstractSet* self); static void gee_abstract_set_real_reserved8 (GeeAbstractSet* self); -G_GNUC_INTERNAL void gee_abstract_set_reserved9 (GeeAbstractSet* self); static void gee_abstract_set_real_reserved9 (GeeAbstractSet* self); -GeeAbstractSet* gee_abstract_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeAbstractCollection* gee_abstract_collection_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeSet* gee_abstract_set_get_read_only_view (GeeAbstractSet* self); -G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSet* set); -G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSet* set); -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySet, g_object_unref) + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GObject * gee_abstract_set_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static void gee_abstract_set_finalize (GObject * obj); +static GType gee_abstract_set_get_type_once (void); static void _vala_gee_abstract_set_get_property (GObject * object, guint property_id, GValue * value, @@ -370,8 +129,12 @@ void gee_abstract_set_reserved0 (GeeAbstractSet* self) { + GeeAbstractSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SET_GET_CLASS (self)->reserved0 (self); + _klass_ = GEE_ABSTRACT_SET_GET_CLASS (self); + if (_klass_->reserved0) { + _klass_->reserved0 (self); + } } static void @@ -382,8 +145,12 @@ void gee_abstract_set_reserved1 (GeeAbstractSet* self) { + GeeAbstractSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SET_GET_CLASS (self)->reserved1 (self); + _klass_ = GEE_ABSTRACT_SET_GET_CLASS (self); + if (_klass_->reserved1) { + _klass_->reserved1 (self); + } } static void @@ -394,8 +161,12 @@ void gee_abstract_set_reserved2 (GeeAbstractSet* self) { + GeeAbstractSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SET_GET_CLASS (self)->reserved2 (self); + _klass_ = GEE_ABSTRACT_SET_GET_CLASS (self); + if (_klass_->reserved2) { + _klass_->reserved2 (self); + } } static void @@ -406,8 +177,12 @@ void gee_abstract_set_reserved3 (GeeAbstractSet* self) { + GeeAbstractSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SET_GET_CLASS (self)->reserved3 (self); + _klass_ = GEE_ABSTRACT_SET_GET_CLASS (self); + if (_klass_->reserved3) { + _klass_->reserved3 (self); + } } static void @@ -418,8 +193,12 @@ void gee_abstract_set_reserved4 (GeeAbstractSet* self) { + GeeAbstractSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SET_GET_CLASS (self)->reserved4 (self); + _klass_ = GEE_ABSTRACT_SET_GET_CLASS (self); + if (_klass_->reserved4) { + _klass_->reserved4 (self); + } } static void @@ -430,8 +209,12 @@ void gee_abstract_set_reserved5 (GeeAbstractSet* self) { + GeeAbstractSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SET_GET_CLASS (self)->reserved5 (self); + _klass_ = GEE_ABSTRACT_SET_GET_CLASS (self); + if (_klass_->reserved5) { + _klass_->reserved5 (self); + } } static void @@ -442,8 +225,12 @@ void gee_abstract_set_reserved6 (GeeAbstractSet* self) { + GeeAbstractSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SET_GET_CLASS (self)->reserved6 (self); + _klass_ = GEE_ABSTRACT_SET_GET_CLASS (self); + if (_klass_->reserved6) { + _klass_->reserved6 (self); + } } static void @@ -454,8 +241,12 @@ void gee_abstract_set_reserved7 (GeeAbstractSet* self) { + GeeAbstractSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SET_GET_CLASS (self)->reserved7 (self); + _klass_ = GEE_ABSTRACT_SET_GET_CLASS (self); + if (_klass_->reserved7) { + _klass_->reserved7 (self); + } } static void @@ -466,8 +257,12 @@ void gee_abstract_set_reserved8 (GeeAbstractSet* self) { + GeeAbstractSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SET_GET_CLASS (self)->reserved8 (self); + _klass_ = GEE_ABSTRACT_SET_GET_CLASS (self); + if (_klass_->reserved8) { + _klass_->reserved8 (self); + } } static void @@ -478,8 +273,12 @@ void gee_abstract_set_reserved9 (GeeAbstractSet* self) { + GeeAbstractSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SET_GET_CLASS (self)->reserved9 (self); + _klass_ = GEE_ABSTRACT_SET_GET_CLASS (self); + if (_klass_->reserved9) { + _klass_->reserved9 (self); + } } GeeAbstractSet* @@ -499,8 +298,13 @@ GeeSet* gee_abstract_set_get_read_only_view (GeeAbstractSet* self) { + GeeAbstractSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SET_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_ABSTRACT_SET_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static GeeSet* @@ -627,17 +431,25 @@ * @see HashSet * @see TreeSet */ +static GType +gee_abstract_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractSet), 0, (GInstanceInitFunc) gee_abstract_set_instance_init, NULL }; + static const GInterfaceInfo gee_set_info = { (GInterfaceInitFunc) gee_abstract_set_gee_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_set_type_id; + gee_abstract_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractSet", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (gee_abstract_set_type_id, GEE_TYPE_SET, &gee_set_info); + GeeAbstractSet_private_offset = g_type_add_instance_private (gee_abstract_set_type_id, sizeof (GeeAbstractSetPrivate)); + return gee_abstract_set_type_id; +} + GType gee_abstract_set_get_type (void) { static volatile gsize gee_abstract_set_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractSet), 0, (GInstanceInitFunc) gee_abstract_set_instance_init, NULL }; - static const GInterfaceInfo gee_set_info = { (GInterfaceInitFunc) gee_abstract_set_gee_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_set_type_id; - gee_abstract_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeAbstractSet", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - g_type_add_interface_static (gee_abstract_set_type_id, GEE_TYPE_SET, &gee_set_info); - GeeAbstractSet_private_offset = g_type_add_instance_private (gee_abstract_set_type_id, sizeof (GeeAbstractSetPrivate)); + gee_abstract_set_type_id = gee_abstract_set_get_type_once (); g_once_init_leave (&gee_abstract_set_type_id__volatile, gee_abstract_set_type_id); } return gee_abstract_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/abstractsortedmap.c libgee-0.8-0.20.4/gee/abstractsortedmap.c --- libgee-0.8-0.20.3/gee/abstractsortedmap.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/abstractsortedmap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* abstractsortedmap.c generated by valac 0.46.6, the Vala compiler +/* abstractsortedmap.c generated by valac 0.52.0, the Vala compiler * generated from abstractsortedmap.vala, do not modify */ /* readonlysortedmap.vala @@ -23,138 +23,10 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - -#define GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type ()) -#define GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)) -#define GEE_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) -#define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) - -typedef struct _GeeAbstractMap GeeAbstractMap; -typedef struct _GeeAbstractMapClass GeeAbstractMapClass; -typedef struct _GeeAbstractMapPrivate GeeAbstractMapPrivate; - -#define GEE_TYPE_SORTED_MAP (gee_sorted_map_get_type ()) -#define GEE_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMap)) -#define GEE_IS_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_MAP)) -#define GEE_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMapIface)) - -typedef struct _GeeSortedMap GeeSortedMap; -typedef struct _GeeSortedMapIface GeeSortedMapIface; - -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - -#define GEE_TYPE_ABSTRACT_SORTED_MAP (gee_abstract_sorted_map_get_type ()) -#define GEE_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMap)) -#define GEE_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) -#define GEE_IS_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_IS_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_ABSTRACT_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) - -typedef struct _GeeAbstractSortedMap GeeAbstractSortedMap; -typedef struct _GeeAbstractSortedMapClass GeeAbstractSortedMapClass; -typedef struct _GeeAbstractSortedMapPrivate GeeAbstractSortedMapPrivate; enum { GEE_ABSTRACT_SORTED_MAP_0_PROPERTY, GEE_ABSTRACT_SORTED_MAP_K_TYPE, @@ -191,215 +63,6 @@ typedef struct _GeeReadOnlySortedMapClass GeeReadOnlySortedMapClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeAbstractMap { - GObject parent_instance; - GeeAbstractMapPrivate * priv; -}; - -struct _GeeAbstractMapClass { - GObjectClass parent_class; - gboolean (*has_key) (GeeAbstractMap* self, gconstpointer key); - gboolean (*has) (GeeAbstractMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeAbstractMap* self, gconstpointer key); - void (*set) (GeeAbstractMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeAbstractMap* self, gconstpointer key, gpointer* value); - GeeMapIterator* (*map_iterator) (GeeAbstractMap* self); - void (*clear) (GeeAbstractMap* self); - gboolean (*foreach) (GeeAbstractMap* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeAbstractMap* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - void (*reserved0) (GeeAbstractMap* self); - void (*reserved1) (GeeAbstractMap* self); - void (*reserved2) (GeeAbstractMap* self); - void (*reserved3) (GeeAbstractMap* self); - void (*reserved4) (GeeAbstractMap* self); - void (*reserved5) (GeeAbstractMap* self); - void (*reserved6) (GeeAbstractMap* self); - void (*reserved7) (GeeAbstractMap* self); - void (*reserved8) (GeeAbstractMap* self); - void (*reserved9) (GeeAbstractMap* self); - gint (*get_size) (GeeAbstractMap* self); - gboolean (*get_read_only) (GeeAbstractMap* self); - GeeSet* (*get_keys) (GeeAbstractMap* self); - GeeCollection* (*get_values) (GeeAbstractMap* self); - GeeSet* (*get_entries) (GeeAbstractMap* self); - GeeMap* (*get_read_only_view) (GeeAbstractMap* self); -}; - -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - -struct _GeeSortedMapIface { - GTypeInterface parent_iface; - GeeSortedMap* (*head_map) (GeeSortedMap* self, gconstpointer before); - GeeSortedMap* (*tail_map) (GeeSortedMap* self, gconstpointer after); - GeeSortedMap* (*sub_map) (GeeSortedMap* self, gconstpointer before, gconstpointer after); - GeeSortedSet* (*get_ascending_keys) (GeeSortedMap* self); - GeeSortedSet* (*get_ascending_entries) (GeeSortedMap* self); - GeeSortedMap* (*get_read_only_view) (GeeSortedMap* self); -}; - -struct _GeeAbstractSortedMap { - GeeAbstractMap parent_instance; - GeeAbstractSortedMapPrivate * priv; -}; - -struct _GeeAbstractSortedMapClass { - GeeAbstractMapClass parent_class; - GeeSortedMap* (*head_map) (GeeAbstractSortedMap* self, gconstpointer before); - GeeSortedMap* (*tail_map) (GeeAbstractSortedMap* self, gconstpointer after); - GeeSortedMap* (*sub_map) (GeeAbstractSortedMap* self, gconstpointer before, gconstpointer after); - void (*reserved0) (GeeAbstractSortedMap* self); - void (*reserved1) (GeeAbstractSortedMap* self); - void (*reserved2) (GeeAbstractSortedMap* self); - void (*reserved3) (GeeAbstractSortedMap* self); - void (*reserved4) (GeeAbstractSortedMap* self); - void (*reserved5) (GeeAbstractSortedMap* self); - void (*reserved6) (GeeAbstractSortedMap* self); - void (*reserved7) (GeeAbstractSortedMap* self); - void (*reserved8) (GeeAbstractSortedMap* self); - void (*reserved9) (GeeAbstractSortedMap* self); - GeeSortedSet* (*get_ascending_keys) (GeeAbstractSortedMap* self); - GeeSortedSet* (*get_ascending_entries) (GeeAbstractSortedMap* self); -}; - struct _GeeAbstractSortedMapPrivate { GType k_type; GBoxedCopyFunc k_dup_func; @@ -414,94 +77,41 @@ static gpointer gee_abstract_sorted_map_parent_class = NULL; static GeeSortedMapIface * gee_abstract_sorted_map_gee_sorted_map_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMap, g_object_unref) -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_sorted_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_sorted_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedMap, g_object_unref) -GeeSortedMap* gee_abstract_sorted_map_head_map (GeeAbstractSortedMap* self, - gconstpointer before); + G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved0 (GeeAbstractSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved1 (GeeAbstractSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved2 (GeeAbstractSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved3 (GeeAbstractSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved4 (GeeAbstractSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved5 (GeeAbstractSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved6 (GeeAbstractSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved7 (GeeAbstractSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved8 (GeeAbstractSortedMap* self); + G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved9 (GeeAbstractSortedMap* self); static GeeSortedMap* gee_abstract_sorted_map_real_head_map (GeeAbstractSortedMap* self, gconstpointer before); -GeeSortedMap* gee_abstract_sorted_map_tail_map (GeeAbstractSortedMap* self, - gconstpointer after); static GeeSortedMap* gee_abstract_sorted_map_real_tail_map (GeeAbstractSortedMap* self, gconstpointer after); -GeeSortedMap* gee_abstract_sorted_map_sub_map (GeeAbstractSortedMap* self, - gconstpointer before, - gconstpointer after); static GeeSortedMap* gee_abstract_sorted_map_real_sub_map (GeeAbstractSortedMap* self, gconstpointer before, gconstpointer after); -G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved0 (GeeAbstractSortedMap* self); static void gee_abstract_sorted_map_real_reserved0 (GeeAbstractSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved1 (GeeAbstractSortedMap* self); static void gee_abstract_sorted_map_real_reserved1 (GeeAbstractSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved2 (GeeAbstractSortedMap* self); static void gee_abstract_sorted_map_real_reserved2 (GeeAbstractSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved3 (GeeAbstractSortedMap* self); static void gee_abstract_sorted_map_real_reserved3 (GeeAbstractSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved4 (GeeAbstractSortedMap* self); static void gee_abstract_sorted_map_real_reserved4 (GeeAbstractSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved5 (GeeAbstractSortedMap* self); static void gee_abstract_sorted_map_real_reserved5 (GeeAbstractSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved6 (GeeAbstractSortedMap* self); static void gee_abstract_sorted_map_real_reserved6 (GeeAbstractSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved7 (GeeAbstractSortedMap* self); static void gee_abstract_sorted_map_real_reserved7 (GeeAbstractSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved8 (GeeAbstractSortedMap* self); static void gee_abstract_sorted_map_real_reserved8 (GeeAbstractSortedMap* self); -G_GNUC_INTERNAL void gee_abstract_sorted_map_reserved9 (GeeAbstractSortedMap* self); static void gee_abstract_sorted_map_real_reserved9 (GeeAbstractSortedMap* self); -GeeAbstractSortedMap* gee_abstract_sorted_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func); -GeeAbstractMap* gee_abstract_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func); -GeeSortedSet* gee_abstract_sorted_map_get_ascending_keys (GeeAbstractSortedMap* self); -GeeSortedSet* gee_abstract_sorted_map_get_ascending_entries (GeeAbstractSortedMap* self); -G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_new (GType k_type, + G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map); -G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -509,15 +119,13 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map); -G_GNUC_INTERNAL GType gee_read_only_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMap, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_sorted_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySortedMap, g_object_unref) + G_GNUC_INTERNAL GType gee_read_only_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_sorted_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GObject * gee_abstract_sorted_map_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static void gee_abstract_sorted_map_finalize (GObject * obj); -GeeSortedMap* gee_sorted_map_get_read_only_view (GeeSortedMap* self); +static GType gee_abstract_sorted_map_get_type_once (void); static void _vala_gee_abstract_sorted_map_get_property (GObject * object, guint property_id, GValue * value, @@ -548,8 +156,13 @@ gee_abstract_sorted_map_head_map (GeeAbstractSortedMap* self, gconstpointer before) { + GeeAbstractSortedMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->head_map (self, before); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->head_map) { + return _klass_->head_map (self, before); + } + return NULL; } /** @@ -567,8 +180,13 @@ gee_abstract_sorted_map_tail_map (GeeAbstractSortedMap* self, gconstpointer after) { + GeeAbstractSortedMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->tail_map (self, after); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->tail_map) { + return _klass_->tail_map (self, after); + } + return NULL; } /** @@ -588,8 +206,13 @@ gconstpointer before, gconstpointer after) { + GeeAbstractSortedMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->sub_map (self, before, after); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->sub_map) { + return _klass_->sub_map (self, before, after); + } + return NULL; } static void @@ -600,8 +223,12 @@ void gee_abstract_sorted_map_reserved0 (GeeAbstractSortedMap* self) { + GeeAbstractSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->reserved0 (self); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved0) { + _klass_->reserved0 (self); + } } static void @@ -612,8 +239,12 @@ void gee_abstract_sorted_map_reserved1 (GeeAbstractSortedMap* self) { + GeeAbstractSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->reserved1 (self); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved1) { + _klass_->reserved1 (self); + } } static void @@ -624,8 +255,12 @@ void gee_abstract_sorted_map_reserved2 (GeeAbstractSortedMap* self) { + GeeAbstractSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->reserved2 (self); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved2) { + _klass_->reserved2 (self); + } } static void @@ -636,8 +271,12 @@ void gee_abstract_sorted_map_reserved3 (GeeAbstractSortedMap* self) { + GeeAbstractSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->reserved3 (self); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved3) { + _klass_->reserved3 (self); + } } static void @@ -648,8 +287,12 @@ void gee_abstract_sorted_map_reserved4 (GeeAbstractSortedMap* self) { + GeeAbstractSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->reserved4 (self); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved4) { + _klass_->reserved4 (self); + } } static void @@ -660,8 +303,12 @@ void gee_abstract_sorted_map_reserved5 (GeeAbstractSortedMap* self) { + GeeAbstractSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->reserved5 (self); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved5) { + _klass_->reserved5 (self); + } } static void @@ -672,8 +319,12 @@ void gee_abstract_sorted_map_reserved6 (GeeAbstractSortedMap* self) { + GeeAbstractSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->reserved6 (self); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved6) { + _klass_->reserved6 (self); + } } static void @@ -684,8 +335,12 @@ void gee_abstract_sorted_map_reserved7 (GeeAbstractSortedMap* self) { + GeeAbstractSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->reserved7 (self); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved7) { + _klass_->reserved7 (self); + } } static void @@ -696,8 +351,12 @@ void gee_abstract_sorted_map_reserved8 (GeeAbstractSortedMap* self) { + GeeAbstractSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->reserved8 (self); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved8) { + _klass_->reserved8 (self); + } } static void @@ -708,8 +367,12 @@ void gee_abstract_sorted_map_reserved9 (GeeAbstractSortedMap* self) { + GeeAbstractSortedMapClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->reserved9 (self); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->reserved9) { + _klass_->reserved9 (self); + } } GeeAbstractSortedMap* @@ -735,15 +398,25 @@ GeeSortedSet* gee_abstract_sorted_map_get_ascending_keys (GeeAbstractSortedMap* self) { + GeeAbstractSortedMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->get_ascending_keys (self); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->get_ascending_keys) { + return _klass_->get_ascending_keys (self); + } + return NULL; } GeeSortedSet* gee_abstract_sorted_map_get_ascending_entries (GeeAbstractSortedMap* self) { + GeeAbstractSortedMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self)->get_ascending_entries (self); + _klass_ = GEE_ABSTRACT_SORTED_MAP_GET_CLASS (self); + if (_klass_->get_ascending_entries) { + return _klass_->get_ascending_entries (self); + } + return NULL; } static GeeSortedMap* @@ -859,17 +532,25 @@ G_OBJECT_CLASS (gee_abstract_sorted_map_parent_class)->finalize (obj); } +static GType +gee_abstract_sorted_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractSortedMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_sorted_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractSortedMap), 0, (GInstanceInitFunc) gee_abstract_sorted_map_instance_init, NULL }; + static const GInterfaceInfo gee_sorted_map_info = { (GInterfaceInitFunc) gee_abstract_sorted_map_gee_sorted_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_sorted_map_type_id; + gee_abstract_sorted_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_MAP, "GeeAbstractSortedMap", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (gee_abstract_sorted_map_type_id, GEE_TYPE_SORTED_MAP, &gee_sorted_map_info); + GeeAbstractSortedMap_private_offset = g_type_add_instance_private (gee_abstract_sorted_map_type_id, sizeof (GeeAbstractSortedMapPrivate)); + return gee_abstract_sorted_map_type_id; +} + GType gee_abstract_sorted_map_get_type (void) { static volatile gsize gee_abstract_sorted_map_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_sorted_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractSortedMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_sorted_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractSortedMap), 0, (GInstanceInitFunc) gee_abstract_sorted_map_instance_init, NULL }; - static const GInterfaceInfo gee_sorted_map_info = { (GInterfaceInitFunc) gee_abstract_sorted_map_gee_sorted_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_sorted_map_type_id; - gee_abstract_sorted_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_MAP, "GeeAbstractSortedMap", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - g_type_add_interface_static (gee_abstract_sorted_map_type_id, GEE_TYPE_SORTED_MAP, &gee_sorted_map_info); - GeeAbstractSortedMap_private_offset = g_type_add_instance_private (gee_abstract_sorted_map_type_id, sizeof (GeeAbstractSortedMapPrivate)); + gee_abstract_sorted_map_type_id = gee_abstract_sorted_map_get_type_once (); g_once_init_leave (&gee_abstract_sorted_map_type_id__volatile, gee_abstract_sorted_map_type_id); } return gee_abstract_sorted_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/abstractsortedset.c libgee-0.8-0.20.4/gee/abstractsortedset.c --- libgee-0.8-0.20.3/gee/abstractsortedset.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/abstractsortedset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* abstractsortedset.c generated by valac 0.46.6, the Vala compiler +/* abstractsortedset.c generated by valac 0.52.0, the Vala compiler * generated from abstractsortedset.vala, do not modify */ /* abstractsortedset.vala @@ -23,113 +23,10 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; -typedef struct _GeeAbstractSetPrivate GeeAbstractSetPrivate; - -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - -#define GEE_TYPE_ABSTRACT_SORTED_SET (gee_abstract_sorted_set_get_type ()) -#define GEE_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet)) -#define GEE_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) -#define GEE_IS_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_IS_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_ABSTRACT_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) - -typedef struct _GeeAbstractSortedSet GeeAbstractSortedSet; -typedef struct _GeeAbstractSortedSetClass GeeAbstractSortedSetClass; -typedef struct _GeeAbstractSortedSetPrivate GeeAbstractSortedSetPrivate; enum { GEE_ABSTRACT_SORTED_SET_0_PROPERTY, GEE_ABSTRACT_SORTED_SET_G_TYPE, @@ -171,177 +68,6 @@ typedef struct _GeeReadOnlySortedSetClass GeeReadOnlySortedSetClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeAbstractSet { - GeeAbstractCollection parent_instance; - GeeAbstractSetPrivate * priv; -}; - -struct _GeeAbstractSetClass { - GeeAbstractCollectionClass parent_class; - void (*reserved0) (GeeAbstractSet* self); - void (*reserved1) (GeeAbstractSet* self); - void (*reserved2) (GeeAbstractSet* self); - void (*reserved3) (GeeAbstractSet* self); - void (*reserved4) (GeeAbstractSet* self); - void (*reserved5) (GeeAbstractSet* self); - void (*reserved6) (GeeAbstractSet* self); - void (*reserved7) (GeeAbstractSet* self); - void (*reserved8) (GeeAbstractSet* self); - void (*reserved9) (GeeAbstractSet* self); - GeeSet* (*get_read_only_view) (GeeAbstractSet* self); -}; - -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - -struct _GeeAbstractSortedSet { - GeeAbstractSet parent_instance; - GeeAbstractSortedSetPrivate * priv; -}; - -struct _GeeAbstractSortedSetClass { - GeeAbstractSetClass parent_class; - gpointer (*first) (GeeAbstractSortedSet* self); - gpointer (*last) (GeeAbstractSortedSet* self); - GeeIterator* (*iterator_at) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeAbstractSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeAbstractSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeAbstractSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to); - void (*reserved0) (GeeAbstractSortedSet* self); - void (*reserved1) (GeeAbstractSortedSet* self); - void (*reserved2) (GeeAbstractSortedSet* self); - void (*reserved3) (GeeAbstractSortedSet* self); - void (*reserved4) (GeeAbstractSortedSet* self); - void (*reserved5) (GeeAbstractSortedSet* self); - void (*reserved6) (GeeAbstractSortedSet* self); - void (*reserved7) (GeeAbstractSortedSet* self); - void (*reserved8) (GeeAbstractSortedSet* self); - void (*reserved9) (GeeAbstractSortedSet* self); - GeeSortedSet* (*get_read_only_view) (GeeAbstractSortedSet* self); -}; - struct _GeeAbstractSortedSetPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -353,119 +79,62 @@ static gpointer gee_abstract_sorted_set_parent_class = NULL; static GeeSortedSetIface * gee_abstract_sorted_set_gee_sorted_set_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedSet, g_object_unref) -gpointer gee_abstract_sorted_set_first (GeeAbstractSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved0 (GeeAbstractSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved1 (GeeAbstractSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved2 (GeeAbstractSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved3 (GeeAbstractSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved4 (GeeAbstractSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved5 (GeeAbstractSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved6 (GeeAbstractSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved7 (GeeAbstractSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved8 (GeeAbstractSortedSet* self); + G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved9 (GeeAbstractSortedSet* self); static gpointer gee_abstract_sorted_set_real_first (GeeAbstractSortedSet* self); -gpointer gee_abstract_sorted_set_last (GeeAbstractSortedSet* self); static gpointer gee_abstract_sorted_set_real_last (GeeAbstractSortedSet* self); -GeeIterator* gee_abstract_sorted_set_iterator_at (GeeAbstractSortedSet* self, - gconstpointer element); static GeeIterator* gee_abstract_sorted_set_real_iterator_at (GeeAbstractSortedSet* self, gconstpointer element); -gpointer gee_abstract_sorted_set_lower (GeeAbstractSortedSet* self, - gconstpointer element); static gpointer gee_abstract_sorted_set_real_lower (GeeAbstractSortedSet* self, gconstpointer element); -gpointer gee_abstract_sorted_set_higher (GeeAbstractSortedSet* self, - gconstpointer element); static gpointer gee_abstract_sorted_set_real_higher (GeeAbstractSortedSet* self, gconstpointer element); -gpointer gee_abstract_sorted_set_floor (GeeAbstractSortedSet* self, - gconstpointer element); static gpointer gee_abstract_sorted_set_real_floor (GeeAbstractSortedSet* self, gconstpointer element); -gpointer gee_abstract_sorted_set_ceil (GeeAbstractSortedSet* self, - gconstpointer element); static gpointer gee_abstract_sorted_set_real_ceil (GeeAbstractSortedSet* self, gconstpointer element); -GeeSortedSet* gee_abstract_sorted_set_head_set (GeeAbstractSortedSet* self, - gconstpointer before); static GeeSortedSet* gee_abstract_sorted_set_real_head_set (GeeAbstractSortedSet* self, gconstpointer before); -GeeSortedSet* gee_abstract_sorted_set_tail_set (GeeAbstractSortedSet* self, - gconstpointer after); static GeeSortedSet* gee_abstract_sorted_set_real_tail_set (GeeAbstractSortedSet* self, gconstpointer after); -GeeSortedSet* gee_abstract_sorted_set_sub_set (GeeAbstractSortedSet* self, - gconstpointer from, - gconstpointer to); static GeeSortedSet* gee_abstract_sorted_set_real_sub_set (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to); -G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved0 (GeeAbstractSortedSet* self); static void gee_abstract_sorted_set_real_reserved0 (GeeAbstractSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved1 (GeeAbstractSortedSet* self); static void gee_abstract_sorted_set_real_reserved1 (GeeAbstractSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved2 (GeeAbstractSortedSet* self); static void gee_abstract_sorted_set_real_reserved2 (GeeAbstractSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved3 (GeeAbstractSortedSet* self); static void gee_abstract_sorted_set_real_reserved3 (GeeAbstractSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved4 (GeeAbstractSortedSet* self); static void gee_abstract_sorted_set_real_reserved4 (GeeAbstractSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved5 (GeeAbstractSortedSet* self); static void gee_abstract_sorted_set_real_reserved5 (GeeAbstractSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved6 (GeeAbstractSortedSet* self); static void gee_abstract_sorted_set_real_reserved6 (GeeAbstractSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved7 (GeeAbstractSortedSet* self); static void gee_abstract_sorted_set_real_reserved7 (GeeAbstractSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved8 (GeeAbstractSortedSet* self); static void gee_abstract_sorted_set_real_reserved8 (GeeAbstractSortedSet* self); -G_GNUC_INTERNAL void gee_abstract_sorted_set_reserved9 (GeeAbstractSortedSet* self); static void gee_abstract_sorted_set_real_reserved9 (GeeAbstractSortedSet* self); -GeeAbstractSortedSet* gee_abstract_sorted_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeAbstractSet* gee_abstract_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeSortedSet* gee_abstract_sorted_set_get_read_only_view (GeeAbstractSortedSet* self); -G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSortedSet* set); -G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSortedSet* set); -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySet, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySortedSet, g_object_unref) + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GObject * gee_abstract_sorted_set_constructor (GType type, guint n_construct_properties, GObjectConstructParam * construct_properties); static void gee_abstract_sorted_set_finalize (GObject * obj); +static GType gee_abstract_sorted_set_get_type_once (void); static void _vala_gee_abstract_sorted_set_get_property (GObject * object, guint property_id, GValue * value, @@ -494,8 +163,13 @@ gpointer gee_abstract_sorted_set_first (GeeAbstractSortedSet* self) { + GeeAbstractSortedSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->first (self); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->first) { + return _klass_->first (self); + } + return NULL; } /** @@ -511,8 +185,13 @@ gpointer gee_abstract_sorted_set_last (GeeAbstractSortedSet* self) { + GeeAbstractSortedSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->last (self); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->last) { + return _klass_->last (self); + } + return NULL; } /** @@ -530,8 +209,13 @@ gee_abstract_sorted_set_iterator_at (GeeAbstractSortedSet* self, gconstpointer element) { + GeeAbstractSortedSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->iterator_at (self, element); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->iterator_at) { + return _klass_->iterator_at (self, element); + } + return NULL; } /** @@ -549,8 +233,13 @@ gee_abstract_sorted_set_lower (GeeAbstractSortedSet* self, gconstpointer element) { + GeeAbstractSortedSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->lower (self, element); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->lower) { + return _klass_->lower (self, element); + } + return NULL; } /** @@ -568,8 +257,13 @@ gee_abstract_sorted_set_higher (GeeAbstractSortedSet* self, gconstpointer element) { + GeeAbstractSortedSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->higher (self, element); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->higher) { + return _klass_->higher (self, element); + } + return NULL; } /** @@ -587,8 +281,13 @@ gee_abstract_sorted_set_floor (GeeAbstractSortedSet* self, gconstpointer element) { + GeeAbstractSortedSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->floor (self, element); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->floor) { + return _klass_->floor (self, element); + } + return NULL; } /** @@ -606,8 +305,13 @@ gee_abstract_sorted_set_ceil (GeeAbstractSortedSet* self, gconstpointer element) { + GeeAbstractSortedSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->ceil (self, element); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->ceil) { + return _klass_->ceil (self, element); + } + return NULL; } /** @@ -625,8 +329,13 @@ gee_abstract_sorted_set_head_set (GeeAbstractSortedSet* self, gconstpointer before) { + GeeAbstractSortedSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->head_set (self, before); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->head_set) { + return _klass_->head_set (self, before); + } + return NULL; } /** @@ -644,8 +353,13 @@ gee_abstract_sorted_set_tail_set (GeeAbstractSortedSet* self, gconstpointer after) { + GeeAbstractSortedSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->tail_set (self, after); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->tail_set) { + return _klass_->tail_set (self, after); + } + return NULL; } /** @@ -665,8 +379,13 @@ gconstpointer from, gconstpointer to) { + GeeAbstractSortedSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->sub_set (self, from, to); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->sub_set) { + return _klass_->sub_set (self, from, to); + } + return NULL; } static void @@ -677,8 +396,12 @@ void gee_abstract_sorted_set_reserved0 (GeeAbstractSortedSet* self) { + GeeAbstractSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved0 (self); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved0) { + _klass_->reserved0 (self); + } } static void @@ -689,8 +412,12 @@ void gee_abstract_sorted_set_reserved1 (GeeAbstractSortedSet* self) { + GeeAbstractSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved1 (self); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved1) { + _klass_->reserved1 (self); + } } static void @@ -701,8 +428,12 @@ void gee_abstract_sorted_set_reserved2 (GeeAbstractSortedSet* self) { + GeeAbstractSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved2 (self); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved2) { + _klass_->reserved2 (self); + } } static void @@ -713,8 +444,12 @@ void gee_abstract_sorted_set_reserved3 (GeeAbstractSortedSet* self) { + GeeAbstractSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved3 (self); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved3) { + _klass_->reserved3 (self); + } } static void @@ -725,8 +460,12 @@ void gee_abstract_sorted_set_reserved4 (GeeAbstractSortedSet* self) { + GeeAbstractSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved4 (self); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved4) { + _klass_->reserved4 (self); + } } static void @@ -737,8 +476,12 @@ void gee_abstract_sorted_set_reserved5 (GeeAbstractSortedSet* self) { + GeeAbstractSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved5 (self); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved5) { + _klass_->reserved5 (self); + } } static void @@ -749,8 +492,12 @@ void gee_abstract_sorted_set_reserved6 (GeeAbstractSortedSet* self) { + GeeAbstractSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved6 (self); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved6) { + _klass_->reserved6 (self); + } } static void @@ -761,8 +508,12 @@ void gee_abstract_sorted_set_reserved7 (GeeAbstractSortedSet* self) { + GeeAbstractSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved7 (self); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved7) { + _klass_->reserved7 (self); + } } static void @@ -773,8 +524,12 @@ void gee_abstract_sorted_set_reserved8 (GeeAbstractSortedSet* self) { + GeeAbstractSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved8 (self); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved8) { + _klass_->reserved8 (self); + } } static void @@ -785,8 +540,12 @@ void gee_abstract_sorted_set_reserved9 (GeeAbstractSortedSet* self) { + GeeAbstractSortedSetClass* _klass_; g_return_if_fail (self != NULL); - GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->reserved9 (self); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->reserved9) { + _klass_->reserved9 (self); + } } GeeAbstractSortedSet* @@ -806,8 +565,13 @@ GeeSortedSet* gee_abstract_sorted_set_get_read_only_view (GeeAbstractSortedSet* self) { + GeeAbstractSortedSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ABSTRACT_SORTED_SET_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_ABSTRACT_SORTED_SET_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static GeeSortedSet* @@ -953,17 +717,25 @@ * * @see TreeSet */ +static GType +gee_abstract_sorted_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractSortedSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_sorted_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractSortedSet), 0, (GInstanceInitFunc) gee_abstract_sorted_set_instance_init, NULL }; + static const GInterfaceInfo gee_sorted_set_info = { (GInterfaceInitFunc) gee_abstract_sorted_set_gee_sorted_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_abstract_sorted_set_type_id; + gee_abstract_sorted_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SET, "GeeAbstractSortedSet", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + g_type_add_interface_static (gee_abstract_sorted_set_type_id, GEE_TYPE_SORTED_SET, &gee_sorted_set_info); + GeeAbstractSortedSet_private_offset = g_type_add_instance_private (gee_abstract_sorted_set_type_id, sizeof (GeeAbstractSortedSetPrivate)); + return gee_abstract_sorted_set_type_id; +} + GType gee_abstract_sorted_set_get_type (void) { static volatile gsize gee_abstract_sorted_set_type_id__volatile = 0; if (g_once_init_enter (&gee_abstract_sorted_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeAbstractSortedSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_abstract_sorted_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeAbstractSortedSet), 0, (GInstanceInitFunc) gee_abstract_sorted_set_instance_init, NULL }; - static const GInterfaceInfo gee_sorted_set_info = { (GInterfaceInitFunc) gee_abstract_sorted_set_gee_sorted_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_abstract_sorted_set_type_id; - gee_abstract_sorted_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SET, "GeeAbstractSortedSet", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - g_type_add_interface_static (gee_abstract_sorted_set_type_id, GEE_TYPE_SORTED_SET, &gee_sorted_set_info); - GeeAbstractSortedSet_private_offset = g_type_add_instance_private (gee_abstract_sorted_set_type_id, sizeof (GeeAbstractSortedSetPrivate)); + gee_abstract_sorted_set_type_id = gee_abstract_sorted_set_get_type_once (); g_once_init_leave (&gee_abstract_sorted_set_type_id__volatile, gee_abstract_sorted_set_type_id); } return gee_abstract_sorted_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/arraylist.c libgee-0.8-0.20.4/gee/arraylist.c --- libgee-0.8-0.20.3/gee/arraylist.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/arraylist.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* arraylist.c generated by valac 0.46.6, the Vala compiler +/* arraylist.c generated by valac 0.52.0, the Vala compiler * generated from arraylist.vala, do not modify */ /* arraylist.vala @@ -28,152 +28,13 @@ * Didier 'Ptitjes Villevalois */ +#include "gee.h" #include #include #include #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_LIST (gee_list_get_type ()) -#define GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST, GeeList)) -#define GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST)) -#define GEE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST, GeeListIface)) - -typedef struct _GeeList GeeList; -typedef struct _GeeListIface GeeListIface; - -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; - -#define GEE_TYPE_ABSTRACT_LIST (gee_abstract_list_get_type ()) -#define GEE_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractList)) -#define GEE_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) -#define GEE_IS_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_IS_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_ABSTRACT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) - -typedef struct _GeeAbstractList GeeAbstractList; -typedef struct _GeeAbstractListClass GeeAbstractListClass; -typedef struct _GeeAbstractListPrivate GeeAbstractListPrivate; - -#define GEE_TYPE_BIDIR_LIST (gee_bidir_list_get_type ()) -#define GEE_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirList)) -#define GEE_IS_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST)) -#define GEE_BIDIR_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirListIface)) - -typedef struct _GeeBidirList GeeBidirList; -typedef struct _GeeBidirListIface GeeBidirListIface; - -#define GEE_TYPE_BIDIR_LIST_ITERATOR (gee_bidir_list_iterator_get_type ()) -#define GEE_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIterator)) -#define GEE_IS_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR)) -#define GEE_BIDIR_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIteratorIface)) - -typedef struct _GeeBidirListIterator GeeBidirListIterator; -typedef struct _GeeBidirListIteratorIface GeeBidirListIteratorIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; - -#define GEE_TYPE_ABSTRACT_BIDIR_LIST (gee_abstract_bidir_list_get_type ()) -#define GEE_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirList)) -#define GEE_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) -#define GEE_IS_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_IS_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_ABSTRACT_BIDIR_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) - -typedef struct _GeeAbstractBidirList GeeAbstractBidirList; -typedef struct _GeeAbstractBidirListClass GeeAbstractBidirListClass; -typedef struct _GeeAbstractBidirListPrivate GeeAbstractBidirListPrivate; - -#define GEE_TYPE_ARRAY_LIST (gee_array_list_get_type ()) -#define GEE_ARRAY_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ARRAY_LIST, GeeArrayList)) -#define GEE_ARRAY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ARRAY_LIST, GeeArrayListClass)) -#define GEE_IS_ARRAY_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ARRAY_LIST)) -#define GEE_IS_ARRAY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ARRAY_LIST)) -#define GEE_ARRAY_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ARRAY_LIST, GeeArrayListClass)) - -typedef struct _GeeArrayList GeeArrayList; -typedef struct _GeeArrayListClass GeeArrayListClass; -typedef struct _GeeArrayListPrivate GeeArrayListPrivate; - #define GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE (gee_functions_equal_data_func_closure_get_type ()) #define GEE_FUNCTIONS_EQUAL_DATA_FUNC_CLOSURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE, GeeFunctionsEqualDataFuncClosure)) #define GEE_FUNCTIONS_EQUAL_DATA_FUNC_CLOSURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE, GeeFunctionsEqualDataFuncClosureClass)) @@ -194,7 +55,6 @@ }; static GParamSpec* gee_array_list_properties[GEE_ARRAY_LIST_NUM_PROPERTIES]; #define _gee_functions_equal_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_equal_data_func_closure_unref (var), NULL))) -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); #define GEE_ARRAY_LIST_TYPE_ITERATOR (gee_array_list_iterator_get_type ()) #define GEE_ARRAY_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_ARRAY_LIST_TYPE_ITERATOR, GeeArrayListIterator)) @@ -205,8 +65,6 @@ typedef struct _GeeArrayListIterator GeeArrayListIterator; typedef struct _GeeArrayListIteratorClass GeeArrayListIteratorClass; -#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL))) typedef struct _GeeFunctionsEqualDataFuncClosurePrivate GeeFunctionsEqualDataFuncClosurePrivate; typedef struct _GeeArrayListIteratorPrivate GeeArrayListIteratorPrivate; enum { @@ -219,221 +77,12 @@ GEE_ARRAY_LIST_ITERATOR_NUM_PROPERTIES }; static GParamSpec* gee_array_list_iterator_properties[GEE_ARRAY_LIST_ITERATOR_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -struct _GeeListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeList* self); - GDestroyNotify (*get_g_destroy_func) (GeeList* self); - GeeListIterator* (*list_iterator) (GeeList* self); - gpointer (*get) (GeeList* self, gint index); - void (*set) (GeeList* self, gint index, gconstpointer item); - gint (*index_of) (GeeList* self, gconstpointer item); - void (*insert) (GeeList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeList* self, gint index); - GeeList* (*slice) (GeeList* self, gint start, gint stop); - gpointer (*first) (GeeList* self); - gpointer (*last) (GeeList* self); - void (*insert_all) (GeeList* self, gint index, GeeCollection* collection); - void (*sort) (GeeList* self, GCompareDataFunc compare_func, gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify); - GeeList* (*get_read_only_view) (GeeList* self); -}; - -struct _GeeAbstractList { - GeeAbstractCollection parent_instance; - GeeAbstractListPrivate * priv; -}; - -struct _GeeAbstractListClass { - GeeAbstractCollectionClass parent_class; - GeeListIterator* (*list_iterator) (GeeAbstractList* self); - gpointer (*get) (GeeAbstractList* self, gint index); - void (*set) (GeeAbstractList* self, gint index, gconstpointer item); - gint (*index_of) (GeeAbstractList* self, gconstpointer item); - void (*insert) (GeeAbstractList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeAbstractList* self, gint index); - GeeList* (*slice) (GeeAbstractList* self, gint start, gint stop); - void (*reserved0) (GeeAbstractList* self); - void (*reserved1) (GeeAbstractList* self); - void (*reserved2) (GeeAbstractList* self); - void (*reserved3) (GeeAbstractList* self); - void (*reserved4) (GeeAbstractList* self); - void (*reserved5) (GeeAbstractList* self); - void (*reserved6) (GeeAbstractList* self); - void (*reserved7) (GeeAbstractList* self); - void (*reserved8) (GeeAbstractList* self); - void (*reserved9) (GeeAbstractList* self); - GeeList* (*get_read_only_view) (GeeAbstractList* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirListIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirListIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirListIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirListIterator* self); - void (*insert) (GeeBidirListIterator* self, gconstpointer item); -}; - -struct _GeeBidirListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirList* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirList* self); - GeeBidirListIterator* (*bidir_list_iterator) (GeeBidirList* self); - GeeBidirList* (*get_read_only_view) (GeeBidirList* self); -}; - -struct _GeeAbstractBidirList { - GeeAbstractList parent_instance; - GeeAbstractBidirListPrivate * priv; -}; - -struct _GeeAbstractBidirListClass { - GeeAbstractListClass parent_class; - GeeBidirListIterator* (*bidir_list_iterator) (GeeAbstractBidirList* self); - void (*reserved0) (GeeAbstractBidirList* self); - void (*reserved1) (GeeAbstractBidirList* self); - void (*reserved2) (GeeAbstractBidirList* self); - void (*reserved3) (GeeAbstractBidirList* self); - void (*reserved4) (GeeAbstractBidirList* self); - void (*reserved5) (GeeAbstractBidirList* self); - void (*reserved6) (GeeAbstractBidirList* self); - void (*reserved7) (GeeAbstractBidirList* self); - void (*reserved8) (GeeAbstractBidirList* self); - void (*reserved9) (GeeAbstractBidirList* self); - GeeBidirList* (*get_read_only_view) (GeeAbstractBidirList* self); -}; - -struct _GeeArrayList { - GeeAbstractBidirList parent_instance; - GeeArrayListPrivate * priv; - gpointer* _items; - gint _items_length1; - gint __items_size_; - gint _size; -}; - -struct _GeeArrayListClass { - GeeAbstractBidirListClass parent_class; -}; - struct _GeeArrayListPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -485,113 +134,43 @@ static GeeListIteratorIface * gee_array_list_iterator_gee_list_iterator_parent_iface = NULL; static GeeBidirListIteratorIface * gee_array_list_iterator_gee_bidir_list_iterator_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_get_type (void) G_GNUC_CONST; -GType gee_abstract_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractList, g_object_unref) -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_get_type (void) G_GNUC_CONST; -GType gee_abstract_bidir_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirList, g_object_unref) -GType gee_array_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeArrayList, g_object_unref) -G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsEqualDataFuncClosure, gee_functions_equal_data_func_closure_unref) -GeeArrayList* gee_array_list_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeArrayList* gee_array_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeAbstractBidirList* gee_abstract_bidir_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -GeeArrayList* gee_array_list_new_wrap (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gpointer* items, - gint items_length1, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeArrayList* gee_array_list_construct_wrap (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gpointer* items, - gint items_length1, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); static gpointer* gee_array_list_do_wrap (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gpointer* data, gint data_length1, gint* result_length1); -G_GNUC_INTERNAL GeeArrayList* gee_array_list_new_with_closure (GType g_type, + G_GNUC_INTERNAL GeeArrayList* gee_array_list_new_with_closure (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsEqualDataFuncClosure* equal_func); -G_GNUC_INTERNAL GeeArrayList* gee_array_list_construct_with_closure (GType object_type, + G_GNUC_INTERNAL GeeArrayList* gee_array_list_construct_with_closure (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -609,18 +188,13 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeArrayList* list); -static GType gee_array_list_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeArrayListIterator, g_object_unref) +static GType gee_array_list_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeListIterator* gee_array_list_real_list_iterator (GeeAbstractList* base); static GeeBidirListIterator* gee_array_list_real_bidir_list_iterator (GeeAbstractBidirList* base); static gboolean gee_array_list_real_contains (GeeAbstractCollection* base, gconstpointer item); -gint gee_abstract_list_index_of (GeeAbstractList* self, - gconstpointer item); static gint gee_array_list_real_index_of (GeeAbstractList* base, gconstpointer item); -GeeEqualDataFunc gee_array_list_get_equal_func (GeeArrayList* self, - gpointer* result_target); static gpointer gee_array_list_real_get (GeeAbstractList* base, gint index); static void gee_array_list_real_set (GeeAbstractList* base, @@ -638,25 +212,12 @@ gint delta); static gboolean gee_array_list_real_remove (GeeAbstractCollection* base, gconstpointer item); -gpointer gee_abstract_list_remove_at (GeeAbstractList* self, - gint index); static gpointer gee_array_list_real_remove_at (GeeAbstractList* base, gint index); static void gee_array_list_real_clear (GeeAbstractCollection* base); static GeeList* gee_array_list_real_slice (GeeAbstractList* base, gint start, gint stop); -gboolean gee_abstract_collection_add (GeeAbstractCollection* self, - gconstpointer item); -gpointer gee_abstract_list_get (GeeAbstractList* self, - gint index); -gboolean gee_array_list_add_all (GeeArrayList* self, - GeeCollection* collection); -gboolean gee_collection_get_is_empty (GeeCollection* self); -gint gee_collection_get_size (GeeCollection* self); -gboolean gee_traversable_foreach (GeeTraversable* self, - GeeForallFunc f, - gpointer f_target); static gboolean __lambda47_ (GeeArrayList* self, gpointer item); static gboolean ___lambda47__gee_forall_func (gpointer g, @@ -744,7 +305,6 @@ static gboolean gee_array_list_iterator_real_next (GeeIterator* base); static gboolean gee_array_list_iterator_real_has_next (GeeIterator* base); static gboolean gee_array_list_iterator_real_first (GeeBidirIterator* base); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); static gpointer gee_array_list_iterator_real_get (GeeIterator* base); static void gee_array_list_iterator_real_remove (GeeIterator* base); static gboolean gee_array_list_iterator_real_previous (GeeBidirIterator* base); @@ -754,9 +314,6 @@ gconstpointer item); static void gee_array_list_iterator_real_insert (GeeBidirListIterator* base, gconstpointer item); -void gee_abstract_list_insert (GeeAbstractList* self, - gint index, - gconstpointer item); static void gee_array_list_iterator_real_add (GeeListIterator* base, gconstpointer item); static gint gee_array_list_iterator_real_index (GeeListIterator* base); @@ -767,8 +324,7 @@ guint forks, gint* result_length1); static void gee_array_list_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_read_only (GeeIterator* self); -gboolean gee_iterator_get_valid (GeeIterator* self); +static GType gee_array_list_iterator_get_type_once (void); static void _vala_gee_array_list_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -778,7 +334,7 @@ const GValue * value, GParamSpec * pspec); static void gee_array_list_finalize (GObject * obj); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); +static GType gee_array_list_get_type_once (void); static void _vala_gee_array_list_get_property (GObject * object, guint property_id, GValue * value, @@ -833,7 +389,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; if (equal_func == NULL) { - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GeeEqualDataFunc _tmp2_; _tmp2_ = gee_functions_get_equal_func_for (g_type, &_tmp0_, &_tmp1_); @@ -912,7 +468,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; if (equal_func == NULL) { - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GeeEqualDataFunc _tmp2_; _tmp2_ = gee_functions_get_equal_func_for (g_type, &_tmp0_, &_tmp1_); @@ -970,7 +526,7 @@ return self ? gee_functions_equal_data_func_closure_ref (self) : NULL; } -G_GNUC_INTERNAL GeeArrayList* + G_GNUC_INTERNAL GeeArrayList* gee_array_list_construct_with_closure (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -998,7 +554,7 @@ return self; } -G_GNUC_INTERNAL GeeArrayList* + G_GNUC_INTERNAL GeeArrayList* gee_array_list_new_with_closure (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -1221,8 +777,9 @@ gpointer* _tmp1_; gint _tmp1__length1; gint _tmp2_; - gpointer _tmp3_; - gint _tmp4_; + gconstpointer _tmp3_; + gpointer _tmp4_; + gint _tmp5_; gboolean result = FALSE; self = (GeeArrayList*) base; _tmp0_ = self->_items; @@ -1234,11 +791,12 @@ _tmp1__length1 = self->_items_length1; _tmp2_ = self->_size; self->_size = _tmp2_ + 1; - _tmp3_ = ((item != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) item) : ((gpointer) item); + _tmp3_ = item; + _tmp4_ = ((_tmp3_ != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) _tmp3_) : ((gpointer) _tmp3_); ((_tmp1_[_tmp2_] == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp1_[_tmp2_] = (self->priv->g_destroy_func (_tmp1_[_tmp2_]), NULL)); - _tmp1_[_tmp2_] = _tmp3_; - _tmp4_ = self->priv->_stamp; - self->priv->_stamp = _tmp4_ + 1; + _tmp1_[_tmp2_] = _tmp4_; + _tmp5_ = self->priv->_stamp; + self->priv->_stamp = _tmp5_ + 1; result = TRUE; return result; } @@ -1469,15 +1027,17 @@ gpointer* _tmp0_; gint _tmp0__length1; gint _tmp1_; - gpointer _tmp2_; + gconstpointer _tmp2_; + gpointer _tmp3_; gboolean result = FALSE; _tmp0_ = self->_items; _tmp0__length1 = self->_items_length1; _tmp1_ = self->_size; self->_size = _tmp1_ + 1; - _tmp2_ = ((item != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) item) : ((gpointer) item); + _tmp2_ = item; + _tmp3_ = ((_tmp2_ != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) _tmp2_) : ((gpointer) _tmp2_); ((_tmp0_[_tmp1_] == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp0_[_tmp1_] = (self->priv->g_destroy_func (_tmp0_[_tmp1_]), NULL)); - _tmp0_[_tmp1_] = _tmp2_; + _tmp0_[_tmp1_] = _tmp3_; result = TRUE; ((item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (item = (self->priv->g_destroy_func (item), NULL)); return result; @@ -1803,7 +1363,6 @@ } } } - data = (_vala_array_free (data, data_length1, (GDestroyNotify) g_destroy_func), NULL); } static gpointer* @@ -1849,7 +1408,7 @@ _tmp3__length1 = arr_length1; _tmp4_ = data[i]; _tmp5_ = ((_tmp4_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_); - _g_destroy_func0 (_tmp3_[i]); + ((_tmp3_[i] == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp3_[i] = (g_destroy_func (_tmp3_[i]), NULL)); _tmp3_[i] = _tmp5_; } } @@ -1906,7 +1465,7 @@ _tmp3__length1 = arr_length1; _tmp4_ = data[i]; _tmp5_ = ((_tmp4_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_); - _g_destroy_func0 (_tmp3_[i]); + ((_tmp3_[i] == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp3_[i] = (g_destroy_func (_tmp3_[i]), NULL)); _tmp3_[i] = _tmp5_; } } @@ -1963,7 +1522,7 @@ _tmp3__length1 = arr_length1; _tmp4_ = data[i]; _tmp5_ = ((_tmp4_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_); - _g_destroy_func0 (_tmp3_[i]); + ((_tmp3_[i] == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp3_[i] = (g_destroy_func (_tmp3_[i]), NULL)); _tmp3_[i] = _tmp5_; } } @@ -2020,7 +1579,7 @@ _tmp3__length1 = arr_length1; _tmp4_ = data[i]; _tmp5_ = ((_tmp4_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_); - _g_destroy_func0 (_tmp3_[i]); + ((_tmp3_[i] == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp3_[i] = (g_destroy_func (_tmp3_[i]), NULL)); _tmp3_[i] = _tmp5_; } } @@ -2077,7 +1636,7 @@ _tmp3__length1 = arr_length1; _tmp4_ = data[i]; _tmp5_ = ((_tmp4_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_); - _g_destroy_func0 (_tmp3_[i]); + ((_tmp3_[i] == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp3_[i] = (g_destroy_func (_tmp3_[i]), NULL)); _tmp3_[i] = _tmp5_; } } @@ -2134,7 +1693,7 @@ _tmp3__length1 = arr_length1; _tmp4_ = data[i]; _tmp5_ = ((_tmp4_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_); - _g_destroy_func0 (_tmp3_[i]); + ((_tmp3_[i] == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp3_[i] = (g_destroy_func (_tmp3_[i]), NULL)); _tmp3_[i] = _tmp5_; } } @@ -2191,7 +1750,7 @@ _tmp3__length1 = arr_length1; _tmp4_ = data[i]; _tmp5_ = ((_tmp4_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_); - _g_destroy_func0 (_tmp3_[i]); + ((_tmp3_[i] == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp3_[i] = (g_destroy_func (_tmp3_[i]), NULL)); _tmp3_[i] = _tmp5_; } } @@ -2248,7 +1807,7 @@ _tmp3__length1 = arr_length1; _tmp4_ = data[i]; _tmp5_ = ((_tmp4_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_); - _g_destroy_func0 (_tmp3_[i]); + ((_tmp3_[i] == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp3_[i] = (g_destroy_func (_tmp3_[i]), NULL)); _tmp3_[i] = _tmp5_; } } @@ -2305,7 +1864,7 @@ _tmp3__length1 = arr_length1; _tmp4_ = data[i]; _tmp5_ = ((_tmp4_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_); - _g_destroy_func0 (_tmp3_[i]); + ((_tmp3_[i] == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp3_[i] = (g_destroy_func (_tmp3_[i]), NULL)); _tmp3_[i] = _tmp5_; } } @@ -2362,7 +1921,7 @@ _tmp3__length1 = arr_length1; _tmp4_ = data[i]; _tmp5_ = ((_tmp4_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_); - _g_destroy_func0 (_tmp3_[i]); + ((_tmp3_[i] == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp3_[i] = (g_destroy_func (_tmp3_[i]), NULL)); _tmp3_[i] = _tmp5_; } } @@ -2419,7 +1978,7 @@ _tmp3__length1 = arr_length1; _tmp4_ = data[i]; _tmp5_ = ((_tmp4_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_); - _g_destroy_func0 (_tmp3_[i]); + ((_tmp3_[i] == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp3_[i] = (g_destroy_func (_tmp3_[i]), NULL)); _tmp3_[i] = _tmp5_; } } @@ -2779,7 +2338,7 @@ gint _tmp3__length1; gpointer _tmp4_; GeeArrayList* _tmp5_; - GeeArrayList* _tmp6_; + gint _tmp6_; self = (GeeArrayListIterator*) base; _tmp0_ = self->_list; _vala_assert (self->_stamp == _tmp0_->priv->_stamp, "_stamp == _list._stamp"); @@ -2794,9 +2353,9 @@ ((_tmp3_[self->_index] == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp3_[self->_index] = (self->priv->g_destroy_func (_tmp3_[self->_index]), NULL)); _tmp3_[self->_index] = _tmp4_; _tmp5_ = self->_list; - _tmp6_ = self->_list; - _tmp6_->priv->_stamp = _tmp6_->priv->_stamp + 1; - self->_stamp = _tmp6_->priv->_stamp; + _tmp5_->priv->_stamp = _tmp5_->priv->_stamp + 1; + _tmp6_ = _tmp5_->priv->_stamp; + self->_stamp = _tmp6_; } static void @@ -3188,24 +2747,32 @@ } static GType +gee_array_list_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeArrayListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_array_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeArrayListIterator), 0, (GInstanceInitFunc) gee_array_list_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_array_list_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_array_list_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_array_list_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_list_iterator_info = { (GInterfaceInitFunc) gee_array_list_iterator_gee_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_list_iterator_info = { (GInterfaceInitFunc) gee_array_list_iterator_gee_bidir_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_array_list_iterator_type_id; + gee_array_list_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeArrayListIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_array_list_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_array_list_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + g_type_add_interface_static (gee_array_list_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); + g_type_add_interface_static (gee_array_list_iterator_type_id, GEE_TYPE_LIST_ITERATOR, &gee_list_iterator_info); + g_type_add_interface_static (gee_array_list_iterator_type_id, GEE_TYPE_BIDIR_LIST_ITERATOR, &gee_bidir_list_iterator_info); + GeeArrayListIterator_private_offset = g_type_add_instance_private (gee_array_list_iterator_type_id, sizeof (GeeArrayListIteratorPrivate)); + return gee_array_list_iterator_type_id; +} + +static GType gee_array_list_iterator_get_type (void) { static volatile gsize gee_array_list_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_array_list_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeArrayListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_array_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeArrayListIterator), 0, (GInstanceInitFunc) gee_array_list_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_array_list_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_array_list_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_array_list_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_list_iterator_info = { (GInterfaceInitFunc) gee_array_list_iterator_gee_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_list_iterator_info = { (GInterfaceInitFunc) gee_array_list_iterator_gee_bidir_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_array_list_iterator_type_id; - gee_array_list_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeArrayListIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_array_list_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_array_list_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - g_type_add_interface_static (gee_array_list_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); - g_type_add_interface_static (gee_array_list_iterator_type_id, GEE_TYPE_LIST_ITERATOR, &gee_list_iterator_info); - g_type_add_interface_static (gee_array_list_iterator_type_id, GEE_TYPE_BIDIR_LIST_ITERATOR, &gee_bidir_list_iterator_info); - GeeArrayListIterator_private_offset = g_type_add_instance_private (gee_array_list_iterator_type_id, sizeof (GeeArrayListIteratorPrivate)); + gee_array_list_iterator_type_id = gee_array_list_iterator_get_type_once (); g_once_init_leave (&gee_array_list_iterator_type_id__volatile, gee_array_list_iterator_type_id); } return gee_array_list_iterator_type_id__volatile; @@ -3332,15 +2899,23 @@ * * @see LinkedList */ +static GType +gee_array_list_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeArrayListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_array_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeArrayList), 0, (GInstanceInitFunc) gee_array_list_instance_init, NULL }; + GType gee_array_list_type_id; + gee_array_list_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_LIST, "GeeArrayList", &g_define_type_info, 0); + GeeArrayList_private_offset = g_type_add_instance_private (gee_array_list_type_id, sizeof (GeeArrayListPrivate)); + return gee_array_list_type_id; +} + GType gee_array_list_get_type (void) { static volatile gsize gee_array_list_type_id__volatile = 0; if (g_once_init_enter (&gee_array_list_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeArrayListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_array_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeArrayList), 0, (GInstanceInitFunc) gee_array_list_instance_init, NULL }; GType gee_array_list_type_id; - gee_array_list_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_LIST, "GeeArrayList", &g_define_type_info, 0); - GeeArrayList_private_offset = g_type_add_instance_private (gee_array_list_type_id, sizeof (GeeArrayListPrivate)); + gee_array_list_type_id = gee_array_list_get_type_once (); g_once_init_leave (&gee_array_list_type_id__volatile, gee_array_list_type_id); } return gee_array_list_type_id__volatile; @@ -3406,7 +2981,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/arrayqueue.c libgee-0.8-0.20.4/gee/arrayqueue.c --- libgee-0.8-0.20.3/gee/arrayqueue.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/arrayqueue.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* arrayqueue.c generated by valac 0.46.6, the Vala compiler +/* arrayqueue.c generated by valac 0.52.0, the Vala compiler * generated from arrayqueue.vala, do not modify */ /* arrayqueue.vala @@ -23,115 +23,11 @@ * Maciej Piechotka */ -#include +#include "gee.h" #include +#include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_QUEUE (gee_queue_get_type ()) -#define GEE_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_QUEUE, GeeQueue)) -#define GEE_IS_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_QUEUE)) -#define GEE_QUEUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_QUEUE, GeeQueueIface)) - -typedef struct _GeeQueue GeeQueue; -typedef struct _GeeQueueIface GeeQueueIface; - -#define GEE_TYPE_ABSTRACT_QUEUE (gee_abstract_queue_get_type ()) -#define GEE_ABSTRACT_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueue)) -#define GEE_ABSTRACT_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueueClass)) -#define GEE_IS_ABSTRACT_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_QUEUE)) -#define GEE_IS_ABSTRACT_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_QUEUE)) -#define GEE_ABSTRACT_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueueClass)) - -typedef struct _GeeAbstractQueue GeeAbstractQueue; -typedef struct _GeeAbstractQueueClass GeeAbstractQueueClass; -typedef struct _GeeAbstractQueuePrivate GeeAbstractQueuePrivate; - -#define GEE_TYPE_DEQUE (gee_deque_get_type ()) -#define GEE_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_DEQUE, GeeDeque)) -#define GEE_IS_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_DEQUE)) -#define GEE_DEQUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_DEQUE, GeeDequeIface)) - -typedef struct _GeeDeque GeeDeque; -typedef struct _GeeDequeIface GeeDequeIface; - -#define GEE_TYPE_ARRAY_QUEUE (gee_array_queue_get_type ()) -#define GEE_ARRAY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ARRAY_QUEUE, GeeArrayQueue)) -#define GEE_ARRAY_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ARRAY_QUEUE, GeeArrayQueueClass)) -#define GEE_IS_ARRAY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ARRAY_QUEUE)) -#define GEE_IS_ARRAY_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ARRAY_QUEUE)) -#define GEE_ARRAY_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ARRAY_QUEUE, GeeArrayQueueClass)) - -typedef struct _GeeArrayQueue GeeArrayQueue; -typedef struct _GeeArrayQueueClass GeeArrayQueueClass; -typedef struct _GeeArrayQueuePrivate GeeArrayQueuePrivate; -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); enum { GEE_ARRAY_QUEUE_0_PROPERTY, GEE_ARRAY_QUEUE_G_TYPE, @@ -173,163 +69,6 @@ #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeQueueIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeQueue* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeQueue* self); - GDestroyNotify (*get_g_destroy_func) (GeeQueue* self); - gboolean (*offer) (GeeQueue* self, gconstpointer element); - gpointer (*peek) (GeeQueue* self); - gpointer (*poll) (GeeQueue* self); - gint (*drain) (GeeQueue* self, GeeCollection* recipient, gint amount); - gint (*get_capacity) (GeeQueue* self); - gint (*get_remaining_capacity) (GeeQueue* self); - gboolean (*get_is_full) (GeeQueue* self); -}; - -struct _GeeAbstractQueue { - GeeAbstractCollection parent_instance; - GeeAbstractQueuePrivate * priv; -}; - -struct _GeeAbstractQueueClass { - GeeAbstractCollectionClass parent_class; - gpointer (*peek) (GeeAbstractQueue* self); - gpointer (*poll) (GeeAbstractQueue* self); - void (*reserved0) (GeeAbstractQueue* self); - void (*reserved1) (GeeAbstractQueue* self); - void (*reserved2) (GeeAbstractQueue* self); - void (*reserved3) (GeeAbstractQueue* self); - void (*reserved4) (GeeAbstractQueue* self); - void (*reserved5) (GeeAbstractQueue* self); - void (*reserved6) (GeeAbstractQueue* self); - void (*reserved7) (GeeAbstractQueue* self); - void (*reserved8) (GeeAbstractQueue* self); - void (*reserved9) (GeeAbstractQueue* self); - gint (*get_capacity) (GeeAbstractQueue* self); - gint (*get_remaining_capacity) (GeeAbstractQueue* self); - gboolean (*get_is_full) (GeeAbstractQueue* self); -}; - -struct _GeeDequeIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeDeque* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeDeque* self); - GDestroyNotify (*get_g_destroy_func) (GeeDeque* self); - gboolean (*offer_head) (GeeDeque* self, gconstpointer element); - gpointer (*peek_head) (GeeDeque* self); - gpointer (*poll_head) (GeeDeque* self); - gint (*drain_head) (GeeDeque* self, GeeCollection* recipient, gint amount); - gboolean (*offer_tail) (GeeDeque* self, gconstpointer element); - gpointer (*peek_tail) (GeeDeque* self); - gpointer (*poll_tail) (GeeDeque* self); - gint (*drain_tail) (GeeDeque* self, GeeCollection* recipient, gint amount); -}; - -struct _GeeArrayQueue { - GeeAbstractQueue parent_instance; - GeeArrayQueuePrivate * priv; -}; - -struct _GeeArrayQueueClass { - GeeAbstractQueueClass parent_class; -}; - struct _GeeArrayQueuePrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -372,53 +111,6 @@ static GeeIteratorIface * gee_array_queue_iterator_gee_iterator_parent_iface = NULL; static GeeDequeIface * gee_array_queue_gee_deque_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_queue_get_type (void) G_GNUC_CONST; -GType gee_abstract_queue_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractQueue, g_object_unref) -GType gee_deque_get_type (void) G_GNUC_CONST; -GType gee_array_queue_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeArrayQueue, g_object_unref) -GeeArrayQueue* gee_array_queue_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeArrayQueue* gee_array_queue_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeAbstractQueue* gee_abstract_queue_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); static GeeIterator* gee_array_queue_real_iterator (GeeAbstractCollection* base); static GeeArrayQueueIterator* gee_array_queue_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, @@ -429,12 +121,9 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeArrayQueue* queue); -static GType gee_array_queue_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeArrayQueueIterator, g_object_unref) +static GType gee_array_queue_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_array_queue_real_add (GeeAbstractCollection* base, gconstpointer element); -gboolean gee_deque_offer_tail (GeeDeque* self, - gconstpointer element); static gboolean gee_array_queue_real_contains (GeeAbstractCollection* base, gconstpointer item); static gint gee_array_queue_find_index (GeeArrayQueue* self, @@ -448,9 +137,7 @@ GeeForallFunc f, gpointer f_target); static gpointer gee_array_queue_real_peek (GeeAbstractQueue* base); -gpointer gee_deque_peek_head (GeeDeque* self); static gpointer gee_array_queue_real_poll (GeeAbstractQueue* base); -gpointer gee_deque_poll_head (GeeDeque* self); static gboolean gee_array_queue_real_offer_head (GeeDeque* base, gconstpointer element); static void gee_array_queue_grow_if_needed (GeeArrayQueue* self); @@ -459,9 +146,6 @@ static gint gee_array_queue_real_drain_head (GeeDeque* base, GeeCollection* recipient, gint amount); -gint gee_queue_drain (GeeQueue* self, - GeeCollection* recipient, - gint amount); static gboolean gee_array_queue_real_offer_tail (GeeDeque* base, gconstpointer element); static gpointer gee_array_queue_real_peek_tail (GeeDeque* base); @@ -469,16 +153,9 @@ static gint gee_array_queue_real_drain_tail (GeeDeque* base, GeeCollection* recipient, gint amount); -gpointer gee_deque_poll_tail (GeeDeque* self); -gboolean gee_collection_add (GeeCollection* self, - gconstpointer item); -GeeEqualDataFunc gee_array_queue_get_equal_func (GeeArrayQueue* self, - gpointer* result_target); static void gee_array_queue_set_equal_func (GeeArrayQueue* self, GeeEqualDataFunc value, gpointer value_target); -gboolean gee_array_queue_get_is_empty (GeeArrayQueue* self); -#define GEE_QUEUE_UNBOUNDED_CAPACITY -1 static GeeArrayQueueIterator* gee_array_queue_iterator_new_from_iterator (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -489,19 +166,17 @@ GDestroyNotify g_destroy_func, GeeArrayQueueIterator* iter); static gboolean gee_array_queue_iterator_real_next (GeeIterator* base); -gboolean gee_iterator_has_next (GeeIterator* self); static gboolean gee_array_queue_iterator_real_has_next (GeeIterator* base); static gpointer gee_array_queue_iterator_real_get (GeeIterator* base); static void gee_array_queue_iterator_real_remove (GeeIterator* base); static gboolean gee_array_queue_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, gpointer f_target); -gboolean gee_iterator_get_valid (GeeIterator* self); static GeeIterator** gee_array_queue_iterator_real_tee (GeeTraversable* base, guint forks, gint* result_length1); static void gee_array_queue_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_read_only (GeeIterator* self); +static GType gee_array_queue_iterator_get_type_once (void); static void _vala_gee_array_queue_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -511,11 +186,7 @@ const GValue * value, GParamSpec * pspec); static void gee_array_queue_finalize (GObject * obj); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); -gint gee_abstract_queue_get_capacity (GeeAbstractQueue* self); -gint gee_abstract_queue_get_remaining_capacity (GeeAbstractQueue* self); -gboolean gee_abstract_queue_get_is_full (GeeAbstractQueue* self); +static GType gee_array_queue_get_type_once (void); static void _vala_gee_array_queue_get_property (GObject * object, guint property_id, GValue * value, @@ -569,7 +240,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; if (equal_func == NULL) { - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GeeEqualDataFunc _tmp2_; _tmp2_ = gee_functions_get_equal_func_for (g_type, &_tmp0_, &_tmp1_); @@ -938,24 +609,28 @@ gpointer* _tmp0_; gint _tmp0__length1; gint _tmp1_; - gpointer* _tmp2_; - gint _tmp2__length1; - gpointer _tmp3_; - gint _tmp4_; + gint _tmp2_; + gpointer* _tmp3_; + gint _tmp3__length1; + gconstpointer _tmp4_; + gpointer _tmp5_; + gint _tmp6_; gboolean result = FALSE; self = (GeeArrayQueue*) base; gee_array_queue_grow_if_needed (self); _tmp0_ = self->priv->_items; _tmp0__length1 = self->priv->_items_length1; - _tmp1_ = self->priv->_length; - self->priv->_length = _tmp1_ + 1; - _tmp2_ = self->priv->_items; - _tmp2__length1 = self->priv->_items_length1; - _tmp3_ = ((element != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) element) : ((gpointer) element); - ((_tmp0_[(self->priv->_start + _tmp1_) % _tmp2__length1] == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp0_[(self->priv->_start + _tmp1_) % _tmp2__length1] = (self->priv->g_destroy_func (_tmp0_[(self->priv->_start + _tmp1_) % _tmp2__length1]), NULL)); - _tmp0_[(self->priv->_start + _tmp1_) % _tmp2__length1] = _tmp3_; - _tmp4_ = self->priv->_stamp; - self->priv->_stamp = _tmp4_ + 1; + _tmp1_ = self->priv->_start; + _tmp2_ = self->priv->_length; + self->priv->_length = _tmp2_ + 1; + _tmp3_ = self->priv->_items; + _tmp3__length1 = self->priv->_items_length1; + _tmp4_ = element; + _tmp5_ = ((_tmp4_ != NULL) && (self->priv->g_dup_func != NULL)) ? self->priv->g_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_); + ((_tmp0_[(_tmp1_ + _tmp2_) % _tmp3__length1] == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp0_[(_tmp1_ + _tmp2_) % _tmp3__length1] = (self->priv->g_destroy_func (_tmp0_[(_tmp1_ + _tmp2_) % _tmp3__length1]), NULL)); + _tmp0_[(_tmp1_ + _tmp2_) % _tmp3__length1] = _tmp5_; + _tmp6_ = self->priv->_stamp; + self->priv->_stamp = _tmp6_ + 1; result = TRUE; return result; } @@ -1010,19 +685,23 @@ gint _tmp1__length1; gpointer* _tmp2_; gint _tmp2__length1; - gpointer* _tmp3_; - gint _tmp3__length1; - gpointer _tmp4_; + gint _tmp3_; + gint _tmp4_; + gpointer* _tmp5_; + gint _tmp5__length1; + gpointer _tmp6_; _tmp1_ = self->priv->_items; _tmp1__length1 = self->priv->_items_length1; _tmp2_ = self->priv->_items; _tmp2__length1 = self->priv->_items_length1; + _tmp3_ = self->priv->_start; self->priv->_length = self->priv->_length - 1; - _tmp3_ = self->priv->_items; - _tmp3__length1 = self->priv->_items_length1; - _tmp4_ = _tmp1_[((_tmp2__length1 + self->priv->_start) + self->priv->_length) % _tmp3__length1]; - _tmp1_[((_tmp2__length1 + self->priv->_start) + self->priv->_length) % _tmp3__length1] = NULL; - result = _tmp4_; + _tmp4_ = self->priv->_length; + _tmp5_ = self->priv->_items; + _tmp5__length1 = self->priv->_items_length1; + _tmp6_ = _tmp1_[((_tmp2__length1 + _tmp3_) + _tmp4_) % _tmp5__length1]; + _tmp1_[((_tmp2__length1 + _tmp3_) + _tmp4_) % _tmp5__length1] = NULL; + result = _tmp6_; return result; } } @@ -1046,32 +725,34 @@ while (TRUE) { gboolean _tmp0_ = FALSE; gboolean _tmp1_ = FALSE; - gconstpointer _tmp4_; - gint _tmp5_; + gconstpointer _tmp5_; + gint _tmp6_; if (amount == -1) { _tmp1_ = TRUE; } else { + gint _tmp2_; amount = amount - 1; - _tmp1_ = amount >= 0; + _tmp2_ = amount; + _tmp1_ = _tmp2_ >= 0; } if (_tmp1_) { - gpointer _tmp2_; - gconstpointer _tmp3_; - _tmp2_ = gee_deque_poll_tail ((GeeDeque*) self); + gpointer _tmp3_; + gconstpointer _tmp4_; + _tmp3_ = gee_deque_poll_tail ((GeeDeque*) self); ((item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (item = (self->priv->g_destroy_func (item), NULL)); - item = _tmp2_; - _tmp3_ = item; - _tmp0_ = _tmp3_ != NULL; + item = _tmp3_; + _tmp4_ = item; + _tmp0_ = _tmp4_ != NULL; } else { _tmp0_ = FALSE; } if (!_tmp0_) { break; } - _tmp4_ = item; - gee_collection_add (recipient, _tmp4_); - _tmp5_ = drained; - drained = _tmp5_ + 1; + _tmp5_ = item; + gee_collection_add (recipient, _tmp5_); + _tmp6_ = drained; + drained = _tmp6_ + 1; } result = drained; ((item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (item = (self->priv->g_destroy_func (item), NULL)); @@ -1826,18 +1507,26 @@ } static GType +gee_array_queue_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeArrayQueueIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_array_queue_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeArrayQueueIterator), 0, (GInstanceInitFunc) gee_array_queue_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_array_queue_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_array_queue_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_array_queue_iterator_type_id; + gee_array_queue_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeArrayQueueIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_array_queue_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_array_queue_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeArrayQueueIterator_private_offset = g_type_add_instance_private (gee_array_queue_iterator_type_id, sizeof (GeeArrayQueueIteratorPrivate)); + return gee_array_queue_iterator_type_id; +} + +static GType gee_array_queue_iterator_get_type (void) { static volatile gsize gee_array_queue_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_array_queue_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeArrayQueueIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_array_queue_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeArrayQueueIterator), 0, (GInstanceInitFunc) gee_array_queue_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_array_queue_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_array_queue_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_array_queue_iterator_type_id; - gee_array_queue_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeArrayQueueIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_array_queue_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_array_queue_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeArrayQueueIterator_private_offset = g_type_add_instance_private (gee_array_queue_iterator_type_id, sizeof (GeeArrayQueueIteratorPrivate)); + gee_array_queue_iterator_type_id = gee_array_queue_iterator_get_type_once (); g_once_init_leave (&gee_array_queue_iterator_type_id__volatile, gee_array_queue_iterator_type_id); } return gee_array_queue_iterator_type_id__volatile; @@ -2015,17 +1704,25 @@ * * @see LinkedList */ +static GType +gee_array_queue_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeArrayQueueClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_array_queue_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeArrayQueue), 0, (GInstanceInitFunc) gee_array_queue_instance_init, NULL }; + static const GInterfaceInfo gee_deque_info = { (GInterfaceInitFunc) gee_array_queue_gee_deque_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_array_queue_type_id; + gee_array_queue_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_QUEUE, "GeeArrayQueue", &g_define_type_info, 0); + g_type_add_interface_static (gee_array_queue_type_id, GEE_TYPE_DEQUE, &gee_deque_info); + GeeArrayQueue_private_offset = g_type_add_instance_private (gee_array_queue_type_id, sizeof (GeeArrayQueuePrivate)); + return gee_array_queue_type_id; +} + GType gee_array_queue_get_type (void) { static volatile gsize gee_array_queue_type_id__volatile = 0; if (g_once_init_enter (&gee_array_queue_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeArrayQueueClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_array_queue_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeArrayQueue), 0, (GInstanceInitFunc) gee_array_queue_instance_init, NULL }; - static const GInterfaceInfo gee_deque_info = { (GInterfaceInitFunc) gee_array_queue_gee_deque_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_array_queue_type_id; - gee_array_queue_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_QUEUE, "GeeArrayQueue", &g_define_type_info, 0); - g_type_add_interface_static (gee_array_queue_type_id, GEE_TYPE_DEQUE, &gee_deque_info); - GeeArrayQueue_private_offset = g_type_add_instance_private (gee_array_queue_type_id, sizeof (GeeArrayQueuePrivate)); + gee_array_queue_type_id = gee_array_queue_get_type_once (); g_once_init_leave (&gee_array_queue_type_id__volatile, gee_array_queue_type_id); } return gee_array_queue_type_id__volatile; @@ -2103,7 +1800,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/assemblyinfo.c libgee-0.8-0.20.4/gee/assemblyinfo.c --- libgee-0.8-0.20.3/gee/assemblyinfo.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/assemblyinfo.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* assemblyinfo.c generated by valac 0.46.6, the Vala compiler +/* assemblyinfo.c generated by valac 0.52.0, the Vala compiler * generated from assemblyinfo.vala, do not modify */ /* functions.vala diff -Nru libgee-0.8-0.20.3/gee/bidiriterator.c libgee-0.8-0.20.4/gee/bidiriterator.c --- libgee-0.8-0.20.3/gee/bidiriterator.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/bidiriterator.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* bidiriterator.c generated by valac 0.46.6, the Vala compiler +/* bidiriterator.c generated by valac 0.52.0, the Vala compiler * generated from bidiriterator.vala, do not modify */ /* bidiriterator.vala @@ -23,123 +23,11 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -gboolean gee_bidir_iterator_previous (GeeBidirIterator* self); -gboolean gee_bidir_iterator_has_previous (GeeBidirIterator* self); -gboolean gee_bidir_iterator_first (GeeBidirIterator* self); -gboolean gee_bidir_iterator_last (GeeBidirIterator* self); +static GType gee_bidir_iterator_get_type_once (void); /** * Rewinds to the previous element in the iteration. @@ -149,8 +37,13 @@ gboolean gee_bidir_iterator_previous (GeeBidirIterator* self) { + GeeBidirIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_BIDIR_ITERATOR_GET_INTERFACE (self)->previous (self); + _iface_ = GEE_BIDIR_ITERATOR_GET_INTERFACE (self); + if (_iface_->previous) { + return _iface_->previous (self); + } + return FALSE; } /** @@ -161,8 +54,13 @@ gboolean gee_bidir_iterator_has_previous (GeeBidirIterator* self) { + GeeBidirIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_BIDIR_ITERATOR_GET_INTERFACE (self)->has_previous (self); + _iface_ = GEE_BIDIR_ITERATOR_GET_INTERFACE (self); + if (_iface_->has_previous) { + return _iface_->has_previous (self); + } + return FALSE; } /** @@ -173,8 +71,13 @@ gboolean gee_bidir_iterator_first (GeeBidirIterator* self) { + GeeBidirIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_BIDIR_ITERATOR_GET_INTERFACE (self)->first (self); + _iface_ = GEE_BIDIR_ITERATOR_GET_INTERFACE (self); + if (_iface_->first) { + return _iface_->first (self); + } + return FALSE; } /** @@ -185,8 +88,13 @@ gboolean gee_bidir_iterator_last (GeeBidirIterator* self) { + GeeBidirIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_BIDIR_ITERATOR_GET_INTERFACE (self)->last (self); + _iface_ = GEE_BIDIR_ITERATOR_GET_INTERFACE (self); + if (_iface_->last) { + return _iface_->last (self); + } + return FALSE; } static void @@ -198,15 +106,23 @@ /** * A bi-directional iterator. */ +static GType +gee_bidir_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBidirIteratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_bidir_iterator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_bidir_iterator_type_id; + gee_bidir_iterator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBidirIterator", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_bidir_iterator_type_id, GEE_TYPE_ITERATOR); + return gee_bidir_iterator_type_id; +} + GType gee_bidir_iterator_get_type (void) { static volatile gsize gee_bidir_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_bidir_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBidirIteratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_bidir_iterator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_bidir_iterator_type_id; - gee_bidir_iterator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBidirIterator", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_bidir_iterator_type_id, GEE_TYPE_ITERATOR); + gee_bidir_iterator_type_id = gee_bidir_iterator_get_type_once (); g_once_init_leave (&gee_bidir_iterator_type_id__volatile, gee_bidir_iterator_type_id); } return gee_bidir_iterator_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/bidirlist.c libgee-0.8-0.20.4/gee/bidirlist.c --- libgee-0.8-0.20.3/gee/bidirlist.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/bidirlist.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* bidirlist.c generated by valac 0.46.6, the Vala compiler +/* bidirlist.c generated by valac 0.52.0, the Vala compiler * generated from bidirlist.vala, do not modify */ /* bidirlist.vala @@ -23,252 +23,11 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_BIDIR_LIST (gee_bidir_list_get_type ()) -#define GEE_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirList)) -#define GEE_IS_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST)) -#define GEE_BIDIR_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirListIface)) - -typedef struct _GeeBidirList GeeBidirList; -typedef struct _GeeBidirListIface GeeBidirListIface; - -#define GEE_TYPE_LIST (gee_list_get_type ()) -#define GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST, GeeList)) -#define GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST)) -#define GEE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST, GeeListIface)) - -typedef struct _GeeList GeeList; -typedef struct _GeeListIface GeeListIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; - -#define GEE_TYPE_BIDIR_LIST_ITERATOR (gee_bidir_list_iterator_get_type ()) -#define GEE_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIterator)) -#define GEE_IS_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR)) -#define GEE_BIDIR_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIteratorIface)) - -typedef struct _GeeBidirListIterator GeeBidirListIterator; -typedef struct _GeeBidirListIteratorIface GeeBidirListIteratorIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; - -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -struct _GeeListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeList* self); - GDestroyNotify (*get_g_destroy_func) (GeeList* self); - GeeListIterator* (*list_iterator) (GeeList* self); - gpointer (*get) (GeeList* self, gint index); - void (*set) (GeeList* self, gint index, gconstpointer item); - gint (*index_of) (GeeList* self, gconstpointer item); - void (*insert) (GeeList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeList* self, gint index); - GeeList* (*slice) (GeeList* self, gint start, gint stop); - gpointer (*first) (GeeList* self); - gpointer (*last) (GeeList* self); - void (*insert_all) (GeeList* self, gint index, GeeCollection* collection); - void (*sort) (GeeList* self, GCompareDataFunc compare_func, gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify); - GeeList* (*get_read_only_view) (GeeList* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirListIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirListIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirListIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirListIterator* self); - void (*insert) (GeeBidirListIterator* self, gconstpointer item); -}; - -struct _GeeBidirListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirList* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirList* self); - GeeBidirListIterator* (*bidir_list_iterator) (GeeBidirList* self); - GeeBidirList* (*get_read_only_view) (GeeBidirList* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_get_type (void) G_GNUC_CONST; -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_get_type (void) G_GNUC_CONST; -GeeBidirListIterator* gee_bidir_list_bidir_list_iterator (GeeBidirList* self); -GeeBidirList* gee_bidir_list_get_read_only_view (GeeBidirList* self); +static GType gee_bidir_list_get_type_once (void); /** * Returns a BidirListIterator that can be used for iteration over this list. @@ -278,15 +37,25 @@ GeeBidirListIterator* gee_bidir_list_bidir_list_iterator (GeeBidirList* self) { + GeeBidirListIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_BIDIR_LIST_GET_INTERFACE (self)->bidir_list_iterator (self); + _iface_ = GEE_BIDIR_LIST_GET_INTERFACE (self); + if (_iface_->bidir_list_iterator) { + return _iface_->bidir_list_iterator (self); + } + return NULL; } GeeBidirList* gee_bidir_list_get_read_only_view (GeeBidirList* self) { + GeeBidirListIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_BIDIR_LIST_GET_INTERFACE (self)->get_read_only_view (self); + _iface_ = GEE_BIDIR_LIST_GET_INTERFACE (self); + if (_iface_->get_read_only_view) { + return _iface_->get_read_only_view (self); + } + return NULL; } static void @@ -299,15 +68,23 @@ g_object_interface_install_property (iface, g_param_spec_object ("read-only-view", "read-only-view", "read-only-view", GEE_TYPE_BIDIR_LIST, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); } +static GType +gee_bidir_list_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBidirListIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_bidir_list_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_bidir_list_type_id; + gee_bidir_list_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBidirList", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_bidir_list_type_id, GEE_TYPE_LIST); + return gee_bidir_list_type_id; +} + GType gee_bidir_list_get_type (void) { static volatile gsize gee_bidir_list_type_id__volatile = 0; if (g_once_init_enter (&gee_bidir_list_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBidirListIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_bidir_list_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_bidir_list_type_id; - gee_bidir_list_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBidirList", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_bidir_list_type_id, GEE_TYPE_LIST); + gee_bidir_list_type_id = gee_bidir_list_get_type_once (); g_once_init_leave (&gee_bidir_list_type_id__volatile, gee_bidir_list_type_id); } return gee_bidir_list_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/bidirlistiterator.c libgee-0.8-0.20.4/gee/bidirlistiterator.c --- libgee-0.8-0.20.3/gee/bidirlistiterator.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/bidirlistiterator.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* bidirlistiterator.c generated by valac 0.46.6, the Vala compiler +/* bidirlistiterator.c generated by valac 0.52.0, the Vala compiler * generated from bidirlistiterator.vala, do not modify */ /* bidirlistiterator.vala @@ -23,154 +23,11 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_BIDIR_LIST_ITERATOR (gee_bidir_list_iterator_get_type ()) -#define GEE_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIterator)) -#define GEE_IS_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR)) -#define GEE_BIDIR_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIteratorIface)) - -typedef struct _GeeBidirListIterator GeeBidirListIterator; -typedef struct _GeeBidirListIteratorIface GeeBidirListIteratorIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -struct _GeeBidirListIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirListIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirListIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirListIterator* self); - void (*insert) (GeeBidirListIterator* self, gconstpointer item); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_iterator_get_type (void) G_GNUC_CONST; -void gee_bidir_list_iterator_insert (GeeBidirListIterator* self, - gconstpointer item); +static GType gee_bidir_list_iterator_get_type_once (void); /** * Inserts the specified item before the current item in the iteration. The @@ -184,8 +41,12 @@ gee_bidir_list_iterator_insert (GeeBidirListIterator* self, gconstpointer item) { + GeeBidirListIteratorIface* _iface_; g_return_if_fail (self != NULL); - GEE_BIDIR_LIST_ITERATOR_GET_INTERFACE (self)->insert (self, item); + _iface_ = GEE_BIDIR_LIST_ITERATOR_GET_INTERFACE (self); + if (_iface_->insert) { + _iface_->insert (self, item); + } } static void @@ -194,16 +55,24 @@ { } +static GType +gee_bidir_list_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBidirListIteratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_bidir_list_iterator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_bidir_list_iterator_type_id; + gee_bidir_list_iterator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBidirListIterator", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_bidir_list_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR); + g_type_interface_add_prerequisite (gee_bidir_list_iterator_type_id, GEE_TYPE_LIST_ITERATOR); + return gee_bidir_list_iterator_type_id; +} + GType gee_bidir_list_iterator_get_type (void) { static volatile gsize gee_bidir_list_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_bidir_list_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBidirListIteratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_bidir_list_iterator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_bidir_list_iterator_type_id; - gee_bidir_list_iterator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBidirListIterator", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_bidir_list_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR); - g_type_interface_add_prerequisite (gee_bidir_list_iterator_type_id, GEE_TYPE_LIST_ITERATOR); + gee_bidir_list_iterator_type_id = gee_bidir_list_iterator_get_type_once (); g_once_init_leave (&gee_bidir_list_iterator_type_id__volatile, gee_bidir_list_iterator_type_id); } return gee_bidir_list_iterator_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/bidirmapiterator.c libgee-0.8-0.20.4/gee/bidirmapiterator.c --- libgee-0.8-0.20.3/gee/bidirmapiterator.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/bidirmapiterator.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* bidirmapiterator.c generated by valac 0.46.6, the Vala compiler +/* bidirmapiterator.c generated by valac 0.52.0, the Vala compiler * generated from bidirmapiterator.vala, do not modify */ /* bidiriterator.vala @@ -24,68 +24,11 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_BIDIR_MAP_ITERATOR (gee_bidir_map_iterator_get_type ()) -#define GEE_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIterator)) -#define GEE_IS_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR)) -#define GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIteratorIface)) - -typedef struct _GeeBidirMapIterator GeeBidirMapIterator; -typedef struct _GeeBidirMapIteratorIface GeeBidirMapIteratorIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeBidirMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeBidirMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeBidirMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeBidirMapIterator* self); - GType (*get_v_type) (GeeBidirMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeBidirMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeBidirMapIterator* self); - gboolean (*previous) (GeeBidirMapIterator* self); - gboolean (*has_previous) (GeeBidirMapIterator* self); - gboolean (*first) (GeeBidirMapIterator* self); - gboolean (*last) (GeeBidirMapIterator* self); -}; - -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_map_iterator_get_type (void) G_GNUC_CONST; -gboolean gee_bidir_map_iterator_previous (GeeBidirMapIterator* self); -gboolean gee_bidir_map_iterator_has_previous (GeeBidirMapIterator* self); -gboolean gee_bidir_map_iterator_first (GeeBidirMapIterator* self); -gboolean gee_bidir_map_iterator_last (GeeBidirMapIterator* self); +static GType gee_bidir_map_iterator_get_type_once (void); /** * Rewinds to the previous element in the iteration. @@ -95,8 +38,13 @@ gboolean gee_bidir_map_iterator_previous (GeeBidirMapIterator* self) { + GeeBidirMapIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE (self)->previous (self); + _iface_ = GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->previous) { + return _iface_->previous (self); + } + return FALSE; } /** @@ -107,8 +55,13 @@ gboolean gee_bidir_map_iterator_has_previous (GeeBidirMapIterator* self) { + GeeBidirMapIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE (self)->has_previous (self); + _iface_ = GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->has_previous) { + return _iface_->has_previous (self); + } + return FALSE; } /** @@ -119,8 +72,13 @@ gboolean gee_bidir_map_iterator_first (GeeBidirMapIterator* self) { + GeeBidirMapIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE (self)->first (self); + _iface_ = GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->first) { + return _iface_->first (self); + } + return FALSE; } /** @@ -131,8 +89,13 @@ gboolean gee_bidir_map_iterator_last (GeeBidirMapIterator* self) { + GeeBidirMapIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE (self)->last (self); + _iface_ = GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->last) { + return _iface_->last (self); + } + return FALSE; } static void @@ -144,15 +107,23 @@ /** * A bi-directional Map iterator. */ +static GType +gee_bidir_map_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBidirMapIteratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_bidir_map_iterator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_bidir_map_iterator_type_id; + gee_bidir_map_iterator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBidirMapIterator", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_bidir_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR); + return gee_bidir_map_iterator_type_id; +} + GType gee_bidir_map_iterator_get_type (void) { static volatile gsize gee_bidir_map_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_bidir_map_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBidirMapIteratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_bidir_map_iterator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_bidir_map_iterator_type_id; - gee_bidir_map_iterator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBidirMapIterator", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_bidir_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR); + gee_bidir_map_iterator_type_id = gee_bidir_map_iterator_get_type_once (); g_once_init_leave (&gee_bidir_map_iterator_type_id__volatile, gee_bidir_map_iterator_type_id); } return gee_bidir_map_iterator_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/bidirsortedmap.c libgee-0.8-0.20.4/gee/bidirsortedmap.c --- libgee-0.8-0.20.3/gee/bidirsortedmap.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/bidirsortedmap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* bidirsortedmap.c generated by valac 0.46.6, the Vala compiler +/* bidirsortedmap.c generated by valac 0.52.0, the Vala compiler * generated from bidirsortedmap.vala, do not modify */ /* bidirsortedmap.vala @@ -23,422 +23,13 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_BIDIR_SORTED_MAP (gee_bidir_sorted_map_get_type ()) -#define GEE_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMap)) -#define GEE_IS_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_MAP)) -#define GEE_BIDIR_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMapIface)) - -typedef struct _GeeBidirSortedMap GeeBidirSortedMap; -typedef struct _GeeBidirSortedMapIface GeeBidirSortedMapIface; - -#define GEE_TYPE_SORTED_MAP (gee_sorted_map_get_type ()) -#define GEE_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMap)) -#define GEE_IS_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_MAP)) -#define GEE_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMapIface)) - -typedef struct _GeeSortedMap GeeSortedMap; -typedef struct _GeeSortedMapIface GeeSortedMapIface; - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - -#define GEE_TYPE_BIDIR_MAP_ITERATOR (gee_bidir_map_iterator_get_type ()) -#define GEE_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIterator)) -#define GEE_IS_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR)) -#define GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIteratorIface)) - -typedef struct _GeeBidirMapIterator GeeBidirMapIterator; -typedef struct _GeeBidirMapIteratorIface GeeBidirMapIteratorIface; -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type ()) -#define GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)) -#define GEE_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) -#define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) - -typedef struct _GeeAbstractMap GeeAbstractMap; -typedef struct _GeeAbstractMapClass GeeAbstractMapClass; - -#define GEE_TYPE_ABSTRACT_SORTED_MAP (gee_abstract_sorted_map_get_type ()) -#define GEE_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMap)) -#define GEE_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) -#define GEE_IS_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_IS_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_ABSTRACT_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) - -typedef struct _GeeAbstractSortedMap GeeAbstractSortedMap; -typedef struct _GeeAbstractSortedMapClass GeeAbstractSortedMapClass; - -#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP (gee_abstract_bidir_sorted_map_get_type ()) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMap)) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP)) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass)) - -typedef struct _GeeAbstractBidirSortedMap GeeAbstractBidirSortedMap; -typedef struct _GeeAbstractBidirSortedMapClass GeeAbstractBidirSortedMapClass; - -#define GEE_TYPE_TREE_MAP (gee_tree_map_get_type ()) -#define GEE_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_MAP, GeeTreeMap)) -#define GEE_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_MAP, GeeTreeMapClass)) -#define GEE_IS_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_MAP)) -#define GEE_IS_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_MAP)) -#define GEE_TREE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_MAP, GeeTreeMapClass)) - -typedef struct _GeeTreeMap GeeTreeMap; -typedef struct _GeeTreeMapClass GeeTreeMapClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - -struct _GeeSortedMapIface { - GTypeInterface parent_iface; - GeeSortedMap* (*head_map) (GeeSortedMap* self, gconstpointer before); - GeeSortedMap* (*tail_map) (GeeSortedMap* self, gconstpointer after); - GeeSortedMap* (*sub_map) (GeeSortedMap* self, gconstpointer before, gconstpointer after); - GeeSortedSet* (*get_ascending_keys) (GeeSortedMap* self); - GeeSortedSet* (*get_ascending_entries) (GeeSortedMap* self); - GeeSortedMap* (*get_read_only_view) (GeeSortedMap* self); -}; - -struct _GeeBidirMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeBidirMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeBidirMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeBidirMapIterator* self); - GType (*get_v_type) (GeeBidirMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeBidirMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeBidirMapIterator* self); - gboolean (*previous) (GeeBidirMapIterator* self); - gboolean (*has_previous) (GeeBidirMapIterator* self); - gboolean (*first) (GeeBidirMapIterator* self); - gboolean (*last) (GeeBidirMapIterator* self); -}; - -struct _GeeBidirSortedMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeBidirSortedMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeBidirSortedMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeBidirSortedMap* self); - GType (*get_v_type) (GeeBidirSortedMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeBidirSortedMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeBidirSortedMap* self); - GeeBidirMapIterator* (*bidir_map_iterator) (GeeBidirSortedMap* self); - GeeBidirSortedMap* (*get_read_only_view) (GeeBidirSortedMap* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_sorted_map_get_type (void) G_GNUC_CONST; -GType gee_bidir_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_sorted_map_get_type (void) G_GNUC_CONST; -GeeBidirMapIterator* gee_bidir_sorted_map_bidir_map_iterator (GeeBidirSortedMap* self); -GeeBidirSortedMap* gee_bidir_sorted_map_empty (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func); -GeeTreeMap* gee_tree_map_new (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GCompareDataFunc key_compare_func, - gpointer key_compare_func_target, - GDestroyNotify key_compare_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GeeTreeMap* gee_tree_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GCompareDataFunc key_compare_func, - gpointer key_compare_func_target, - GDestroyNotify key_compare_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GType gee_abstract_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMap, g_object_unref) -GType gee_abstract_sorted_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedMap, g_object_unref) -GType gee_abstract_bidir_sorted_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedMap, g_object_unref) -GType gee_tree_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMap, g_object_unref) -GeeBidirSortedMap* gee_abstract_bidir_sorted_map_get_read_only_view (GeeAbstractBidirSortedMap* self); -GeeBidirSortedMap* gee_bidir_sorted_map_get_read_only_view (GeeBidirSortedMap* self); +static GType gee_bidir_sorted_map_get_type_once (void); /** * Returns a bi-directional iterator for this map. @@ -448,8 +39,13 @@ GeeBidirMapIterator* gee_bidir_sorted_map_bidir_map_iterator (GeeBidirSortedMap* self) { + GeeBidirSortedMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_BIDIR_SORTED_MAP_GET_INTERFACE (self)->bidir_map_iterator (self); + _iface_ = GEE_BIDIR_SORTED_MAP_GET_INTERFACE (self); + if (_iface_->bidir_map_iterator) { + return _iface_->bidir_map_iterator (self); + } + return NULL; } /** @@ -484,8 +80,13 @@ GeeBidirSortedMap* gee_bidir_sorted_map_get_read_only_view (GeeBidirSortedMap* self) { + GeeBidirSortedMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_BIDIR_SORTED_MAP_GET_INTERFACE (self)->get_read_only_view (self); + _iface_ = GEE_BIDIR_SORTED_MAP_GET_INTERFACE (self); + if (_iface_->get_read_only_view) { + return _iface_->get_read_only_view (self); + } + return NULL; } static void @@ -498,15 +99,23 @@ g_object_interface_install_property (iface, g_param_spec_object ("read-only-view", "read-only-view", "read-only-view", GEE_TYPE_BIDIR_SORTED_MAP, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); } +static GType +gee_bidir_sorted_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBidirSortedMapIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_bidir_sorted_map_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_bidir_sorted_map_type_id; + gee_bidir_sorted_map_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBidirSortedMap", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_bidir_sorted_map_type_id, GEE_TYPE_SORTED_MAP); + return gee_bidir_sorted_map_type_id; +} + GType gee_bidir_sorted_map_get_type (void) { static volatile gsize gee_bidir_sorted_map_type_id__volatile = 0; if (g_once_init_enter (&gee_bidir_sorted_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBidirSortedMapIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_bidir_sorted_map_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_bidir_sorted_map_type_id; - gee_bidir_sorted_map_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBidirSortedMap", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_bidir_sorted_map_type_id, GEE_TYPE_SORTED_MAP); + gee_bidir_sorted_map_type_id = gee_bidir_sorted_map_get_type_once (); g_once_init_leave (&gee_bidir_sorted_map_type_id__volatile, gee_bidir_sorted_map_type_id); } return gee_bidir_sorted_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/bidirsortedset.c libgee-0.8-0.20.4/gee/bidirsortedset.c --- libgee-0.8-0.20.3/gee/bidirsortedset.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/bidirsortedset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* bidirsortedset.c generated by valac 0.46.6, the Vala compiler +/* bidirsortedset.c generated by valac 0.52.0, the Vala compiler * generated from bidirsortedset.vala, do not modify */ /* bidirsortedset.vala @@ -23,313 +23,13 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_BIDIR_SORTED_SET (gee_bidir_sorted_set_get_type ()) -#define GEE_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSet)) -#define GEE_IS_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_SET)) -#define GEE_BIDIR_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSetIface)) - -typedef struct _GeeBidirSortedSet GeeBidirSortedSet; -typedef struct _GeeBidirSortedSetIface GeeBidirSortedSetIface; - -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; - -#define GEE_TYPE_ABSTRACT_SORTED_SET (gee_abstract_sorted_set_get_type ()) -#define GEE_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet)) -#define GEE_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) -#define GEE_IS_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_IS_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_ABSTRACT_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) - -typedef struct _GeeAbstractSortedSet GeeAbstractSortedSet; -typedef struct _GeeAbstractSortedSetClass GeeAbstractSortedSetClass; - -#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET (gee_abstract_bidir_sorted_set_get_type ()) -#define GEE_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSet)) -#define GEE_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET)) -#define GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass)) - -typedef struct _GeeAbstractBidirSortedSet GeeAbstractBidirSortedSet; -typedef struct _GeeAbstractBidirSortedSetClass GeeAbstractBidirSortedSetClass; - -#define GEE_TYPE_TREE_SET (gee_tree_set_get_type ()) -#define GEE_TREE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_SET, GeeTreeSet)) -#define GEE_TREE_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_SET, GeeTreeSetClass)) -#define GEE_IS_TREE_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_SET)) -#define GEE_IS_TREE_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_SET)) -#define GEE_TREE_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_SET, GeeTreeSetClass)) - -typedef struct _GeeTreeSet GeeTreeSet; -typedef struct _GeeTreeSetClass GeeTreeSetClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirSortedSet* self); - GeeBidirIterator* (*bidir_iterator) (GeeBidirSortedSet* self); - GeeBidirSortedSet* (*get_read_only_view) (GeeBidirSortedSet* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_sorted_set_get_type (void) G_GNUC_CONST; -GeeBidirIterator* gee_bidir_sorted_set_bidir_iterator (GeeBidirSortedSet* self); -GeeBidirSortedSet* gee_bidir_sorted_set_empty (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeTreeSet* gee_tree_set_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); -GeeTreeSet* gee_tree_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedSet, g_object_unref) -GType gee_abstract_bidir_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedSet, g_object_unref) -GType gee_tree_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeSet, g_object_unref) -GeeBidirSortedSet* gee_abstract_bidir_sorted_set_get_read_only_view (GeeAbstractBidirSortedSet* self); -GeeBidirSortedSet* gee_bidir_sorted_set_get_read_only_view (GeeBidirSortedSet* self); +static GType gee_bidir_sorted_set_get_type_once (void); /** * Returns a {@link BidirIterator} that can be used for bi-directional @@ -340,8 +40,13 @@ GeeBidirIterator* gee_bidir_sorted_set_bidir_iterator (GeeBidirSortedSet* self) { + GeeBidirSortedSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_BIDIR_SORTED_SET_GET_INTERFACE (self)->bidir_iterator (self); + _iface_ = GEE_BIDIR_SORTED_SET_GET_INTERFACE (self); + if (_iface_->bidir_iterator) { + return _iface_->bidir_iterator (self); + } + return NULL; } /** @@ -373,8 +78,13 @@ GeeBidirSortedSet* gee_bidir_sorted_set_get_read_only_view (GeeBidirSortedSet* self) { + GeeBidirSortedSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_BIDIR_SORTED_SET_GET_INTERFACE (self)->get_read_only_view (self); + _iface_ = GEE_BIDIR_SORTED_SET_GET_INTERFACE (self); + if (_iface_->get_read_only_view) { + return _iface_->get_read_only_view (self); + } + return NULL; } static void @@ -387,15 +97,23 @@ g_object_interface_install_property (iface, g_param_spec_object ("read-only-view", "read-only-view", "read-only-view", GEE_TYPE_BIDIR_SORTED_SET, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); } +static GType +gee_bidir_sorted_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeBidirSortedSetIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_bidir_sorted_set_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_bidir_sorted_set_type_id; + gee_bidir_sorted_set_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBidirSortedSet", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_bidir_sorted_set_type_id, GEE_TYPE_SORTED_SET); + return gee_bidir_sorted_set_type_id; +} + GType gee_bidir_sorted_set_get_type (void) { static volatile gsize gee_bidir_sorted_set_type_id__volatile = 0; if (g_once_init_enter (&gee_bidir_sorted_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeBidirSortedSetIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_bidir_sorted_set_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_bidir_sorted_set_type_id; - gee_bidir_sorted_set_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeBidirSortedSet", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_bidir_sorted_set_type_id, GEE_TYPE_SORTED_SET); + gee_bidir_sorted_set_type_id = gee_bidir_sorted_set_get_type_once (); g_once_init_leave (&gee_bidir_sorted_set_type_id__volatile, gee_bidir_sorted_set_type_id); } return gee_bidir_sorted_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/collection.c libgee-0.8-0.20.4/gee/collection.c --- libgee-0.8-0.20.3/gee/collection.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/collection.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* collection.c generated by valac 0.46.6, the Vala compiler +/* collection.c generated by valac 0.52.0, the Vala compiler * generated from collection.vala, do not modify */ /* collection.vala @@ -23,178 +23,17 @@ * Jürg Billeter */ +#include "gee.h" #include #include #include #include -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) typedef struct _Block5Data Block5Data; typedef struct _Block6Data Block6Data; -typedef guint (*GeeHashDataFunc) (gconstpointer v, gpointer user_data); -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; - -#define GEE_TYPE_HASH_SET (gee_hash_set_get_type ()) -#define GEE_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_SET, GeeHashSet)) -#define GEE_HASH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_SET, GeeHashSetClass)) -#define GEE_IS_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_SET)) -#define GEE_IS_HASH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_SET)) -#define GEE_HASH_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_SET, GeeHashSetClass)) - -typedef struct _GeeHashSet GeeHashSet; -typedef struct _GeeHashSetClass GeeHashSetClass; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; #define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - struct _Block5Data { int _ref_count_; GeeCollection* self; @@ -207,70 +46,20 @@ gboolean changed; }; -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -gboolean gee_collection_contains (GeeCollection* self, - gconstpointer item); -gboolean gee_collection_add (GeeCollection* self, - gconstpointer item); -gboolean gee_collection_remove (GeeCollection* self, - gconstpointer item); -void gee_collection_clear (GeeCollection* self); -gboolean gee_collection_add_all (GeeCollection* self, - GeeCollection* collection); static gboolean gee_collection_real_add_all (GeeCollection* self, GeeCollection* collection); -gpointer gee_traversable_fold (GeeTraversable* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeFoldFunc f, - gpointer f_target, - gpointer seed); static gboolean __lambda34_ (GeeCollection* self, gpointer item, gboolean changed); static gpointer ___lambda34__gee_fold_func (gpointer g, gpointer a, gpointer self); -gboolean gee_collection_contains_all (GeeCollection* self, - GeeCollection* collection); static gboolean gee_collection_real_contains_all (GeeCollection* self, GeeCollection* collection); -gboolean gee_traversable_foreach (GeeTraversable* self, - GeeForallFunc f, - gpointer f_target); static gboolean __lambda35_ (GeeCollection* self, gpointer item); static gboolean ___lambda35__gee_forall_func (gpointer g, gpointer self); -gboolean gee_collection_remove_all (GeeCollection* self, - GeeCollection* collection); static gboolean gee_collection_real_remove_all (GeeCollection* self, GeeCollection* collection); static gboolean __lambda36_ (GeeCollection* self, @@ -279,16 +68,8 @@ static gpointer ___lambda36__gee_fold_func (gpointer g, gpointer a, gpointer self); -gboolean gee_collection_retain_all (GeeCollection* self, - GeeCollection* collection); static gboolean gee_collection_real_retain_all (GeeCollection* self, GeeCollection* collection); -GeeIterator* gee_iterable_iterator (GeeIterable* self); -gboolean gee_iterator_next (GeeIterator* self); -gpointer gee_iterator_get (GeeIterator* self); -void gee_iterator_remove (GeeIterator* self); -gpointer* gee_collection_to_array (GeeCollection* self, - gint* result_length1); static gpointer* gee_collection_real_to_array (GeeCollection* self, gint* result_length1); static gboolean* gee_collection_to_bool_array (GeeCollection* coll, @@ -313,10 +94,6 @@ gint* result_length1); static gdouble** gee_collection_to_double_array (GeeCollection* coll, gint* result_length1); -gint gee_collection_get_size (GeeCollection* self); -gboolean gee_collection_add_all_array (GeeCollection* self, - gpointer* array, - gint array_length1); static gboolean gee_collection_real_add_all_array (GeeCollection* self, gpointer* array, gint array_length1); @@ -353,9 +130,6 @@ static gboolean gee_collection_add_all_double_array (GeeCollection* coll, gdouble** arr, gint arr_length1); -gboolean gee_collection_contains_all_array (GeeCollection* self, - gpointer* array, - gint array_length1); static gboolean gee_collection_real_contains_all_array (GeeCollection* self, gpointer* array, gint array_length1); @@ -392,9 +166,6 @@ static gboolean gee_collection_contains_all_double_array (GeeCollection* coll, gdouble** arr, gint arr_length1); -gboolean gee_collection_remove_all_array (GeeCollection* self, - gpointer* array, - gint array_length1); static gboolean gee_collection_real_remove_all_array (GeeCollection* self, gpointer* array, gint array_length1); @@ -431,8 +202,6 @@ static gboolean gee_collection_remove_all_double_array (GeeCollection* coll, gdouble** arr, gint arr_length1); -gboolean gee_collection_add_all_iterator (GeeCollection* self, - GeeIterator* iter); static gboolean gee_collection_real_add_all_iterator (GeeCollection* self, GeeIterator* iter); static Block5Data* block5_data_ref (Block5Data* _data5_); @@ -441,16 +210,12 @@ gpointer val); static gboolean ___lambda37__gee_forall_func (gpointer g, gpointer self); -gboolean gee_collection_contains_all_iterator (GeeCollection* self, - GeeIterator* iter); static gboolean gee_collection_real_contains_all_iterator (GeeCollection* self, GeeIterator* iter); static gboolean __lambda38_ (GeeCollection* self, gpointer val); static gboolean ___lambda38__gee_forall_func (gpointer g, gpointer self); -gboolean gee_collection_remove_all_iterator (GeeCollection* self, - GeeIterator* iter); static gboolean gee_collection_real_remove_all_iterator (GeeCollection* self, GeeIterator* iter); static Block6Data* block6_data_ref (Block6Data* _data6_); @@ -459,39 +224,7 @@ gpointer val); static gboolean ___lambda39__gee_forall_func (gpointer g, gpointer self); -GeeCollection* gee_collection_empty (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeHashSet* gee_hash_set_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GDestroyNotify hash_func_target_destroy_notify, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeHashSet* gee_hash_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GDestroyNotify hash_func_target_destroy_notify, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_hash_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashSet, g_object_unref) -GType gee_set_get_type (void) G_GNUC_CONST; -GeeSet* gee_abstract_set_get_read_only_view (GeeAbstractSet* self); -gboolean gee_collection_get_is_empty (GeeCollection* self); -gboolean gee_collection_get_read_only (GeeCollection* self); -GeeCollection* gee_collection_get_read_only_view (GeeCollection* self); +static GType gee_collection_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -510,8 +243,13 @@ gee_collection_contains (GeeCollection* self, gconstpointer item) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->contains (self, item); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->contains) { + return _iface_->contains (self, item); + } + return FALSE; } /** @@ -526,12 +264,17 @@ gee_collection_add (GeeCollection* self, gconstpointer item) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->add (self, item); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->add) { + return _iface_->add (self, item); + } + return FALSE; } /** - * Removes the first occurence of an item from this collection. Must not + * Removes the first occurrence of an item from this collection. Must not * be called on read-only collections. * * @param item the item to remove from the collection @@ -542,8 +285,13 @@ gee_collection_remove (GeeCollection* self, gconstpointer item) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->remove (self, item); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->remove) { + return _iface_->remove (self, item); + } + return FALSE; } /** @@ -553,8 +301,12 @@ void gee_collection_clear (GeeCollection* self) { + GeeCollectionIface* _iface_; g_return_if_fail (self != NULL); - GEE_COLLECTION_GET_INTERFACE (self)->clear (self); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->clear) { + _iface_->clear (self); + } } /** @@ -602,8 +354,13 @@ gee_collection_add_all (GeeCollection* self, GeeCollection* collection) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->add_all (self, collection); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->add_all) { + return _iface_->add_all (self, collection); + } + return FALSE; } /** @@ -648,13 +405,18 @@ gee_collection_contains_all (GeeCollection* self, GeeCollection* collection) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->contains_all (self, collection); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->contains_all) { + return _iface_->contains_all (self, collection); + } + return FALSE; } /** * Removes the subset of items in this collection corresponding to the - * elments in the input collection. If there is several occurrences of + * elements in the input collection. If there is several occurrences of * the same value in this collection they are decremented of the number * of occurrences in the input collection. * @@ -700,8 +462,13 @@ gee_collection_remove_all (GeeCollection* self, GeeCollection* collection) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->remove_all (self, collection); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->remove_all) { + return _iface_->remove_all (self, collection); + } + return FALSE; } /** @@ -766,8 +533,13 @@ gee_collection_retain_all (GeeCollection* self, GeeCollection* collection) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->retain_all (self, collection); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->retain_all) { + return _iface_->retain_all (self, collection); + } + return FALSE; } /** @@ -1030,8 +802,13 @@ gee_collection_to_array (GeeCollection* self, gint* result_length1) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_COLLECTION_GET_INTERFACE (self)->to_array (self, result_length1); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->to_array) { + return _iface_->to_array (self, result_length1); + } + return NULL; } /** @@ -1144,8 +921,13 @@ gpointer* array, gint array_length1) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->add_all_array (self, array, array_length1); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->add_all_array) { + return _iface_->add_all_array (self, array, array_length1); + } + return FALSE; } /** @@ -1260,13 +1042,18 @@ gpointer* array, gint array_length1) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->contains_all_array (self, array, array_length1); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->contains_all_array) { + return _iface_->contains_all_array (self, array, array_length1); + } + return FALSE; } /** * Removes the subset of items in this collection corresponding to the - * elments in the input array. If there is several occurrences of + * elements in the input array. If there is several occurrences of * the same value in this collection they are decremented of the number * of occurrences in the input array. * @@ -1377,8 +1164,13 @@ gpointer* array, gint array_length1) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->remove_all_array (self, array, array_length1); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->remove_all_array) { + return _iface_->remove_all_array (self, array, array_length1); + } + return FALSE; } static Block5Data* @@ -1445,8 +1237,13 @@ gee_collection_add_all_iterator (GeeCollection* self, GeeIterator* iter) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->add_all_iterator (self, iter); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->add_all_iterator) { + return _iface_->add_all_iterator (self, iter); + } + return FALSE; } static gboolean @@ -1482,8 +1279,13 @@ gee_collection_contains_all_iterator (GeeCollection* self, GeeIterator* iter) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->contains_all_iterator (self, iter); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->contains_all_iterator) { + return _iface_->contains_all_iterator (self, iter); + } + return FALSE; } static Block6Data* @@ -1549,8 +1351,13 @@ gee_collection_remove_all_iterator (GeeCollection* self, GeeIterator* iter) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->remove_all_iterator (self, iter); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->remove_all_iterator) { + return _iface_->remove_all_iterator (self, iter); + } + return FALSE; } /** @@ -1590,8 +1397,8 @@ gint array_length1; gint _array_size_; gint index = 0; - gboolean* _tmp9_; - gint _tmp9__length1; + gboolean* _tmp10_; + gint _tmp10__length1; gboolean* result = NULL; g_return_val_if_fail (coll != NULL, NULL); _tmp0_ = gee_collection_get_size (coll); @@ -1614,6 +1421,7 @@ gboolean* _tmp7_; gint _tmp7__length1; gint _tmp8_; + gboolean _tmp9_; _tmp4_ = _element_it; if (!gee_iterator_next (_tmp4_)) { break; @@ -1625,16 +1433,17 @@ _tmp7__length1 = array_length1; _tmp8_ = index; index = _tmp8_ + 1; - _tmp7_[_tmp8_] = element; + _tmp9_ = element; + _tmp7_[_tmp8_] = _tmp9_; } _g_object_unref0 (_element_it); } - _tmp9_ = array; - _tmp9__length1 = array_length1; + _tmp10_ = array; + _tmp10__length1 = array_length1; if (result_length1) { - *result_length1 = _tmp9__length1; + *result_length1 = _tmp10__length1; } - result = _tmp9_; + result = _tmp10_; return result; } @@ -1649,8 +1458,8 @@ gint array_length1; gint _array_size_; gint index = 0; - gchar* _tmp9_; - gint _tmp9__length1; + gchar* _tmp10_; + gint _tmp10__length1; gchar* result = NULL; g_return_val_if_fail (coll != NULL, NULL); _tmp0_ = gee_collection_get_size (coll); @@ -1673,6 +1482,7 @@ gchar* _tmp7_; gint _tmp7__length1; gint _tmp8_; + gchar _tmp9_; _tmp4_ = _element_it; if (!gee_iterator_next (_tmp4_)) { break; @@ -1684,16 +1494,17 @@ _tmp7__length1 = array_length1; _tmp8_ = index; index = _tmp8_ + 1; - _tmp7_[_tmp8_] = element; + _tmp9_ = element; + _tmp7_[_tmp8_] = _tmp9_; } _g_object_unref0 (_element_it); } - _tmp9_ = array; - _tmp9__length1 = array_length1; + _tmp10_ = array; + _tmp10__length1 = array_length1; if (result_length1) { - *result_length1 = _tmp9__length1; + *result_length1 = _tmp10__length1; } - result = _tmp9_; + result = _tmp10_; return result; } @@ -1708,8 +1519,8 @@ gint array_length1; gint _array_size_; gint index = 0; - guchar* _tmp9_; - gint _tmp9__length1; + guchar* _tmp10_; + gint _tmp10__length1; guchar* result = NULL; g_return_val_if_fail (coll != NULL, NULL); _tmp0_ = gee_collection_get_size (coll); @@ -1732,6 +1543,7 @@ guchar* _tmp7_; gint _tmp7__length1; gint _tmp8_; + guchar _tmp9_; _tmp4_ = _element_it; if (!gee_iterator_next (_tmp4_)) { break; @@ -1743,16 +1555,17 @@ _tmp7__length1 = array_length1; _tmp8_ = index; index = _tmp8_ + 1; - _tmp7_[_tmp8_] = element; + _tmp9_ = element; + _tmp7_[_tmp8_] = _tmp9_; } _g_object_unref0 (_element_it); } - _tmp9_ = array; - _tmp9__length1 = array_length1; + _tmp10_ = array; + _tmp10__length1 = array_length1; if (result_length1) { - *result_length1 = _tmp9__length1; + *result_length1 = _tmp10__length1; } - result = _tmp9_; + result = _tmp10_; return result; } @@ -1767,8 +1580,8 @@ gint array_length1; gint _array_size_; gint index = 0; - gint* _tmp9_; - gint _tmp9__length1; + gint* _tmp10_; + gint _tmp10__length1; gint* result = NULL; g_return_val_if_fail (coll != NULL, NULL); _tmp0_ = gee_collection_get_size (coll); @@ -1791,6 +1604,7 @@ gint* _tmp7_; gint _tmp7__length1; gint _tmp8_; + gint _tmp9_; _tmp4_ = _element_it; if (!gee_iterator_next (_tmp4_)) { break; @@ -1802,16 +1616,17 @@ _tmp7__length1 = array_length1; _tmp8_ = index; index = _tmp8_ + 1; - _tmp7_[_tmp8_] = element; + _tmp9_ = element; + _tmp7_[_tmp8_] = _tmp9_; } _g_object_unref0 (_element_it); } - _tmp9_ = array; - _tmp9__length1 = array_length1; + _tmp10_ = array; + _tmp10__length1 = array_length1; if (result_length1) { - *result_length1 = _tmp9__length1; + *result_length1 = _tmp10__length1; } - result = _tmp9_; + result = _tmp10_; return result; } @@ -1826,8 +1641,8 @@ gint array_length1; gint _array_size_; gint index = 0; - guint* _tmp9_; - gint _tmp9__length1; + guint* _tmp10_; + gint _tmp10__length1; guint* result = NULL; g_return_val_if_fail (coll != NULL, NULL); _tmp0_ = gee_collection_get_size (coll); @@ -1850,6 +1665,7 @@ guint* _tmp7_; gint _tmp7__length1; gint _tmp8_; + guint _tmp9_; _tmp4_ = _element_it; if (!gee_iterator_next (_tmp4_)) { break; @@ -1861,16 +1677,17 @@ _tmp7__length1 = array_length1; _tmp8_ = index; index = _tmp8_ + 1; - _tmp7_[_tmp8_] = element; + _tmp9_ = element; + _tmp7_[_tmp8_] = _tmp9_; } _g_object_unref0 (_element_it); } - _tmp9_ = array; - _tmp9__length1 = array_length1; + _tmp10_ = array; + _tmp10__length1 = array_length1; if (result_length1) { - *result_length1 = _tmp9__length1; + *result_length1 = _tmp10__length1; } - result = _tmp9_; + result = _tmp10_; return result; } @@ -2013,8 +1830,8 @@ gint array_length1; gint _array_size_; gint index = 0; - glong* _tmp9_; - gint _tmp9__length1; + glong* _tmp10_; + gint _tmp10__length1; glong* result = NULL; g_return_val_if_fail (coll != NULL, NULL); _tmp0_ = gee_collection_get_size (coll); @@ -2037,6 +1854,7 @@ glong* _tmp7_; gint _tmp7__length1; gint _tmp8_; + glong _tmp9_; _tmp4_ = _element_it; if (!gee_iterator_next (_tmp4_)) { break; @@ -2048,16 +1866,17 @@ _tmp7__length1 = array_length1; _tmp8_ = index; index = _tmp8_ + 1; - _tmp7_[_tmp8_] = element; + _tmp9_ = element; + _tmp7_[_tmp8_] = _tmp9_; } _g_object_unref0 (_element_it); } - _tmp9_ = array; - _tmp9__length1 = array_length1; + _tmp10_ = array; + _tmp10__length1 = array_length1; if (result_length1) { - *result_length1 = _tmp9__length1; + *result_length1 = _tmp10__length1; } - result = _tmp9_; + result = _tmp10_; return result; } @@ -2072,8 +1891,8 @@ gint array_length1; gint _array_size_; gint index = 0; - gulong* _tmp9_; - gint _tmp9__length1; + gulong* _tmp10_; + gint _tmp10__length1; gulong* result = NULL; g_return_val_if_fail (coll != NULL, NULL); _tmp0_ = gee_collection_get_size (coll); @@ -2096,6 +1915,7 @@ gulong* _tmp7_; gint _tmp7__length1; gint _tmp8_; + gulong _tmp9_; _tmp4_ = _element_it; if (!gee_iterator_next (_tmp4_)) { break; @@ -2107,16 +1927,17 @@ _tmp7__length1 = array_length1; _tmp8_ = index; index = _tmp8_ + 1; - _tmp7_[_tmp8_] = element; + _tmp9_ = element; + _tmp7_[_tmp8_] = _tmp9_; } _g_object_unref0 (_element_it); } - _tmp9_ = array; - _tmp9__length1 = array_length1; + _tmp10_ = array; + _tmp10__length1 = array_length1; if (result_length1) { - *result_length1 = _tmp9__length1; + *result_length1 = _tmp10__length1; } - result = _tmp9_; + result = _tmp10_; return result; } @@ -3210,15 +3031,25 @@ gint gee_collection_get_size (GeeCollection* self) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, 0); - return GEE_COLLECTION_GET_INTERFACE (self)->get_size (self); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->get_size) { + return _iface_->get_size (self); + } + return -1; } gboolean gee_collection_get_is_empty (GeeCollection* self) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->get_is_empty (self); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->get_is_empty) { + return _iface_->get_is_empty (self); + } + return FALSE; } static gboolean @@ -3238,15 +3069,25 @@ gboolean gee_collection_get_read_only (GeeCollection* self) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_COLLECTION_GET_INTERFACE (self)->get_read_only (self); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->get_read_only) { + return _iface_->get_read_only (self); + } + return FALSE; } GeeCollection* gee_collection_get_read_only_view (GeeCollection* self) { + GeeCollectionIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_COLLECTION_GET_INTERFACE (self)->get_read_only_view (self); + _iface_ = GEE_COLLECTION_GET_INTERFACE (self); + if (_iface_->get_read_only_view) { + return _iface_->get_read_only_view (self); + } + return NULL; } static void @@ -3258,7 +3099,7 @@ */ g_object_interface_install_property (iface, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); /** - * Specifies whether this collection can change - i.e. wheather {@link add}, + * Specifies whether this collection can change - i.e. whether {@link add}, * {@link remove} etc. are legal operations. */ g_object_interface_install_property (iface, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); @@ -3283,15 +3124,23 @@ /** * A generic collection of objects. */ +static GType +gee_collection_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeCollectionIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_collection_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_collection_type_id; + gee_collection_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeCollection", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_collection_type_id, GEE_TYPE_ITERABLE); + return gee_collection_type_id; +} + GType gee_collection_get_type (void) { static volatile gsize gee_collection_type_id__volatile = 0; if (g_once_init_enter (&gee_collection_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeCollectionIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_collection_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_collection_type_id; - gee_collection_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeCollection", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_collection_type_id, GEE_TYPE_ITERABLE); + gee_collection_type_id = gee_collection_get_type_once (); g_once_init_leave (&gee_collection_type_id__volatile, gee_collection_type_id); } return gee_collection_type_id__volatile; @@ -3303,7 +3152,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/collection.vala libgee-0.8-0.20.4/gee/collection.vala --- libgee-0.8-0.20.3/gee/collection.vala 2016-11-23 17:51:46.000000000 +0000 +++ libgee-0.8-0.20.4/gee/collection.vala 2021-03-17 11:24:00.000000000 +0000 @@ -38,7 +38,7 @@ public virtual bool is_empty { get { return size == 0; } } /** - * Specifies whether this collection can change - i.e. wheather {@link add}, + * Specifies whether this collection can change - i.e. whether {@link add}, * {@link remove} etc. are legal operations. */ [CCode (ordering = 11)] @@ -66,7 +66,7 @@ public abstract bool add (G item); /** - * Removes the first occurence of an item from this collection. Must not + * Removes the first occurrence of an item from this collection. Must not * be called on read-only collections. * * @param item the item to remove from the collection @@ -112,7 +112,7 @@ /** * Removes the subset of items in this collection corresponding to the - * elments in the input collection. If there is several occurrences of + * elements in the input collection. If there is several occurrences of * the same value in this collection they are decremented of the number * of occurrences in the input collection. * @@ -283,7 +283,7 @@ /** * Removes the subset of items in this collection corresponding to the - * elments in the input array. If there is several occurrences of + * elements in the input array. If there is several occurrences of * the same value in this collection they are decremented of the number * of occurrences in the input array. * diff -Nru libgee-0.8-0.20.3/gee/comparable.c libgee-0.8-0.20.4/gee/comparable.c --- libgee-0.8-0.20.3/gee/comparable.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/comparable.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* comparable.c generated by valac 0.46.6, the Vala compiler +/* comparable.c generated by valac 0.52.0, the Vala compiler * generated from comparable.vala, do not modify */ /* comparable.vala @@ -23,28 +23,14 @@ * Didier 'Ptitjes Villevalois */ +#include "gee.h" #include #include -#define GEE_TYPE_COMPARABLE (gee_comparable_get_type ()) -#define GEE_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COMPARABLE, GeeComparable)) -#define GEE_IS_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COMPARABLE)) -#define GEE_COMPARABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COMPARABLE, GeeComparableIface)) - -typedef struct _GeeComparable GeeComparable; -typedef struct _GeeComparableIface GeeComparableIface; - -struct _GeeComparableIface { - GTypeInterface parent_iface; - gint (*compare_to) (GeeComparable* self, gconstpointer object); -}; - -GType gee_comparable_get_type (void) G_GNUC_CONST; -gint gee_comparable_compare_to (GeeComparable* self, - gconstpointer object); +static GType gee_comparable_get_type_once (void); /** - * Compares this object with the specifed object. + * Compares this object with the specified object. * * @return a negative integer, zero, or a positive integer as this object * is less than, equal to, or greater than the specified object @@ -53,8 +39,13 @@ gee_comparable_compare_to (GeeComparable* self, gconstpointer object) { + GeeComparableIface* _iface_; g_return_val_if_fail (self != NULL, 0); - return GEE_COMPARABLE_GET_INTERFACE (self)->compare_to (self, object); + _iface_ = GEE_COMPARABLE_GET_INTERFACE (self); + if (_iface_->compare_to) { + return _iface_->compare_to (self, object); + } + return -1; } static void @@ -81,15 +72,23 @@ * * @see Hashable */ +static GType +gee_comparable_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeComparableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_comparable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_comparable_type_id; + gee_comparable_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeComparable", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_comparable_type_id, G_TYPE_OBJECT); + return gee_comparable_type_id; +} + GType gee_comparable_get_type (void) { static volatile gsize gee_comparable_type_id__volatile = 0; if (g_once_init_enter (&gee_comparable_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeComparableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_comparable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_comparable_type_id; - gee_comparable_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeComparable", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_comparable_type_id, G_TYPE_OBJECT); + gee_comparable_type_id = gee_comparable_get_type_once (); g_once_init_leave (&gee_comparable_type_id__volatile, gee_comparable_type_id); } return gee_comparable_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/comparable.vala libgee-0.8-0.20.4/gee/comparable.vala --- libgee-0.8-0.20.3/gee/comparable.vala 2014-09-13 12:51:51.000000000 +0000 +++ libgee-0.8-0.20.4/gee/comparable.vala 2021-03-17 11:24:00.000000000 +0000 @@ -40,7 +40,7 @@ */ public interface Gee.Comparable : Object { /** - * Compares this object with the specifed object. + * Compares this object with the specified object. * * @return a negative integer, zero, or a positive integer as this object * is less than, equal to, or greater than the specified object diff -Nru libgee-0.8-0.20.3/gee/concurrentlist.c libgee-0.8-0.20.4/gee/concurrentlist.c --- libgee-0.8-0.20.3/gee/concurrentlist.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/concurrentlist.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* concurrentlist.c generated by valac 0.46.6, the Vala compiler +/* concurrentlist.c generated by valac 0.52.0, the Vala compiler * generated from concurrentlist.vala, do not modify */ /* concurrentlist.vala @@ -23,116 +23,12 @@ * Maciej Piechotka */ +#include "gee.h" #include #include #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_LIST (gee_list_get_type ()) -#define GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST, GeeList)) -#define GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST)) -#define GEE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST, GeeListIface)) - -typedef struct _GeeList GeeList; -typedef struct _GeeListIface GeeListIface; - -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; - -#define GEE_TYPE_ABSTRACT_LIST (gee_abstract_list_get_type ()) -#define GEE_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractList)) -#define GEE_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) -#define GEE_IS_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_IS_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_ABSTRACT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) - -typedef struct _GeeAbstractList GeeAbstractList; -typedef struct _GeeAbstractListClass GeeAbstractListClass; -typedef struct _GeeAbstractListPrivate GeeAbstractListPrivate; - -#define GEE_TYPE_CONCURRENT_LIST (gee_concurrent_list_get_type ()) -#define GEE_CONCURRENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_CONCURRENT_LIST, GeeConcurrentList)) -#define GEE_CONCURRENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_CONCURRENT_LIST, GeeConcurrentListClass)) -#define GEE_IS_CONCURRENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_CONCURRENT_LIST)) -#define GEE_IS_CONCURRENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_CONCURRENT_LIST)) -#define GEE_CONCURRENT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_CONCURRENT_LIST, GeeConcurrentListClass)) - -typedef struct _GeeConcurrentList GeeConcurrentList; -typedef struct _GeeConcurrentListClass GeeConcurrentListClass; -typedef struct _GeeConcurrentListPrivate GeeConcurrentListPrivate; - #define GEE_CONCURRENT_LIST_TYPE_NODE (gee_concurrent_list_node_get_type ()) #define GEE_CONCURRENT_LIST_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_CONCURRENT_LIST_TYPE_NODE, GeeConcurrentListNode)) #define GEE_CONCURRENT_LIST_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_CONCURRENT_LIST_TYPE_NODE, GeeConcurrentListNodeClass)) @@ -163,17 +59,6 @@ GEE_CONCURRENT_LIST_NUM_PROPERTIES }; static GParamSpec* gee_concurrent_list_properties[GEE_CONCURRENT_LIST_NUM_PROPERTIES]; -typedef struct _GeeHazardPointerContext GeeHazardPointerContext; -typedef enum { - GEE_HAZARD_POINTER_POLICY_DEFAULT, - GEE_HAZARD_POINTER_POLICY_THREAD_EXIT, - GEE_HAZARD_POINTER_POLICY_TRY_FREE, - GEE_HAZARD_POINTER_POLICY_FREE, - GEE_HAZARD_POINTER_POLICY_TRY_RELEASE, - GEE_HAZARD_POINTER_POLICY_RELEASE -} GeeHazardPointerPolicy; - -#define GEE_HAZARD_POINTER_TYPE_POLICY (gee_hazard_pointer_policy_get_type ()) #define _gee_concurrent_list_node_unref0(var) ((var == NULL) ? NULL : (var = (gee_concurrent_list_node_unref (var), NULL))) #define _gee_hazard_pointer_context_free0(var) ((var == NULL) ? NULL : (var = (gee_hazard_pointer_context_free (var), NULL))) typedef enum { @@ -184,7 +69,6 @@ #define GEE_CONCURRENT_LIST_TYPE_STATE (gee_concurrent_list_state_get_type ()) #define _gee_functions_equal_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_equal_data_func_closure_unref (var), NULL))) -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define GEE_CONCURRENT_LIST_TYPE_ITERATOR (gee_concurrent_list_iterator_get_type ()) @@ -209,170 +93,12 @@ }; static GParamSpec* gee_concurrent_list_iterator_properties[GEE_CONCURRENT_LIST_ITERATOR_NUM_PROPERTIES]; typedef struct _GeeConcurrentListNodePrivate GeeConcurrentListNodePrivate; -#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL))) typedef struct _GeeConcurrentListParamSpecNode GeeConcurrentListParamSpecNode; #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -struct _GeeListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeList* self); - GDestroyNotify (*get_g_destroy_func) (GeeList* self); - GeeListIterator* (*list_iterator) (GeeList* self); - gpointer (*get) (GeeList* self, gint index); - void (*set) (GeeList* self, gint index, gconstpointer item); - gint (*index_of) (GeeList* self, gconstpointer item); - void (*insert) (GeeList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeList* self, gint index); - GeeList* (*slice) (GeeList* self, gint start, gint stop); - gpointer (*first) (GeeList* self); - gpointer (*last) (GeeList* self); - void (*insert_all) (GeeList* self, gint index, GeeCollection* collection); - void (*sort) (GeeList* self, GCompareDataFunc compare_func, gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify); - GeeList* (*get_read_only_view) (GeeList* self); -}; - -struct _GeeAbstractList { - GeeAbstractCollection parent_instance; - GeeAbstractListPrivate * priv; -}; - -struct _GeeAbstractListClass { - GeeAbstractCollectionClass parent_class; - GeeListIterator* (*list_iterator) (GeeAbstractList* self); - gpointer (*get) (GeeAbstractList* self, gint index); - void (*set) (GeeAbstractList* self, gint index, gconstpointer item); - gint (*index_of) (GeeAbstractList* self, gconstpointer item); - void (*insert) (GeeAbstractList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeAbstractList* self, gint index); - GeeList* (*slice) (GeeAbstractList* self, gint start, gint stop); - void (*reserved0) (GeeAbstractList* self); - void (*reserved1) (GeeAbstractList* self); - void (*reserved2) (GeeAbstractList* self); - void (*reserved3) (GeeAbstractList* self); - void (*reserved4) (GeeAbstractList* self); - void (*reserved5) (GeeAbstractList* self); - void (*reserved6) (GeeAbstractList* self); - void (*reserved7) (GeeAbstractList* self); - void (*reserved8) (GeeAbstractList* self); - void (*reserved9) (GeeAbstractList* self); - GeeList* (*get_read_only_view) (GeeAbstractList* self); -}; - -struct _GeeConcurrentList { - GeeAbstractList parent_instance; - GeeConcurrentListPrivate * priv; -}; - -struct _GeeConcurrentListClass { - GeeAbstractListClass parent_class; -}; - struct _GeeConcurrentListPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -449,100 +175,40 @@ static gint GeeConcurrentListNode_private_offset; static gpointer gee_concurrent_list_node_parent_class = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_get_type (void) G_GNUC_CONST; -GType gee_abstract_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractList, g_object_unref) -GType gee_concurrent_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeConcurrentList, g_object_unref) static gpointer gee_concurrent_list_node_ref (gpointer instance); static void gee_concurrent_list_node_unref (gpointer instance); static GParamSpec* gee_concurrent_list_param_spec_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, - GParamFlags flags) G_GNUC_UNUSED; + GParamFlags flags) G_GNUC_UNUSED ; static void gee_concurrent_list_value_set_node (GValue* value, - gpointer v_object) G_GNUC_UNUSED; + gpointer v_object) G_GNUC_UNUSED ; static void gee_concurrent_list_value_take_node (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -static gpointer gee_concurrent_list_value_get_node (const GValue* value) G_GNUC_UNUSED; -static GType gee_concurrent_list_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeConcurrentListNode, gee_concurrent_list_node_unref) -G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, + gpointer v_object) G_GNUC_UNUSED ; +static gpointer gee_concurrent_list_value_get_node (const GValue* value) G_GNUC_UNUSED ; +static GType gee_concurrent_list_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsEqualDataFuncClosure, gee_functions_equal_data_func_closure_unref) -void gee_hazard_pointer_context_free (GeeHazardPointerContext * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHazardPointerContext, gee_hazard_pointer_context_free) -GType gee_hazard_pointer_policy_get_type (void) G_GNUC_CONST; -GeeHazardPointerContext* gee_hazard_pointer_context_new (GeeHazardPointerPolicy* policy); -void gee_hazard_pointer_set_pointer (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer** aptr, - gpointer new_ptr, - gsize mask, - gsize new_mask); -static GType gee_concurrent_list_state_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -GeeConcurrentList* gee_concurrent_list_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeConcurrentList* gee_concurrent_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeAbstractList* gee_abstract_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +static GType gee_concurrent_list_state_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -556,22 +222,17 @@ GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); -G_GNUC_INTERNAL GeeConcurrentList* gee_concurrent_list_new_with_closure (GType g_type, + G_GNUC_INTERNAL GeeConcurrentList* gee_concurrent_list_new_with_closure (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsEqualDataFuncClosure* equal_func); -G_GNUC_INTERNAL GeeConcurrentList* gee_concurrent_list_construct_with_closure (GType object_type, + G_GNUC_INTERNAL GeeConcurrentList* gee_concurrent_list_construct_with_closure (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsEqualDataFuncClosure* equal_func); static gboolean gee_concurrent_list_real_contains (GeeAbstractCollection* base, gconstpointer item); -GeeIterator* gee_abstract_collection_iterator (GeeAbstractCollection* self); -gboolean gee_iterator_next (GeeIterator* self); -GeeEqualDataFunc gee_concurrent_list_get_equal_func (GeeConcurrentList* self, - gpointer* result_target); -gpointer gee_iterator_get (GeeIterator* self); static gboolean gee_concurrent_list_real_add (GeeAbstractCollection* base, gconstpointer item); static GeeConcurrentListNode* gee_concurrent_list_node_new (GType g_type, @@ -589,7 +250,6 @@ static inline GeeConcurrentListNode* gee_concurrent_list_get_tail (GeeConcurrentList* self); static gboolean gee_concurrent_list_real_remove (GeeAbstractCollection* base, gconstpointer item); -void gee_iterator_remove (GeeIterator* self); static void gee_concurrent_list_real_clear (GeeAbstractCollection* base); static GeeIterator* gee_concurrent_list_real_iterator (GeeAbstractCollection* base); static GeeConcurrentListIterator* gee_concurrent_list_iterator_new (GType g_type, @@ -601,39 +261,25 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeConcurrentListNode* head); -static GType gee_concurrent_list_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeConcurrentListIterator, g_object_unref) +static GType gee_concurrent_list_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeListIterator* gee_concurrent_list_real_list_iterator (GeeAbstractList* base); static gpointer gee_concurrent_list_real_get (GeeAbstractList* base, gint index); static void gee_concurrent_list_real_set (GeeAbstractList* base, gint index, gconstpointer item); -GeeListIterator* gee_abstract_list_list_iterator (GeeAbstractList* self); -void gee_list_iterator_set (GeeListIterator* self, - gconstpointer item); static gint gee_concurrent_list_real_index_of (GeeAbstractList* base, gconstpointer item); static void gee_concurrent_list_real_insert (GeeAbstractList* base, gint index, gconstpointer item); static inline GeeConcurrentListNode* gee_concurrent_list_node_get_next (GeeConcurrentListNode* self); -void gee_list_iterator_add (GeeListIterator* self, - gconstpointer item); static gpointer gee_concurrent_list_real_remove_at (GeeAbstractList* base, gint index); static GeeList* gee_concurrent_list_real_slice (GeeAbstractList* base, gint start, gint end); -gboolean gee_abstract_collection_add (GeeAbstractCollection* self, - gconstpointer item); static inline GeeConcurrentListNode* gee_concurrent_list_update_tail (GeeConcurrentList* self); -gpointer gee_hazard_pointer_get_pointer (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer** aptr, - gsize mask, - gsize* mask_out); static inline void gee_concurrent_list_node_backtrace (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -646,7 +292,6 @@ static void gee_concurrent_list_set_equal_func (GeeConcurrentList* self, GeeEqualDataFunc value, gpointer value_target); -gboolean gee_concurrent_list_get_is_empty (GeeConcurrentList* self); static GeeConcurrentListIterator* gee_concurrent_list_iterator_new_from_iterator (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -665,7 +310,6 @@ gboolean force); static gboolean gee_concurrent_list_iterator_real_has_next (GeeIterator* base); static gpointer gee_concurrent_list_iterator_real_get (GeeIterator* base); -gboolean gee_iterator_get_valid (GeeIterator* self); static void gee_concurrent_list_iterator_real_set (GeeListIterator* base, gconstpointer item); static void gee_concurrent_list_iterator_real_remove (GeeIterator* base); @@ -681,7 +325,7 @@ guint forks, gint* result_length1); static void gee_concurrent_list_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_read_only (GeeIterator* self); +static GType gee_concurrent_list_iterator_get_type_once (void); static void _vala_gee_concurrent_list_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -714,19 +358,10 @@ GeeConcurrentListNode* next, GeeConcurrentListState state); static inline GeeConcurrentListNode* gee_concurrent_list_node_get_backlink (GeeConcurrentListNode* self); -gboolean gee_hazard_pointer_compare_and_exchange_pointer (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer** aptr, - gconstpointer old_ptr, - gpointer _new_ptr, - gsize mask, - gsize old_mask, - gsize new_mask); static void gee_concurrent_list_node_finalize (GeeConcurrentListNode * obj); +static GType gee_concurrent_list_node_get_type_once (void); static void gee_concurrent_list_finalize (GObject * obj); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); +static GType gee_concurrent_list_get_type_once (void); static void _vala_gee_concurrent_list_get_property (GObject * object, guint property_id, GValue * value, @@ -749,13 +384,21 @@ } static GType +gee_concurrent_list_state_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_CONCURRENT_LIST_STATE_NONE, "GEE_CONCURRENT_LIST_STATE_NONE", "none"}, {GEE_CONCURRENT_LIST_STATE_MARKED, "GEE_CONCURRENT_LIST_STATE_MARKED", "marked"}, {GEE_CONCURRENT_LIST_STATE_FLAGGED, "GEE_CONCURRENT_LIST_STATE_FLAGGED", "flagged"}, {0, NULL, NULL}}; + GType gee_concurrent_list_state_type_id; + gee_concurrent_list_state_type_id = g_enum_register_static ("GeeConcurrentListState", values); + return gee_concurrent_list_state_type_id; +} + +static GType gee_concurrent_list_state_get_type (void) { static volatile gsize gee_concurrent_list_state_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_list_state_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_CONCURRENT_LIST_STATE_NONE, "GEE_CONCURRENT_LIST_STATE_NONE", "none"}, {GEE_CONCURRENT_LIST_STATE_MARKED, "GEE_CONCURRENT_LIST_STATE_MARKED", "marked"}, {GEE_CONCURRENT_LIST_STATE_FLAGGED, "GEE_CONCURRENT_LIST_STATE_FLAGGED", "flagged"}, {0, NULL, NULL}}; GType gee_concurrent_list_state_type_id; - gee_concurrent_list_state_type_id = g_enum_register_static ("GeeConcurrentListState", values); + gee_concurrent_list_state_type_id = gee_concurrent_list_state_get_type_once (); g_once_init_leave (&gee_concurrent_list_state_type_id__volatile, gee_concurrent_list_state_type_id); } return gee_concurrent_list_state_type_id__volatile; @@ -797,7 +440,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; if (equal_func == NULL) { - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GeeEqualDataFunc _tmp2_; _tmp2_ = gee_functions_get_equal_func_for (g_type, &_tmp0_, &_tmp1_); @@ -842,7 +485,7 @@ return gee_concurrent_list_construct (GEE_TYPE_CONCURRENT_LIST, g_type, g_dup_func, g_destroy_func, equal_func, equal_func_target, equal_func_target_destroy_notify); } -G_GNUC_INTERNAL GeeConcurrentList* + G_GNUC_INTERNAL GeeConcurrentList* gee_concurrent_list_construct_with_closure (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -873,7 +516,7 @@ return self; } -G_GNUC_INTERNAL GeeConcurrentList* + G_GNUC_INTERNAL GeeConcurrentList* gee_concurrent_list_new_with_closure (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -1159,7 +802,6 @@ _g_object_unref0 (iterator); } g_assert_not_reached (); - _gee_hazard_pointer_context_free0 (ctx); } /** @@ -1213,7 +855,6 @@ _g_object_unref0 (iterator); } g_assert_not_reached (); - _gee_hazard_pointer_context_free0 (ctx); } /** @@ -1344,6 +985,7 @@ _tmp12_ = TRUE; while (TRUE) { GeeListIterator* _tmp13_; + gint _tmp14_; if (!_tmp12_) { } _tmp12_ = FALSE; @@ -1352,10 +994,11 @@ break; } index = index - 1; - if (index == 0) { - GeeListIterator* _tmp14_; - _tmp14_ = iterator; - gee_list_iterator_add (_tmp14_, item); + _tmp14_ = index; + if (_tmp14_ == 0) { + GeeListIterator* _tmp15_; + _tmp15_ = iterator; + gee_list_iterator_add (_tmp15_, item); _g_object_unref0 (iterator); _gee_hazard_pointer_context_free0 (ctx); return; @@ -1426,7 +1069,6 @@ _g_object_unref0 (iterator); } g_assert_not_reached (); - _gee_hazard_pointer_context_free0 (ctx); } /** @@ -2229,20 +1871,28 @@ } static GType +gee_concurrent_list_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentListIterator), 0, (GInstanceInitFunc) gee_concurrent_list_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_concurrent_list_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_concurrent_list_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_list_iterator_info = { (GInterfaceInitFunc) gee_concurrent_list_iterator_gee_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_concurrent_list_iterator_type_id; + gee_concurrent_list_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeConcurrentListIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_concurrent_list_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_concurrent_list_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + g_type_add_interface_static (gee_concurrent_list_iterator_type_id, GEE_TYPE_LIST_ITERATOR, &gee_list_iterator_info); + GeeConcurrentListIterator_private_offset = g_type_add_instance_private (gee_concurrent_list_iterator_type_id, sizeof (GeeConcurrentListIteratorPrivate)); + return gee_concurrent_list_iterator_type_id; +} + +static GType gee_concurrent_list_iterator_get_type (void) { static volatile gsize gee_concurrent_list_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_list_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentListIterator), 0, (GInstanceInitFunc) gee_concurrent_list_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_concurrent_list_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_concurrent_list_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_list_iterator_info = { (GInterfaceInitFunc) gee_concurrent_list_iterator_gee_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_concurrent_list_iterator_type_id; - gee_concurrent_list_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeConcurrentListIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_concurrent_list_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_concurrent_list_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - g_type_add_interface_static (gee_concurrent_list_iterator_type_id, GEE_TYPE_LIST_ITERATOR, &gee_list_iterator_info); - GeeConcurrentListIterator_private_offset = g_type_add_instance_private (gee_concurrent_list_iterator_type_id, sizeof (GeeConcurrentListIteratorPrivate)); + gee_concurrent_list_iterator_type_id = gee_concurrent_list_iterator_get_type_once (); g_once_init_leave (&gee_concurrent_list_iterator_type_id__volatile, gee_concurrent_list_iterator_type_id); } return gee_concurrent_list_iterator_type_id__volatile; @@ -2335,7 +1985,7 @@ _tmp2_ = data_ptr; data_ptr = NULL; g_atomic_pointer_set ((volatile gpointer *) (&self->_data), _tmp2_); - _g_destroy_func0 (data_copy); + ((data_copy == NULL) || (g_destroy_func == NULL)) ? NULL : (data_copy = (g_destroy_func (data_copy), NULL)); return self; } @@ -2589,7 +2239,6 @@ gee_concurrent_list_node_search_for (self->priv->g_type, (GBoxedCopyFunc) self->priv->g_dup_func, (GDestroyNotify) self->priv->g_destroy_func, next, &prev); _gee_concurrent_list_node_unref0 (prev_next); } - _gee_concurrent_list_node_unref0 (prev); } static inline void @@ -3006,16 +2655,24 @@ } static GType +gee_concurrent_list_node_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_concurrent_list_value_node_init, gee_concurrent_list_value_node_free_value, gee_concurrent_list_value_node_copy_value, gee_concurrent_list_value_node_peek_pointer, "p", gee_concurrent_list_value_node_collect_value, "p", gee_concurrent_list_value_node_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentListNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_list_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentListNode), 0, (GInstanceInitFunc) gee_concurrent_list_node_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_concurrent_list_node_type_id; + gee_concurrent_list_node_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeConcurrentListNode", &g_define_type_info, &g_define_type_fundamental_info, 0); + GeeConcurrentListNode_private_offset = g_type_add_instance_private (gee_concurrent_list_node_type_id, sizeof (GeeConcurrentListNodePrivate)); + return gee_concurrent_list_node_type_id; +} + +static GType gee_concurrent_list_node_get_type (void) { static volatile gsize gee_concurrent_list_node_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_list_node_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_concurrent_list_value_node_init, gee_concurrent_list_value_node_free_value, gee_concurrent_list_value_node_copy_value, gee_concurrent_list_value_node_peek_pointer, "p", gee_concurrent_list_value_node_collect_value, "p", gee_concurrent_list_value_node_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentListNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_list_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentListNode), 0, (GInstanceInitFunc) gee_concurrent_list_node_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_concurrent_list_node_type_id; - gee_concurrent_list_node_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeConcurrentListNode", &g_define_type_info, &g_define_type_fundamental_info, 0); - GeeConcurrentListNode_private_offset = g_type_add_instance_private (gee_concurrent_list_node_type_id, sizeof (GeeConcurrentListNodePrivate)); + gee_concurrent_list_node_type_id = gee_concurrent_list_node_get_type_once (); g_once_init_leave (&gee_concurrent_list_node_type_id__volatile, gee_concurrent_list_node_type_id); } return gee_concurrent_list_node_type_id__volatile; @@ -3117,15 +2774,23 @@ * of structure during iteration is allowed. However the change may not be immediately * visible to other threads. */ +static GType +gee_concurrent_list_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentList), 0, (GInstanceInitFunc) gee_concurrent_list_instance_init, NULL }; + GType gee_concurrent_list_type_id; + gee_concurrent_list_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_LIST, "GeeConcurrentList", &g_define_type_info, 0); + GeeConcurrentList_private_offset = g_type_add_instance_private (gee_concurrent_list_type_id, sizeof (GeeConcurrentListPrivate)); + return gee_concurrent_list_type_id; +} + GType gee_concurrent_list_get_type (void) { static volatile gsize gee_concurrent_list_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_list_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentList), 0, (GInstanceInitFunc) gee_concurrent_list_instance_init, NULL }; GType gee_concurrent_list_type_id; - gee_concurrent_list_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_LIST, "GeeConcurrentList", &g_define_type_info, 0); - GeeConcurrentList_private_offset = g_type_add_instance_private (gee_concurrent_list_type_id, sizeof (GeeConcurrentListPrivate)); + gee_concurrent_list_type_id = gee_concurrent_list_get_type_once (); g_once_init_leave (&gee_concurrent_list_type_id__volatile, gee_concurrent_list_type_id); } return gee_concurrent_list_type_id__volatile; @@ -3194,7 +2859,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/concurrentlist.vala libgee-0.8-0.20.4/gee/concurrentlist.vala --- libgee-0.8-0.20.3/gee/concurrentlist.vala 2014-10-07 10:26:31.000000000 +0000 +++ libgee-0.8-0.20.4/gee/concurrentlist.vala 2021-03-17 11:24:00.000000000 +0000 @@ -471,7 +471,7 @@ prev = (owned)curr; curr = (owned)next; #if DEBUG - stderr.printf (" Procceed to %p (previous %p)\n", curr, prev); + stderr.printf (" Proceed to %p (previous %p)\n", curr, prev); #endif } return success; diff -Nru libgee-0.8-0.20.3/gee/concurrentset.c libgee-0.8-0.20.4/gee/concurrentset.c --- libgee-0.8-0.20.3/gee/concurrentset.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/concurrentset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* concurrentset.c generated by valac 0.46.6, the Vala compiler +/* concurrentset.c generated by valac 0.52.0, the Vala compiler * generated from concurrentset.vala, do not modify */ /* concurrentset.vala @@ -23,128 +23,13 @@ * Maciej Piechotka */ -#include +#include "gee.h" #include +#include #include #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; -typedef struct _GeeAbstractSetPrivate GeeAbstractSetPrivate; - -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - -#define GEE_TYPE_ABSTRACT_SORTED_SET (gee_abstract_sorted_set_get_type ()) -#define GEE_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet)) -#define GEE_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) -#define GEE_IS_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_IS_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_ABSTRACT_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) - -typedef struct _GeeAbstractSortedSet GeeAbstractSortedSet; -typedef struct _GeeAbstractSortedSetClass GeeAbstractSortedSetClass; -typedef struct _GeeAbstractSortedSetPrivate GeeAbstractSortedSetPrivate; - -#define GEE_TYPE_CONCURRENT_SET (gee_concurrent_set_get_type ()) -#define GEE_CONCURRENT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_CONCURRENT_SET, GeeConcurrentSet)) -#define GEE_CONCURRENT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_CONCURRENT_SET, GeeConcurrentSetClass)) -#define GEE_IS_CONCURRENT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_CONCURRENT_SET)) -#define GEE_IS_CONCURRENT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_CONCURRENT_SET)) -#define GEE_CONCURRENT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_CONCURRENT_SET, GeeConcurrentSetClass)) - -typedef struct _GeeConcurrentSet GeeConcurrentSet; -typedef struct _GeeConcurrentSetClass GeeConcurrentSetClass; -typedef struct _GeeConcurrentSetPrivate GeeConcurrentSetPrivate; - #define GEE_CONCURRENT_SET_TYPE_TOWER (gee_concurrent_set_tower_get_type ()) #define GEE_CONCURRENT_SET_TOWER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_CONCURRENT_SET_TYPE_TOWER, GeeConcurrentSetTower)) #define GEE_CONCURRENT_SET_TOWER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_CONCURRENT_SET_TYPE_TOWER, GeeConcurrentSetTowerClass)) @@ -164,28 +49,9 @@ GEE_CONCURRENT_SET_NUM_PROPERTIES }; static GParamSpec* gee_concurrent_set_properties[GEE_CONCURRENT_SET_NUM_PROPERTIES]; -typedef struct _GeeHazardPointerContext GeeHazardPointerContext; -typedef enum { - GEE_HAZARD_POINTER_POLICY_DEFAULT, - GEE_HAZARD_POINTER_POLICY_THREAD_EXIT, - GEE_HAZARD_POINTER_POLICY_TRY_FREE, - GEE_HAZARD_POINTER_POLICY_FREE, - GEE_HAZARD_POINTER_POLICY_TRY_RELEASE, - GEE_HAZARD_POINTER_POLICY_RELEASE -} GeeHazardPointerPolicy; - -#define GEE_HAZARD_POINTER_TYPE_POLICY (gee_hazard_pointer_policy_get_type ()) #define _gee_concurrent_set_tower_unref0(var) ((var == NULL) ? NULL : (var = (gee_concurrent_set_tower_unref (var), NULL))) #define _gee_hazard_pointer_context_free0(var) ((var == NULL) ? NULL : (var = (gee_hazard_pointer_context_free (var), NULL))) typedef enum { - GEE_CONCURRENT_SET_RANGE_TYPE_HEAD, - GEE_CONCURRENT_SET_RANGE_TYPE_TAIL, - GEE_CONCURRENT_SET_RANGE_TYPE_BOUNDED, - GEE_CONCURRENT_SET_RANGE_TYPE_EMPTY -} GeeConcurrentSetRangeType; - -#define GEE_CONCURRENT_SET_TYPE_RANGE_TYPE (gee_concurrent_set_range_type_get_type ()) -typedef enum { GEE_CONCURRENT_SET_STATE_NONE = 0, GEE_CONCURRENT_SET_STATE_MARKED = 1, GEE_CONCURRENT_SET_STATE_FLAGGED = 2 @@ -284,7 +150,6 @@ GEE_CONCURRENT_SET_SUB_ITERATOR_NUM_PROPERTIES }; static GParamSpec* gee_concurrent_set_sub_iterator_properties[GEE_CONCURRENT_SET_SUB_ITERATOR_NUM_PROPERTIES]; -#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL))) typedef struct _GeeConcurrentSetParamSpecRange GeeConcurrentSetParamSpecRange; typedef struct _GeeConcurrentSetParamSpecTower GeeConcurrentSetParamSpecTower; #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); @@ -292,186 +157,6 @@ #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeAbstractSet { - GeeAbstractCollection parent_instance; - GeeAbstractSetPrivate * priv; -}; - -struct _GeeAbstractSetClass { - GeeAbstractCollectionClass parent_class; - void (*reserved0) (GeeAbstractSet* self); - void (*reserved1) (GeeAbstractSet* self); - void (*reserved2) (GeeAbstractSet* self); - void (*reserved3) (GeeAbstractSet* self); - void (*reserved4) (GeeAbstractSet* self); - void (*reserved5) (GeeAbstractSet* self); - void (*reserved6) (GeeAbstractSet* self); - void (*reserved7) (GeeAbstractSet* self); - void (*reserved8) (GeeAbstractSet* self); - void (*reserved9) (GeeAbstractSet* self); - GeeSet* (*get_read_only_view) (GeeAbstractSet* self); -}; - -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - -struct _GeeAbstractSortedSet { - GeeAbstractSet parent_instance; - GeeAbstractSortedSetPrivate * priv; -}; - -struct _GeeAbstractSortedSetClass { - GeeAbstractSetClass parent_class; - gpointer (*first) (GeeAbstractSortedSet* self); - gpointer (*last) (GeeAbstractSortedSet* self); - GeeIterator* (*iterator_at) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeAbstractSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeAbstractSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeAbstractSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to); - void (*reserved0) (GeeAbstractSortedSet* self); - void (*reserved1) (GeeAbstractSortedSet* self); - void (*reserved2) (GeeAbstractSortedSet* self); - void (*reserved3) (GeeAbstractSortedSet* self); - void (*reserved4) (GeeAbstractSortedSet* self); - void (*reserved5) (GeeAbstractSortedSet* self); - void (*reserved6) (GeeAbstractSortedSet* self); - void (*reserved7) (GeeAbstractSortedSet* self); - void (*reserved8) (GeeAbstractSortedSet* self); - void (*reserved9) (GeeAbstractSortedSet* self); - GeeSortedSet* (*get_read_only_view) (GeeAbstractSortedSet* self); -}; - -struct _GeeConcurrentSet { - GeeAbstractSortedSet parent_instance; - GeeConcurrentSetPrivate * priv; -}; - -struct _GeeConcurrentSetClass { - GeeAbstractSortedSetClass parent_class; -}; - struct _GeeConcurrentSetPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -615,78 +300,23 @@ static gint GeeConcurrentSetTower_private_offset; static gpointer gee_concurrent_set_tower_parent_class = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedSet, g_object_unref) -GType gee_concurrent_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeConcurrentSet, g_object_unref) static gpointer gee_concurrent_set_tower_ref (gpointer instance); static void gee_concurrent_set_tower_unref (gpointer instance); static GParamSpec* gee_concurrent_set_param_spec_tower (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, - GParamFlags flags) G_GNUC_UNUSED; + GParamFlags flags) G_GNUC_UNUSED ; static void gee_concurrent_set_value_set_tower (GValue* value, - gpointer v_object) G_GNUC_UNUSED; + gpointer v_object) G_GNUC_UNUSED ; static void gee_concurrent_set_value_take_tower (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -static gpointer gee_concurrent_set_value_get_tower (const GValue* value) G_GNUC_UNUSED; -static GType gee_concurrent_set_tower_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeConcurrentSetTower, gee_concurrent_set_tower_unref) -void gee_hazard_pointer_context_free (GeeHazardPointerContext * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHazardPointerContext, gee_hazard_pointer_context_free) -GType gee_hazard_pointer_policy_get_type (void) G_GNUC_CONST; -GeeHazardPointerContext* gee_hazard_pointer_context_new (GeeHazardPointerPolicy* policy); -GType gee_concurrent_set_range_type_get_type (void) G_GNUC_CONST; -static GType gee_concurrent_set_state_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; + gpointer v_object) G_GNUC_UNUSED ; +static gpointer gee_concurrent_set_value_get_tower (const GValue* value) G_GNUC_UNUSED ; +static GType gee_concurrent_set_tower_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +static GType gee_concurrent_set_state_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +#define GEE_CONCURRENT_SET__MAX_HEIGHT 31 static void _gee_concurrent_set_rand_lambda57_ (void* ptr); static void __gee_concurrent_set_rand_lambda57__gdestroy_notify (void* data); -#define GEE_CONCURRENT_SET__MAX_HEIGHT 31 -GeeConcurrentSet* gee_concurrent_set_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); -GeeConcurrentSet* gee_concurrent_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); -GeeAbstractSortedSet* gee_abstract_sorted_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GCompareDataFunc gee_functions_get_compare_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); static GeeConcurrentSetTower* gee_concurrent_set_tower_new_head (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); @@ -706,8 +336,7 @@ GDestroyNotify g_destroy_func, GeeConcurrentSet* cset, GeeConcurrentSetTower* head); -static GType gee_concurrent_set_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeConcurrentSetIterator, g_object_unref) +static GType gee_concurrent_set_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_concurrent_set_real_contains (GeeAbstractCollection* base, gconstpointer key); static inline gboolean gee_concurrent_set_tower_search (GType g_type, @@ -722,7 +351,7 @@ guint8 from_level); static gboolean gee_concurrent_set_real_add (GeeAbstractCollection* base, gconstpointer key); -static GType gee_concurrent_set_tower_iter_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; +static GType gee_concurrent_set_tower_iter_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeConcurrentSetTowerIter* gee_concurrent_set_tower_iter_dup (const GeeConcurrentSetTowerIter* self); static void gee_concurrent_set_tower_iter_free (GeeConcurrentSetTowerIter* self); static void gee_concurrent_set_tower_iter_copy (const GeeConcurrentSetTowerIter* self, @@ -749,9 +378,7 @@ static void gee_concurrent_set_real_clear (GeeAbstractCollection* base); static inline GeeConcurrentSetTower* gee_concurrent_set_tower_get_next (GeeConcurrentSetTower* self, guint8 level); -gboolean gee_abstract_collection_remove (GeeAbstractCollection* self, - gconstpointer item); -static GType gee_concurrent_set_tower_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; +static GType gee_concurrent_set_tower_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeConcurrentSetTowerNode* gee_concurrent_set_tower_node_dup (const GeeConcurrentSetTowerNode* self); static void gee_concurrent_set_tower_node_free (GeeConcurrentSetTowerNode* self); static gpointer gee_concurrent_set_real_first (GeeAbstractSortedSet* base); @@ -817,14 +444,13 @@ const gchar* nick, const gchar* blurb, GType object_type, - GParamFlags flags) G_GNUC_UNUSED; + GParamFlags flags) G_GNUC_UNUSED ; static void gee_concurrent_set_value_set_range (GValue* value, - gpointer v_object) G_GNUC_UNUSED; + gpointer v_object) G_GNUC_UNUSED ; static void gee_concurrent_set_value_take_range (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -static gpointer gee_concurrent_set_value_get_range (const GValue* value) G_GNUC_UNUSED; -static GType gee_concurrent_set_range_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeConcurrentSetRange, gee_concurrent_set_range_unref) + gpointer v_object) G_GNUC_UNUSED ; +static gpointer gee_concurrent_set_value_get_range (const GValue* value) G_GNUC_UNUSED ; +static GType gee_concurrent_set_range_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeConcurrentSetSubSet* gee_concurrent_set_sub_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -834,8 +460,7 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeConcurrentSetRange* range); -static GType gee_concurrent_set_sub_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeConcurrentSetSubSet, g_object_unref) +static GType gee_concurrent_set_sub_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeSortedSet* gee_concurrent_set_real_tail_set (GeeAbstractSortedSet* base, gconstpointer after); static GeeConcurrentSetRange* gee_concurrent_set_range_new_tail (GType g_type, @@ -892,7 +517,6 @@ static gboolean gee_concurrent_set_iterator_real_next (GeeIterator* base); static gboolean gee_concurrent_set_iterator_real_has_next (GeeIterator* base); static gpointer gee_concurrent_set_iterator_real_get (GeeIterator* base); -gboolean gee_iterator_get_valid (GeeIterator* self); static void gee_concurrent_set_iterator_real_remove (GeeIterator* base); static inline gboolean gee_concurrent_set_tower_remove (GType g_type, GBoxedCopyFunc g_dup_func, @@ -902,7 +526,7 @@ GeeConcurrentSetTowerIter* prev, GeeConcurrentSetTower* curr); static void gee_concurrent_set_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_read_only (GeeIterator* self); +static GType gee_concurrent_set_iterator_get_type_once (void); static void _vala_gee_concurrent_set_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -921,8 +545,7 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeConcurrentSetRange* range); -static GType gee_concurrent_set_sub_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeConcurrentSetSubIterator, g_object_unref) +static GType gee_concurrent_set_sub_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_concurrent_set_sub_set_real_contains (GeeAbstractCollection* base, gconstpointer item); static gboolean gee_concurrent_set_range_inside (GType g_type, @@ -972,11 +595,9 @@ GDestroyNotify g_destroy_func, GeeConcurrentSetRange* range, gconstpointer val); -static GType gee_concurrent_set_range_position_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -gpointer gee_abstract_sorted_set_last (GeeAbstractSortedSet* self); +static GType gee_concurrent_set_range_position_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gpointer gee_concurrent_set_sub_set_real_higher (GeeAbstractSortedSet* base, gconstpointer element); -gpointer gee_abstract_sorted_set_first (GeeAbstractSortedSet* self); static gpointer gee_concurrent_set_sub_set_real_floor (GeeAbstractSortedSet* base, gconstpointer element); static inline gboolean gee_concurrent_set_tower_is_head (GeeConcurrentSetTower* self); @@ -1005,16 +626,9 @@ GeeConcurrentSetRange* from, gconstpointer start, gconstpointer end); -gpointer gee_hazard_pointer_get_pointer (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer** aptr, - gsize mask, - gsize* mask_out); static gboolean gee_concurrent_set_sub_set_get_is_empty (GeeConcurrentSetSubSet* self); static void gee_concurrent_set_sub_set_finalize (GObject * obj); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); +static GType gee_concurrent_set_sub_set_get_type_once (void); static void _vala_gee_concurrent_set_sub_set_get_property (GObject * object, guint property_id, GValue * value, @@ -1049,6 +663,7 @@ static gpointer gee_concurrent_set_sub_iterator_real_get (GeeIterator* base); static void gee_concurrent_set_sub_iterator_real_remove (GeeIterator* base); static void gee_concurrent_set_sub_iterator_finalize (GObject * obj); +static GType gee_concurrent_set_sub_iterator_get_type_once (void); static void _vala_gee_concurrent_set_sub_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -1080,15 +695,6 @@ gpointer cmp_target, GeeConcurrentSetTower* a, GeeConcurrentSetTower* b); -gboolean gee_hazard_pointer_compare_and_exchange_pointer (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer** aptr, - gconstpointer old_ptr, - gpointer _new_ptr, - gsize mask, - gsize old_mask, - gsize new_mask); static inline gint gee_concurrent_set_tower_compare_data (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -1097,6 +703,7 @@ GeeConcurrentSetTower* a, gconstpointer b); static void gee_concurrent_set_range_finalize (GeeConcurrentSetRange * obj); +static GType gee_concurrent_set_range_get_type_once (void); static inline void gee_concurrent_set_tower_set_succ (GeeConcurrentSetTower* self, GeeConcurrentSetTower* next, GeeConcurrentSetState state, @@ -1169,17 +776,12 @@ guint8 level); static inline GeeConcurrentSetTower* gee_concurrent_set_tower_get_backlink (GeeConcurrentSetTower* self, guint8 level); -void gee_hazard_pointer_set_pointer (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer** aptr, - gpointer new_ptr, - gsize mask, - gsize new_mask); static void gee_concurrent_set_tower_finalize (GeeConcurrentSetTower * obj); +static GType gee_concurrent_set_tower_get_type_once (void); static void _vala_array_copy1 (GeeConcurrentSetTower* * self, GeeConcurrentSetTower* * dest); static void gee_concurrent_set_finalize (GObject * obj); +static GType gee_concurrent_set_get_type_once (void); static void _vala_gee_concurrent_set_get_property (GObject * object, guint property_id, GValue * value, @@ -1201,27 +803,43 @@ return G_STRUCT_MEMBER_P (self, GeeConcurrentSet_private_offset); } +static GType +gee_concurrent_set_range_type_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_CONCURRENT_SET_RANGE_TYPE_HEAD, "GEE_CONCURRENT_SET_RANGE_TYPE_HEAD", "head"}, {GEE_CONCURRENT_SET_RANGE_TYPE_TAIL, "GEE_CONCURRENT_SET_RANGE_TYPE_TAIL", "tail"}, {GEE_CONCURRENT_SET_RANGE_TYPE_BOUNDED, "GEE_CONCURRENT_SET_RANGE_TYPE_BOUNDED", "bounded"}, {GEE_CONCURRENT_SET_RANGE_TYPE_EMPTY, "GEE_CONCURRENT_SET_RANGE_TYPE_EMPTY", "empty"}, {0, NULL, NULL}}; + GType gee_concurrent_set_range_type_type_id; + gee_concurrent_set_range_type_type_id = g_enum_register_static ("GeeConcurrentSetRangeType", values); + return gee_concurrent_set_range_type_type_id; +} + GType gee_concurrent_set_range_type_get_type (void) { static volatile gsize gee_concurrent_set_range_type_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_set_range_type_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_CONCURRENT_SET_RANGE_TYPE_HEAD, "GEE_CONCURRENT_SET_RANGE_TYPE_HEAD", "head"}, {GEE_CONCURRENT_SET_RANGE_TYPE_TAIL, "GEE_CONCURRENT_SET_RANGE_TYPE_TAIL", "tail"}, {GEE_CONCURRENT_SET_RANGE_TYPE_BOUNDED, "GEE_CONCURRENT_SET_RANGE_TYPE_BOUNDED", "bounded"}, {GEE_CONCURRENT_SET_RANGE_TYPE_EMPTY, "GEE_CONCURRENT_SET_RANGE_TYPE_EMPTY", "empty"}, {0, NULL, NULL}}; GType gee_concurrent_set_range_type_type_id; - gee_concurrent_set_range_type_type_id = g_enum_register_static ("GeeConcurrentSetRangeType", values); + gee_concurrent_set_range_type_type_id = gee_concurrent_set_range_type_get_type_once (); g_once_init_leave (&gee_concurrent_set_range_type_type_id__volatile, gee_concurrent_set_range_type_type_id); } return gee_concurrent_set_range_type_type_id__volatile; } static GType +gee_concurrent_set_state_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_CONCURRENT_SET_STATE_NONE, "GEE_CONCURRENT_SET_STATE_NONE", "none"}, {GEE_CONCURRENT_SET_STATE_MARKED, "GEE_CONCURRENT_SET_STATE_MARKED", "marked"}, {GEE_CONCURRENT_SET_STATE_FLAGGED, "GEE_CONCURRENT_SET_STATE_FLAGGED", "flagged"}, {0, NULL, NULL}}; + GType gee_concurrent_set_state_type_id; + gee_concurrent_set_state_type_id = g_enum_register_static ("GeeConcurrentSetState", values); + return gee_concurrent_set_state_type_id; +} + +static GType gee_concurrent_set_state_get_type (void) { static volatile gsize gee_concurrent_set_state_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_set_state_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_CONCURRENT_SET_STATE_NONE, "GEE_CONCURRENT_SET_STATE_NONE", "none"}, {GEE_CONCURRENT_SET_STATE_MARKED, "GEE_CONCURRENT_SET_STATE_MARKED", "marked"}, {GEE_CONCURRENT_SET_STATE_FLAGGED, "GEE_CONCURRENT_SET_STATE_FLAGGED", "flagged"}, {0, NULL, NULL}}; GType gee_concurrent_set_state_type_id; - gee_concurrent_set_state_type_id = g_enum_register_static ("GeeConcurrentSetState", values); + gee_concurrent_set_state_type_id = gee_concurrent_set_state_get_type_once (); g_once_init_leave (&gee_concurrent_set_state_type_id__volatile, gee_concurrent_set_state_type_id); } return gee_concurrent_set_state_type_id__volatile; @@ -1262,7 +880,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; if (compare_func == NULL) { - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GCompareDataFunc _tmp2_; _tmp2_ = gee_functions_get_compare_func_for (g_type, &_tmp0_, &_tmp1_); @@ -1604,9 +1222,6 @@ _gee_hazard_pointer_context_free0 (ctx); return result; } - _gee_concurrent_set_tower_unref0 (curr); - _gee_concurrent_set_tower_unref0 (prev); - _gee_hazard_pointer_context_free0 (ctx); } static gpointer @@ -1935,9 +1550,6 @@ return result; } } - _gee_concurrent_set_tower_unref0 (next); - _gee_concurrent_set_tower_unref0 (prev); - _gee_hazard_pointer_context_free0 (ctx); } static gpointer @@ -2818,18 +2430,26 @@ } static GType +gee_concurrent_set_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentSetIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_set_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentSetIterator), 0, (GInstanceInitFunc) gee_concurrent_set_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_concurrent_set_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_concurrent_set_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_concurrent_set_iterator_type_id; + gee_concurrent_set_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeConcurrentSetIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_concurrent_set_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_concurrent_set_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeConcurrentSetIterator_private_offset = g_type_add_instance_private (gee_concurrent_set_iterator_type_id, sizeof (GeeConcurrentSetIteratorPrivate)); + return gee_concurrent_set_iterator_type_id; +} + +static GType gee_concurrent_set_iterator_get_type (void) { static volatile gsize gee_concurrent_set_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_set_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentSetIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_set_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentSetIterator), 0, (GInstanceInitFunc) gee_concurrent_set_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_concurrent_set_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_concurrent_set_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_concurrent_set_iterator_type_id; - gee_concurrent_set_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeConcurrentSetIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_concurrent_set_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_concurrent_set_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeConcurrentSetIterator_private_offset = g_type_add_instance_private (gee_concurrent_set_iterator_type_id, sizeof (GeeConcurrentSetIteratorPrivate)); + gee_concurrent_set_iterator_type_id = gee_concurrent_set_iterator_get_type_once (); g_once_init_leave (&gee_concurrent_set_iterator_type_id__volatile, gee_concurrent_set_iterator_type_id); } return gee_concurrent_set_iterator_type_id__volatile; @@ -3553,7 +3173,6 @@ g_assert_not_reached (); } } - _gee_hazard_pointer_context_free0 (ctx); } static gpointer @@ -3674,7 +3293,6 @@ g_assert_not_reached (); } } - _gee_hazard_pointer_context_free0 (ctx); } static gpointer @@ -3793,7 +3411,6 @@ g_assert_not_reached (); } } - _gee_hazard_pointer_context_free0 (ctx); } static gpointer @@ -3894,7 +3511,6 @@ g_assert_not_reached (); } } - _gee_hazard_pointer_context_free0 (ctx); } static GeeSortedSet* @@ -4036,8 +3652,6 @@ _gee_hazard_pointer_context_free0 (ctx); return result; } - _gee_concurrent_set_tower_unref0 (curr); - _gee_hazard_pointer_context_free0 (ctx); } static gboolean @@ -4124,14 +3738,22 @@ } static GType +gee_concurrent_set_sub_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentSetSubSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_set_sub_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentSetSubSet), 0, (GInstanceInitFunc) gee_concurrent_set_sub_set_instance_init, NULL }; + GType gee_concurrent_set_sub_set_type_id; + gee_concurrent_set_sub_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SORTED_SET, "GeeConcurrentSetSubSet", &g_define_type_info, 0); + GeeConcurrentSetSubSet_private_offset = g_type_add_instance_private (gee_concurrent_set_sub_set_type_id, sizeof (GeeConcurrentSetSubSetPrivate)); + return gee_concurrent_set_sub_set_type_id; +} + +static GType gee_concurrent_set_sub_set_get_type (void) { static volatile gsize gee_concurrent_set_sub_set_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_set_sub_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentSetSubSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_set_sub_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentSetSubSet), 0, (GInstanceInitFunc) gee_concurrent_set_sub_set_instance_init, NULL }; GType gee_concurrent_set_sub_set_type_id; - gee_concurrent_set_sub_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SORTED_SET, "GeeConcurrentSetSubSet", &g_define_type_info, 0); - GeeConcurrentSetSubSet_private_offset = g_type_add_instance_private (gee_concurrent_set_sub_set_type_id, sizeof (GeeConcurrentSetSubSetPrivate)); + gee_concurrent_set_sub_set_type_id = gee_concurrent_set_sub_set_get_type_once (); g_once_init_leave (&gee_concurrent_set_sub_set_type_id__volatile, gee_concurrent_set_sub_set_type_id); } return gee_concurrent_set_sub_set_type_id__volatile; @@ -4653,7 +4275,6 @@ _gee_concurrent_set_tower_unref0 (new_curr); _gee_concurrent_set_tower_unref0 (new_prev); } - _gee_hazard_pointer_context_free0 (ctx); } static gboolean @@ -4728,7 +4349,6 @@ _gee_hazard_pointer_context_free0 (ctx); return result; } - _gee_hazard_pointer_context_free0 (ctx); } static gpointer @@ -4966,18 +4586,26 @@ } static GType +gee_concurrent_set_sub_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentSetSubIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_set_sub_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentSetSubIterator), 0, (GInstanceInitFunc) gee_concurrent_set_sub_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_concurrent_set_sub_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_concurrent_set_sub_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_concurrent_set_sub_iterator_type_id; + gee_concurrent_set_sub_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeConcurrentSetSubIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_concurrent_set_sub_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_concurrent_set_sub_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeConcurrentSetSubIterator_private_offset = g_type_add_instance_private (gee_concurrent_set_sub_iterator_type_id, sizeof (GeeConcurrentSetSubIteratorPrivate)); + return gee_concurrent_set_sub_iterator_type_id; +} + +static GType gee_concurrent_set_sub_iterator_get_type (void) { static volatile gsize gee_concurrent_set_sub_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_set_sub_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentSetSubIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_set_sub_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentSetSubIterator), 0, (GInstanceInitFunc) gee_concurrent_set_sub_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_concurrent_set_sub_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_concurrent_set_sub_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_concurrent_set_sub_iterator_type_id; - gee_concurrent_set_sub_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeConcurrentSetSubIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_concurrent_set_sub_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_concurrent_set_sub_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeConcurrentSetSubIterator_private_offset = g_type_add_instance_private (gee_concurrent_set_sub_iterator_type_id, sizeof (GeeConcurrentSetSubIteratorPrivate)); + gee_concurrent_set_sub_iterator_type_id = gee_concurrent_set_sub_iterator_get_type_once (); g_once_init_leave (&gee_concurrent_set_sub_iterator_type_id__volatile, gee_concurrent_set_sub_iterator_type_id); } return gee_concurrent_set_sub_iterator_type_id__volatile; @@ -5044,13 +4672,21 @@ } static GType +gee_concurrent_set_range_position_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_CONCURRENT_SET_RANGE_POSITION_BEFORE, "GEE_CONCURRENT_SET_RANGE_POSITION_BEFORE", "before"}, {GEE_CONCURRENT_SET_RANGE_POSITION_INSIDE, "GEE_CONCURRENT_SET_RANGE_POSITION_INSIDE", "inside"}, {GEE_CONCURRENT_SET_RANGE_POSITION_AFTER, "GEE_CONCURRENT_SET_RANGE_POSITION_AFTER", "after"}, {GEE_CONCURRENT_SET_RANGE_POSITION_EMPTY, "GEE_CONCURRENT_SET_RANGE_POSITION_EMPTY", "empty"}, {0, NULL, NULL}}; + GType gee_concurrent_set_range_position_type_id; + gee_concurrent_set_range_position_type_id = g_enum_register_static ("GeeConcurrentSetRangePosition", values); + return gee_concurrent_set_range_position_type_id; +} + +static GType gee_concurrent_set_range_position_get_type (void) { static volatile gsize gee_concurrent_set_range_position_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_set_range_position_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_CONCURRENT_SET_RANGE_POSITION_BEFORE, "GEE_CONCURRENT_SET_RANGE_POSITION_BEFORE", "before"}, {GEE_CONCURRENT_SET_RANGE_POSITION_INSIDE, "GEE_CONCURRENT_SET_RANGE_POSITION_INSIDE", "inside"}, {GEE_CONCURRENT_SET_RANGE_POSITION_AFTER, "GEE_CONCURRENT_SET_RANGE_POSITION_AFTER", "after"}, {GEE_CONCURRENT_SET_RANGE_POSITION_EMPTY, "GEE_CONCURRENT_SET_RANGE_POSITION_EMPTY", "empty"}, {0, NULL, NULL}}; GType gee_concurrent_set_range_position_type_id; - gee_concurrent_set_range_position_type_id = g_enum_register_static ("GeeConcurrentSetRangePosition", values); + gee_concurrent_set_range_position_type_id = gee_concurrent_set_range_position_get_type_once (); g_once_init_leave (&gee_concurrent_set_range_position_type_id__volatile, gee_concurrent_set_range_position_type_id); } return gee_concurrent_set_range_position_type_id__volatile; @@ -5077,10 +4713,10 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; _tmp0_ = ((start != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) start) : ((gpointer) start); - _g_destroy_func0 (self->_start); + ((self->_start == NULL) || (g_destroy_func == NULL)) ? NULL : (self->_start = (g_destroy_func (self->_start), NULL)); self->_start = _tmp0_; _tmp1_ = ((end != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) end) : ((gpointer) end); - _g_destroy_func0 (self->_end); + ((self->_end == NULL) || (g_destroy_func == NULL)) ? NULL : (self->_end = (g_destroy_func (self->_end), NULL)); self->_end = _tmp1_; _tmp2_ = cset->priv->_cmp; _tmp2__target = cset->priv->_cmp_target; @@ -5148,7 +4784,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; _tmp0_ = ((end != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) end) : ((gpointer) end); - _g_destroy_func0 (self->_end); + ((self->_end == NULL) || (g_destroy_func == NULL)) ? NULL : (self->_end = (g_destroy_func (self->_end), NULL)); self->_end = _tmp0_; self->_type = GEE_CONCURRENT_SET_RANGE_TYPE_HEAD; { @@ -5209,7 +4845,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; _tmp0_ = ((start != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) start) : ((gpointer) start); - _g_destroy_func0 (self->_start); + ((self->_start == NULL) || (g_destroy_func == NULL)) ? NULL : (self->_start = (g_destroy_func (self->_start), NULL)); self->_start = _tmp0_; self->_type = GEE_CONCURRENT_SET_RANGE_TYPE_TAIL; { @@ -5353,12 +4989,12 @@ GeeConcurrentSetRange* _tmp11_; _tmp6_ = _result_; _tmp7_ = ((start != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) start) : ((gpointer) start); - _g_destroy_func0 (_tmp6_->_start); + ((_tmp6_->_start == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp6_->_start = (g_destroy_func (_tmp6_->_start), NULL)); _tmp6_->_start = _tmp7_; _tmp8_ = _result_; _tmp9_ = from->_end; _tmp10_ = ((_tmp9_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp9_) : ((gpointer) _tmp9_); - _g_destroy_func0 (_tmp8_->_end); + ((_tmp8_->_end == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp8_->_end = (g_destroy_func (_tmp8_->_end), NULL)); _tmp8_->_end = _tmp10_; _tmp11_ = _result_; _tmp11_->_type = GEE_CONCURRENT_SET_RANGE_TYPE_BOUNDED; @@ -5382,7 +5018,7 @@ _tmp15_ = from->_start; _tmp16_ = gee_concurrent_set_max (_tmp14_, _tmp15_, start, NULL); _tmp17_ = ((_tmp16_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp16_) : ((gpointer) _tmp16_); - _g_destroy_func0 (_tmp13_->_start); + ((_tmp13_->_start == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp13_->_start = (g_destroy_func (_tmp13_->_start), NULL)); _tmp13_->_start = _tmp17_; _tmp18_ = _result_; _tmp18_->_type = GEE_CONCURRENT_SET_RANGE_TYPE_TAIL; @@ -5413,12 +5049,12 @@ _tmp24_ = from->_start; _tmp25_ = gee_concurrent_set_max (_tmp23_, _tmp24_, start, NULL); _tmp26_ = ((_tmp25_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp25_) : ((gpointer) _tmp25_); - _g_destroy_func0 (_tmp22_->_start); + ((_tmp22_->_start == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp22_->_start = (g_destroy_func (_tmp22_->_start), NULL)); _tmp22_->_start = _tmp26_; _tmp27_ = _result_; _tmp28_ = from->_end; _tmp29_ = ((_tmp28_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp28_) : ((gpointer) _tmp28_); - _g_destroy_func0 (_tmp27_->_end); + ((_tmp27_->_end == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp27_->_end = (g_destroy_func (_tmp27_->_end), NULL)); _tmp27_->_end = _tmp29_; _tmp30_ = _result_; _tmp30_->_type = GEE_CONCURRENT_SET_RANGE_TYPE_BOUNDED; @@ -5489,7 +5125,7 @@ _tmp5_ = from->_end; _tmp6_ = gee_concurrent_set_min (_tmp4_, _tmp5_, end, NULL); _tmp7_ = ((_tmp6_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp6_) : ((gpointer) _tmp6_); - _g_destroy_func0 (_tmp3_->_end); + ((_tmp3_->_end == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp3_->_end = (g_destroy_func (_tmp3_->_end), NULL)); _tmp3_->_end = _tmp7_; _tmp8_ = _result_; _tmp8_->_type = GEE_CONCURRENT_SET_RANGE_TYPE_HEAD; @@ -5515,11 +5151,11 @@ _tmp12_ = _result_; _tmp13_ = from->_start; _tmp14_ = ((_tmp13_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp13_) : ((gpointer) _tmp13_); - _g_destroy_func0 (_tmp12_->_start); + ((_tmp12_->_start == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp12_->_start = (g_destroy_func (_tmp12_->_start), NULL)); _tmp12_->_start = _tmp14_; _tmp15_ = _result_; _tmp16_ = ((end != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) end) : ((gpointer) end); - _g_destroy_func0 (_tmp15_->_end); + ((_tmp15_->_end == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp15_->_end = (g_destroy_func (_tmp15_->_end), NULL)); _tmp15_->_end = _tmp16_; _tmp17_ = _result_; _tmp17_->_type = GEE_CONCURRENT_SET_RANGE_TYPE_BOUNDED; @@ -5553,14 +5189,14 @@ _tmp22_ = _result_; _tmp23_ = from->_start; _tmp24_ = ((_tmp23_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp23_) : ((gpointer) _tmp23_); - _g_destroy_func0 (_tmp22_->_start); + ((_tmp22_->_start == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp22_->_start = (g_destroy_func (_tmp22_->_start), NULL)); _tmp22_->_start = _tmp24_; _tmp25_ = _result_; _tmp26_ = from->_set; _tmp27_ = from->_end; _tmp28_ = gee_concurrent_set_min (_tmp26_, _tmp27_, end, NULL); _tmp29_ = ((_tmp28_ != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) _tmp28_) : ((gpointer) _tmp28_); - _g_destroy_func0 (_tmp25_->_end); + ((_tmp25_->_end == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp25_->_end = (g_destroy_func (_tmp25_->_end), NULL)); _tmp25_->_end = _tmp29_; _tmp30_ = _result_; _tmp30_->_type = GEE_CONCURRENT_SET_RANGE_TYPE_BOUNDED; @@ -5698,11 +5334,11 @@ GeeConcurrentSetRange* _tmp26_; _tmp22_ = _result_; _tmp23_ = ((start != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) start) : ((gpointer) start); - _g_destroy_func0 (_tmp22_->_start); + ((_tmp22_->_start == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp22_->_start = (g_destroy_func (_tmp22_->_start), NULL)); _tmp22_->_start = _tmp23_; _tmp24_ = _result_; _tmp25_ = ((end != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) end) : ((gpointer) end); - _g_destroy_func0 (_tmp24_->_end); + ((_tmp24_->_end == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp24_->_end = (g_destroy_func (_tmp24_->_end), NULL)); _tmp24_->_end = _tmp25_; _tmp26_ = _result_; _tmp26_->_type = GEE_CONCURRENT_SET_RANGE_TYPE_BOUNDED; @@ -6544,16 +6180,24 @@ } static GType +gee_concurrent_set_range_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_concurrent_set_value_range_init, gee_concurrent_set_value_range_free_value, gee_concurrent_set_value_range_copy_value, gee_concurrent_set_value_range_peek_pointer, "p", gee_concurrent_set_value_range_collect_value, "p", gee_concurrent_set_value_range_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentSetRangeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_set_range_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentSetRange), 0, (GInstanceInitFunc) gee_concurrent_set_range_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_concurrent_set_range_type_id; + gee_concurrent_set_range_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeConcurrentSetRange", &g_define_type_info, &g_define_type_fundamental_info, 0); + GeeConcurrentSetRange_private_offset = g_type_add_instance_private (gee_concurrent_set_range_type_id, sizeof (GeeConcurrentSetRangePrivate)); + return gee_concurrent_set_range_type_id; +} + +static GType gee_concurrent_set_range_get_type (void) { static volatile gsize gee_concurrent_set_range_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_set_range_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_concurrent_set_value_range_init, gee_concurrent_set_value_range_free_value, gee_concurrent_set_value_range_copy_value, gee_concurrent_set_value_range_peek_pointer, "p", gee_concurrent_set_value_range_collect_value, "p", gee_concurrent_set_value_range_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentSetRangeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_set_range_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentSetRange), 0, (GInstanceInitFunc) gee_concurrent_set_range_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_concurrent_set_range_type_id; - gee_concurrent_set_range_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeConcurrentSetRange", &g_define_type_info, &g_define_type_fundamental_info, 0); - GeeConcurrentSetRange_private_offset = g_type_add_instance_private (gee_concurrent_set_range_type_id, sizeof (GeeConcurrentSetRangePrivate)); + gee_concurrent_set_range_type_id = gee_concurrent_set_range_get_type_once (); g_once_init_leave (&gee_concurrent_set_range_type_id__volatile, gee_concurrent_set_range_type_id); } return gee_concurrent_set_range_type_id__volatile; @@ -6606,7 +6250,7 @@ self->_nodes = (g_free (self->_nodes), NULL); self->_nodes = _tmp0_; _tmp1_ = ((data != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) data) : ((gpointer) data); - _g_destroy_func0 (self->_data); + ((self->_data == NULL) || (g_destroy_func == NULL)) ? NULL : (self->_data = (g_destroy_func (self->_data), NULL)); self->_data = _tmp1_; self->_height = 0; _tmp2_ = self->_nodes; @@ -7126,7 +6770,6 @@ _gee_concurrent_set_tower_unref0 (curr); return result; } - _gee_concurrent_set_tower_unref0 (curr); } static inline gboolean @@ -7430,9 +7073,6 @@ } _gee_concurrent_set_tower_unref0 (result_tower); } - if (status) { - *status = _vala_status; - } } static inline void @@ -7890,16 +7530,24 @@ } static GType +gee_concurrent_set_tower_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_concurrent_set_value_tower_init, gee_concurrent_set_value_tower_free_value, gee_concurrent_set_value_tower_copy_value, gee_concurrent_set_value_tower_peek_pointer, "p", gee_concurrent_set_value_tower_collect_value, "p", gee_concurrent_set_value_tower_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentSetTowerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_set_tower_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentSetTower), 0, (GInstanceInitFunc) gee_concurrent_set_tower_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_concurrent_set_tower_type_id; + gee_concurrent_set_tower_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeConcurrentSetTower", &g_define_type_info, &g_define_type_fundamental_info, 0); + GeeConcurrentSetTower_private_offset = g_type_add_instance_private (gee_concurrent_set_tower_type_id, sizeof (GeeConcurrentSetTowerPrivate)); + return gee_concurrent_set_tower_type_id; +} + +static GType gee_concurrent_set_tower_get_type (void) { static volatile gsize gee_concurrent_set_tower_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_set_tower_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_concurrent_set_value_tower_init, gee_concurrent_set_value_tower_free_value, gee_concurrent_set_value_tower_copy_value, gee_concurrent_set_value_tower_peek_pointer, "p", gee_concurrent_set_value_tower_collect_value, "p", gee_concurrent_set_value_tower_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentSetTowerClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_set_tower_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentSetTower), 0, (GInstanceInitFunc) gee_concurrent_set_tower_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_concurrent_set_tower_type_id; - gee_concurrent_set_tower_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeConcurrentSetTower", &g_define_type_info, &g_define_type_fundamental_info, 0); - GeeConcurrentSetTower_private_offset = g_type_add_instance_private (gee_concurrent_set_tower_type_id, sizeof (GeeConcurrentSetTowerPrivate)); + gee_concurrent_set_tower_type_id = gee_concurrent_set_tower_get_type_once (); g_once_init_leave (&gee_concurrent_set_tower_type_id__volatile, gee_concurrent_set_tower_type_id); } return gee_concurrent_set_tower_type_id__volatile; @@ -7941,12 +7589,20 @@ } static GType +gee_concurrent_set_tower_node_get_type_once (void) +{ + GType gee_concurrent_set_tower_node_type_id; + gee_concurrent_set_tower_node_type_id = g_boxed_type_register_static ("GeeConcurrentSetTowerNode", (GBoxedCopyFunc) gee_concurrent_set_tower_node_dup, (GBoxedFreeFunc) gee_concurrent_set_tower_node_free); + return gee_concurrent_set_tower_node_type_id; +} + +static GType gee_concurrent_set_tower_node_get_type (void) { static volatile gsize gee_concurrent_set_tower_node_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_set_tower_node_type_id__volatile)) { GType gee_concurrent_set_tower_node_type_id; - gee_concurrent_set_tower_node_type_id = g_boxed_type_register_static ("GeeConcurrentSetTowerNode", (GBoxedCopyFunc) gee_concurrent_set_tower_node_dup, (GBoxedFreeFunc) gee_concurrent_set_tower_node_free); + gee_concurrent_set_tower_node_type_id = gee_concurrent_set_tower_node_get_type_once (); g_once_init_leave (&gee_concurrent_set_tower_node_type_id__volatile, gee_concurrent_set_tower_node_type_id); } return gee_concurrent_set_tower_node_type_id__volatile; @@ -7956,7 +7612,7 @@ _vala_array_copy1 (GeeConcurrentSetTower* * self, GeeConcurrentSetTower* * dest) { - int i; + gint i; for (i = 0; i < 31; i++) { GeeConcurrentSetTower* _tmp0_; _tmp0_ = _gee_concurrent_set_tower_ref0 (self[i]); @@ -7998,12 +7654,20 @@ } static GType +gee_concurrent_set_tower_iter_get_type_once (void) +{ + GType gee_concurrent_set_tower_iter_type_id; + gee_concurrent_set_tower_iter_type_id = g_boxed_type_register_static ("GeeConcurrentSetTowerIter", (GBoxedCopyFunc) gee_concurrent_set_tower_iter_dup, (GBoxedFreeFunc) gee_concurrent_set_tower_iter_free); + return gee_concurrent_set_tower_iter_type_id; +} + +static GType gee_concurrent_set_tower_iter_get_type (void) { static volatile gsize gee_concurrent_set_tower_iter_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_set_tower_iter_type_id__volatile)) { GType gee_concurrent_set_tower_iter_type_id; - gee_concurrent_set_tower_iter_type_id = g_boxed_type_register_static ("GeeConcurrentSetTowerIter", (GBoxedCopyFunc) gee_concurrent_set_tower_iter_dup, (GBoxedFreeFunc) gee_concurrent_set_tower_iter_free); + gee_concurrent_set_tower_iter_type_id = gee_concurrent_set_tower_iter_get_type_once (); g_once_init_leave (&gee_concurrent_set_tower_iter_type_id__volatile, gee_concurrent_set_tower_iter_type_id); } return gee_concurrent_set_tower_iter_type_id__volatile; @@ -8081,18 +7745,26 @@ * [[http://www.cse.yorku.ca/~ruppert/Mikhail.pdf|Mikhail Fomitchev Master Thesis]]. * * Many threads are allowed to operate on the same structure as well as modification - * of structure during iteration is allowed. However the change may not be immidiatly + * of structure during iteration is allowed. However the change may not be immediately * visible to other threads. */ +static GType +gee_concurrent_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentSet), 0, (GInstanceInitFunc) gee_concurrent_set_instance_init, NULL }; + GType gee_concurrent_set_type_id; + gee_concurrent_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SORTED_SET, "GeeConcurrentSet", &g_define_type_info, 0); + GeeConcurrentSet_private_offset = g_type_add_instance_private (gee_concurrent_set_type_id, sizeof (GeeConcurrentSetPrivate)); + return gee_concurrent_set_type_id; +} + GType gee_concurrent_set_get_type (void) { static volatile gsize gee_concurrent_set_type_id__volatile = 0; if (g_once_init_enter (&gee_concurrent_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeConcurrentSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_concurrent_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeConcurrentSet), 0, (GInstanceInitFunc) gee_concurrent_set_instance_init, NULL }; GType gee_concurrent_set_type_id; - gee_concurrent_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SORTED_SET, "GeeConcurrentSet", &g_define_type_info, 0); - GeeConcurrentSet_private_offset = g_type_add_instance_private (gee_concurrent_set_type_id, sizeof (GeeConcurrentSetPrivate)); + gee_concurrent_set_type_id = gee_concurrent_set_get_type_once (); g_once_init_leave (&gee_concurrent_set_type_id__volatile, gee_concurrent_set_type_id); } return gee_concurrent_set_type_id__volatile; @@ -8158,7 +7830,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/concurrentset.vala libgee-0.8-0.20.4/gee/concurrentset.vala --- libgee-0.8-0.20.3/gee/concurrentset.vala 2016-10-12 09:25:31.000000000 +0000 +++ libgee-0.8-0.20.4/gee/concurrentset.vala 2021-03-17 11:24:00.000000000 +0000 @@ -25,7 +25,7 @@ * [[http://www.cse.yorku.ca/~ruppert/Mikhail.pdf|Mikhail Fomitchev Master Thesis]]. * * Many threads are allowed to operate on the same structure as well as modification - * of structure during iteration is allowed. However the change may not be immidiatly + * of structure during iteration is allowed. However the change may not be immediately * visible to other threads. */ public class Gee.ConcurrentSet : AbstractSortedSet { diff -Nru libgee-0.8-0.20.3/gee/deque.c libgee-0.8-0.20.4/gee/deque.c --- libgee-0.8-0.20.3/gee/deque.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/deque.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* deque.c generated by valac 0.46.6, the Vala compiler +/* deque.c generated by valac 0.52.0, the Vala compiler * generated from deque.vala, do not modify */ /* deque.vala @@ -23,212 +23,11 @@ * Didier 'Ptitjes Villevalois */ +#include "gee.h" #include #include -#define GEE_TYPE_DEQUE (gee_deque_get_type ()) -#define GEE_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_DEQUE, GeeDeque)) -#define GEE_IS_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_DEQUE)) -#define GEE_DEQUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_DEQUE, GeeDequeIface)) - -typedef struct _GeeDeque GeeDeque; -typedef struct _GeeDequeIface GeeDequeIface; - -#define GEE_TYPE_QUEUE (gee_queue_get_type ()) -#define GEE_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_QUEUE, GeeQueue)) -#define GEE_IS_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_QUEUE)) -#define GEE_QUEUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_QUEUE, GeeQueueIface)) - -typedef struct _GeeQueue GeeQueue; -typedef struct _GeeQueueIface GeeQueueIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeQueueIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeQueue* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeQueue* self); - GDestroyNotify (*get_g_destroy_func) (GeeQueue* self); - gboolean (*offer) (GeeQueue* self, gconstpointer element); - gpointer (*peek) (GeeQueue* self); - gpointer (*poll) (GeeQueue* self); - gint (*drain) (GeeQueue* self, GeeCollection* recipient, gint amount); - gint (*get_capacity) (GeeQueue* self); - gint (*get_remaining_capacity) (GeeQueue* self); - gboolean (*get_is_full) (GeeQueue* self); -}; - -struct _GeeDequeIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeDeque* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeDeque* self); - GDestroyNotify (*get_g_destroy_func) (GeeDeque* self); - gboolean (*offer_head) (GeeDeque* self, gconstpointer element); - gpointer (*peek_head) (GeeDeque* self); - gpointer (*poll_head) (GeeDeque* self); - gint (*drain_head) (GeeDeque* self, GeeCollection* recipient, gint amount); - gboolean (*offer_tail) (GeeDeque* self, gconstpointer element); - gpointer (*peek_tail) (GeeDeque* self); - gpointer (*poll_tail) (GeeDeque* self); - gint (*drain_tail) (GeeDeque* self, GeeCollection* recipient, gint amount); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_queue_get_type (void) G_GNUC_CONST; -GType gee_deque_get_type (void) G_GNUC_CONST; -gboolean gee_deque_offer_head (GeeDeque* self, - gconstpointer element); -gpointer gee_deque_peek_head (GeeDeque* self); -gpointer gee_deque_poll_head (GeeDeque* self); -gint gee_deque_drain_head (GeeDeque* self, - GeeCollection* recipient, - gint amount); -gboolean gee_deque_offer_tail (GeeDeque* self, - gconstpointer element); -gpointer gee_deque_peek_tail (GeeDeque* self); -gpointer gee_deque_poll_tail (GeeDeque* self); -gint gee_deque_drain_tail (GeeDeque* self, - GeeCollection* recipient, - gint amount); +static GType gee_deque_get_type_once (void); /** * Offers the specified element to the head of this deque. @@ -241,8 +40,13 @@ gee_deque_offer_head (GeeDeque* self, gconstpointer element) { + GeeDequeIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_DEQUE_GET_INTERFACE (self)->offer_head (self, element); + _iface_ = GEE_DEQUE_GET_INTERFACE (self); + if (_iface_->offer_head) { + return _iface_->offer_head (self, element); + } + return FALSE; } /** @@ -254,8 +58,13 @@ gpointer gee_deque_peek_head (GeeDeque* self) { + GeeDequeIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_DEQUE_GET_INTERFACE (self)->peek_head (self); + _iface_ = GEE_DEQUE_GET_INTERFACE (self); + if (_iface_->peek_head) { + return _iface_->peek_head (self); + } + return NULL; } /** @@ -267,8 +76,13 @@ gpointer gee_deque_poll_head (GeeDeque* self) { + GeeDequeIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_DEQUE_GET_INTERFACE (self)->poll_head (self); + _iface_ = GEE_DEQUE_GET_INTERFACE (self); + if (_iface_->poll_head) { + return _iface_->poll_head (self); + } + return NULL; } /** @@ -285,8 +99,13 @@ GeeCollection* recipient, gint amount) { + GeeDequeIface* _iface_; g_return_val_if_fail (self != NULL, 0); - return GEE_DEQUE_GET_INTERFACE (self)->drain_head (self, recipient, amount); + _iface_ = GEE_DEQUE_GET_INTERFACE (self); + if (_iface_->drain_head) { + return _iface_->drain_head (self, recipient, amount); + } + return -1; } /** @@ -300,8 +119,13 @@ gee_deque_offer_tail (GeeDeque* self, gconstpointer element) { + GeeDequeIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_DEQUE_GET_INTERFACE (self)->offer_tail (self, element); + _iface_ = GEE_DEQUE_GET_INTERFACE (self); + if (_iface_->offer_tail) { + return _iface_->offer_tail (self, element); + } + return FALSE; } /** @@ -314,8 +138,13 @@ gpointer gee_deque_peek_tail (GeeDeque* self) { + GeeDequeIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_DEQUE_GET_INTERFACE (self)->peek_tail (self); + _iface_ = GEE_DEQUE_GET_INTERFACE (self); + if (_iface_->peek_tail) { + return _iface_->peek_tail (self); + } + return NULL; } /** @@ -327,8 +156,13 @@ gpointer gee_deque_poll_tail (GeeDeque* self) { + GeeDequeIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_DEQUE_GET_INTERFACE (self)->poll_tail (self); + _iface_ = GEE_DEQUE_GET_INTERFACE (self); + if (_iface_->poll_tail) { + return _iface_->poll_tail (self); + } + return NULL; } /** @@ -345,8 +179,13 @@ GeeCollection* recipient, gint amount) { + GeeDequeIface* _iface_; g_return_val_if_fail (self != NULL, 0); - return GEE_DEQUE_GET_INTERFACE (self)->drain_tail (self, recipient, amount); + _iface_ = GEE_DEQUE_GET_INTERFACE (self); + if (_iface_->drain_tail) { + return _iface_->drain_tail (self, recipient, amount); + } + return -1; } static void @@ -365,7 +204,7 @@ * the {@link Queue} methods with respect to capacity bounds. * * The Deque interface inherits from the {@link Queue} interface. Thus, to use - * a deque as a queue, you can equivalently use the folowing method set: + * a deque as a queue, you can equivalently use the following method set: * * ||<)(> ''Queue method'' ||<)(> ''Deque method'' || * || {@link Queue.offer} || {@link offer_tail} || @@ -381,15 +220,23 @@ * || peek an element || {@link peek_head} || * || pop an element || {@link poll_head} || */ +static GType +gee_deque_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeDequeIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_deque_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_deque_type_id; + gee_deque_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeDeque", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_deque_type_id, GEE_TYPE_QUEUE); + return gee_deque_type_id; +} + GType gee_deque_get_type (void) { static volatile gsize gee_deque_type_id__volatile = 0; if (g_once_init_enter (&gee_deque_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeDequeIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_deque_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_deque_type_id; - gee_deque_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeDeque", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_deque_type_id, GEE_TYPE_QUEUE); + gee_deque_type_id = gee_deque_get_type_once (); g_once_init_leave (&gee_deque_type_id__volatile, gee_deque_type_id); } return gee_deque_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/deque.vala libgee-0.8-0.20.4/gee/deque.vala --- libgee-0.8-0.20.3/gee/deque.vala 2014-08-05 06:27:46.000000000 +0000 +++ libgee-0.8-0.20.4/gee/deque.vala 2021-03-17 11:24:00.000000000 +0000 @@ -30,7 +30,7 @@ * the {@link Queue} methods with respect to capacity bounds. * * The Deque interface inherits from the {@link Queue} interface. Thus, to use - * a deque as a queue, you can equivalently use the folowing method set: + * a deque as a queue, you can equivalently use the following method set: * * ||<)(> ''Queue method'' ||<)(> ''Deque method'' || * || {@link Queue.offer} || {@link offer_tail} || diff -Nru libgee-0.8-0.20.3/gee/functions.c libgee-0.8-0.20.4/gee/functions.c --- libgee-0.8-0.20.3/gee/functions.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/functions.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* functions.c generated by valac 0.46.6, the Vala compiler +/* functions.c generated by valac 0.52.0, the Vala compiler * generated from functions.vala, do not modify */ /* functions.vala @@ -24,31 +24,13 @@ * Maciej Piechotka */ +#include "gee.h" #include #include #include #include #include -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_HASHABLE (gee_hashable_get_type ()) -#define GEE_HASHABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASHABLE, GeeHashable)) -#define GEE_IS_HASHABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASHABLE)) -#define GEE_HASHABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_HASHABLE, GeeHashableIface)) - -typedef struct _GeeHashable GeeHashable; -typedef struct _GeeHashableIface GeeHashableIface; - -#define GEE_TYPE_COMPARABLE (gee_comparable_get_type ()) -#define GEE_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COMPARABLE, GeeComparable)) -#define GEE_IS_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COMPARABLE)) -#define GEE_COMPARABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COMPARABLE, GeeComparableIface)) - -typedef struct _GeeComparable GeeComparable; -typedef struct _GeeComparableIface GeeComparableIface; -typedef guint (*GeeHashDataFunc) (gconstpointer v, gpointer user_data); - #define GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE (gee_functions_equal_data_func_closure_get_type ()) #define GEE_FUNCTIONS_EQUAL_DATA_FUNC_CLOSURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE, GeeFunctionsEqualDataFuncClosure)) #define GEE_FUNCTIONS_EQUAL_DATA_FUNC_CLOSURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE, GeeFunctionsEqualDataFuncClosureClass)) @@ -85,17 +67,6 @@ typedef struct _GeeFunctionsCompareDataFuncClosurePrivate GeeFunctionsCompareDataFuncClosurePrivate; typedef struct _GeeFunctionsParamSpecCompareDataFuncClosure GeeFunctionsParamSpecCompareDataFuncClosure; -struct _GeeHashableIface { - GTypeInterface parent_iface; - guint (*hash) (GeeHashable* self); - gboolean (*equal_to) (GeeHashable* self, gconstpointer object); -}; - -struct _GeeComparableIface { - GTypeInterface parent_iface; - gint (*compare_to) (GeeComparable* self, gconstpointer object); -}; - struct _GeeFunctionsEqualDataFuncClosure { GTypeInstance parent_instance; volatile int ref_count; @@ -175,27 +146,18 @@ static gint GeeFunctionsCompareDataFuncClosure_private_offset; static gpointer gee_functions_compare_data_func_closure_parent_class = NULL; -GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); static gboolean ___lambda30_ (gconstpointer a, gconstpointer b); static gboolean ____lambda30__gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self); -GType gee_hashable_get_type (void) G_GNUC_CONST; static gboolean ____lambda31_ (gconstpointer a, gconstpointer b); -gboolean gee_hashable_equal_to (GeeHashable* self, - gconstpointer object); static gboolean _____lambda31__gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self); -GType gee_comparable_get_type (void) G_GNUC_CONST; static gboolean _____lambda32_ (gconstpointer a, gconstpointer b); -gint gee_comparable_compare_to (GeeComparable* self, - gconstpointer object); static gboolean ______lambda32__gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self); @@ -204,22 +166,15 @@ static gboolean ______lambda33__gee_equal_data_func (gconstpointer a, gconstpointer b, gpointer self); -GeeHashDataFunc gee_functions_get_hash_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); static guint ___lambda41_ (gconstpointer a); static guint ____lambda41__gee_hash_data_func (gconstpointer v, gpointer self); static guint ____lambda42_ (gconstpointer a); -guint gee_hashable_hash (GeeHashable* self); static guint _____lambda42__gee_hash_data_func (gconstpointer v, gpointer self); static guint ____lambda43_ (gconstpointer a); static guint _____lambda43__gee_hash_data_func (gconstpointer v, gpointer self); -GCompareDataFunc gee_functions_get_compare_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); static gint ___lambda44_ (gconstpointer a, gconstpointer b); static gint ____lambda44__gcompare_data_func (gconstpointer a, @@ -235,34 +190,33 @@ static gint _____lambda46__gcompare_data_func (gconstpointer a, gconstpointer b, gpointer self); -G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsEqualDataFuncClosure, gee_functions_equal_data_func_closure_unref) -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeEqualDataFunc gee_functions_equal_data_func_closure_clone_func (GeeFunctionsEqualDataFuncClosure* self, + G_GNUC_INTERNAL GeeEqualDataFunc gee_functions_equal_data_func_closure_clone_func (GeeFunctionsEqualDataFuncClosure* self, gpointer* result_target, GDestroyNotify* result_target_destroy_notify); static gboolean __lambda29_ (GeeFunctionsEqualDataFuncClosure* self, @@ -272,34 +226,34 @@ gconstpointer b, gpointer self); static void gee_functions_equal_data_func_closure_finalize (GeeFunctionsEqualDataFuncClosure * obj); -G_GNUC_INTERNAL gpointer gee_functions_hash_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_hash_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_hash_data_func_closure (const gchar* name, +static GType gee_functions_equal_data_func_closure_get_type_once (void); + G_GNUC_INTERNAL gpointer gee_functions_hash_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_hash_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_hash_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_hash_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_hash_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_hash_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_hash_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_hash_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_hash_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsHashDataFuncClosure, gee_functions_hash_data_func_closure_unref) -G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL gpointer gee_functions_value_get_hash_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_hash_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeHashDataFunc gee_functions_hash_data_func_closure_clone_func (GeeFunctionsHashDataFuncClosure* self, + G_GNUC_INTERNAL GeeHashDataFunc gee_functions_hash_data_func_closure_clone_func (GeeFunctionsHashDataFuncClosure* self, gpointer* result_target, GDestroyNotify* result_target_destroy_notify); static guint __lambda40_ (GeeFunctionsHashDataFuncClosure* self, @@ -307,34 +261,34 @@ static guint ___lambda40__gee_hash_data_func (gconstpointer v, gpointer self); static void gee_functions_hash_data_func_closure_finalize (GeeFunctionsHashDataFuncClosure * obj); -G_GNUC_INTERNAL gpointer gee_functions_compare_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_compare_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_compare_data_func_closure (const gchar* name, +static GType gee_functions_hash_data_func_closure_get_type_once (void); + G_GNUC_INTERNAL gpointer gee_functions_compare_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_compare_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_compare_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_compare_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_compare_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_compare_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_compare_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_compare_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_compare_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsCompareDataFuncClosure, gee_functions_compare_data_func_closure_unref) -G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL gpointer gee_functions_value_get_compare_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_compare_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GCompareDataFunc gee_functions_compare_data_func_closure_clone_func (GeeFunctionsCompareDataFuncClosure* self, + G_GNUC_INTERNAL GCompareDataFunc gee_functions_compare_data_func_closure_clone_func (GeeFunctionsCompareDataFuncClosure* self, gpointer* result_target, GDestroyNotify* result_target_destroy_notify); static gint __lambda49_ (GeeFunctionsCompareDataFuncClosure* self, @@ -344,6 +298,7 @@ gconstpointer b, gpointer self); static void gee_functions_compare_data_func_closure_finalize (GeeFunctionsCompareDataFuncClosure * obj); +static GType gee_functions_compare_data_func_closure_get_type_once (void); /** * Get a equality testing function for a given type. @@ -813,7 +768,7 @@ return G_STRUCT_MEMBER_P (self, GeeFunctionsEqualDataFuncClosure_private_offset); } -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -850,7 +805,7 @@ return self; } -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -885,7 +840,7 @@ return result; } -G_GNUC_INTERNAL GeeEqualDataFunc + G_GNUC_INTERNAL GeeEqualDataFunc gee_functions_equal_data_func_closure_clone_func (GeeFunctionsEqualDataFuncClosure* self, gpointer* result_target, GDestroyNotify* result_target_destroy_notify) @@ -977,7 +932,7 @@ return NULL; } -G_GNUC_INTERNAL GParamSpec* + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, @@ -991,14 +946,14 @@ return G_PARAM_SPEC (spec); } -G_GNUC_INTERNAL gpointer + G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) { g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE), NULL); return value->data[0].v_pointer; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, gpointer v_object) { @@ -1018,7 +973,7 @@ } } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, gpointer v_object) { @@ -1066,23 +1021,31 @@ self->func_target_destroy_notify = NULL; } -G_GNUC_INTERNAL GType +static GType +gee_functions_equal_data_func_closure_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_functions_value_equal_data_func_closure_init, gee_functions_value_equal_data_func_closure_free_value, gee_functions_value_equal_data_func_closure_copy_value, gee_functions_value_equal_data_func_closure_peek_pointer, "p", gee_functions_value_equal_data_func_closure_collect_value, "p", gee_functions_value_equal_data_func_closure_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeeFunctionsEqualDataFuncClosureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_functions_equal_data_func_closure_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeFunctionsEqualDataFuncClosure), 0, (GInstanceInitFunc) gee_functions_equal_data_func_closure_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_functions_equal_data_func_closure_type_id; + gee_functions_equal_data_func_closure_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeFunctionsEqualDataFuncClosure", &g_define_type_info, &g_define_type_fundamental_info, 0); + GeeFunctionsEqualDataFuncClosure_private_offset = g_type_add_instance_private (gee_functions_equal_data_func_closure_type_id, sizeof (GeeFunctionsEqualDataFuncClosurePrivate)); + return gee_functions_equal_data_func_closure_type_id; +} + + G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) { static volatile gsize gee_functions_equal_data_func_closure_type_id__volatile = 0; if (g_once_init_enter (&gee_functions_equal_data_func_closure_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_functions_value_equal_data_func_closure_init, gee_functions_value_equal_data_func_closure_free_value, gee_functions_value_equal_data_func_closure_copy_value, gee_functions_value_equal_data_func_closure_peek_pointer, "p", gee_functions_value_equal_data_func_closure_collect_value, "p", gee_functions_value_equal_data_func_closure_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeeFunctionsEqualDataFuncClosureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_functions_equal_data_func_closure_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeFunctionsEqualDataFuncClosure), 0, (GInstanceInitFunc) gee_functions_equal_data_func_closure_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_functions_equal_data_func_closure_type_id; - gee_functions_equal_data_func_closure_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeFunctionsEqualDataFuncClosure", &g_define_type_info, &g_define_type_fundamental_info, 0); - GeeFunctionsEqualDataFuncClosure_private_offset = g_type_add_instance_private (gee_functions_equal_data_func_closure_type_id, sizeof (GeeFunctionsEqualDataFuncClosurePrivate)); + gee_functions_equal_data_func_closure_type_id = gee_functions_equal_data_func_closure_get_type_once (); g_once_init_leave (&gee_functions_equal_data_func_closure_type_id__volatile, gee_functions_equal_data_func_closure_type_id); } return gee_functions_equal_data_func_closure_type_id__volatile; } -G_GNUC_INTERNAL gpointer + G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance) { GeeFunctionsEqualDataFuncClosure * self; @@ -1091,7 +1054,7 @@ return instance; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance) { GeeFunctionsEqualDataFuncClosure * self; @@ -1108,7 +1071,7 @@ return G_STRUCT_MEMBER_P (self, GeeFunctionsHashDataFuncClosure_private_offset); } -G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* + G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -1145,7 +1108,7 @@ return self; } -G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* + G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -1178,7 +1141,7 @@ return result; } -G_GNUC_INTERNAL GeeHashDataFunc + G_GNUC_INTERNAL GeeHashDataFunc gee_functions_hash_data_func_closure_clone_func (GeeFunctionsHashDataFuncClosure* self, gpointer* result_target, GDestroyNotify* result_target_destroy_notify) @@ -1270,7 +1233,7 @@ return NULL; } -G_GNUC_INTERNAL GParamSpec* + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_hash_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, @@ -1284,14 +1247,14 @@ return G_PARAM_SPEC (spec); } -G_GNUC_INTERNAL gpointer + G_GNUC_INTERNAL gpointer gee_functions_value_get_hash_data_func_closure (const GValue* value) { g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE), NULL); return value->data[0].v_pointer; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_functions_value_set_hash_data_func_closure (GValue* value, gpointer v_object) { @@ -1311,7 +1274,7 @@ } } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_functions_value_take_hash_data_func_closure (GValue* value, gpointer v_object) { @@ -1359,23 +1322,31 @@ self->func_target_destroy_notify = NULL; } -G_GNUC_INTERNAL GType +static GType +gee_functions_hash_data_func_closure_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_functions_value_hash_data_func_closure_init, gee_functions_value_hash_data_func_closure_free_value, gee_functions_value_hash_data_func_closure_copy_value, gee_functions_value_hash_data_func_closure_peek_pointer, "p", gee_functions_value_hash_data_func_closure_collect_value, "p", gee_functions_value_hash_data_func_closure_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeeFunctionsHashDataFuncClosureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_functions_hash_data_func_closure_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeFunctionsHashDataFuncClosure), 0, (GInstanceInitFunc) gee_functions_hash_data_func_closure_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_functions_hash_data_func_closure_type_id; + gee_functions_hash_data_func_closure_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeFunctionsHashDataFuncClosure", &g_define_type_info, &g_define_type_fundamental_info, 0); + GeeFunctionsHashDataFuncClosure_private_offset = g_type_add_instance_private (gee_functions_hash_data_func_closure_type_id, sizeof (GeeFunctionsHashDataFuncClosurePrivate)); + return gee_functions_hash_data_func_closure_type_id; +} + + G_GNUC_INTERNAL GType gee_functions_hash_data_func_closure_get_type (void) { static volatile gsize gee_functions_hash_data_func_closure_type_id__volatile = 0; if (g_once_init_enter (&gee_functions_hash_data_func_closure_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_functions_value_hash_data_func_closure_init, gee_functions_value_hash_data_func_closure_free_value, gee_functions_value_hash_data_func_closure_copy_value, gee_functions_value_hash_data_func_closure_peek_pointer, "p", gee_functions_value_hash_data_func_closure_collect_value, "p", gee_functions_value_hash_data_func_closure_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeeFunctionsHashDataFuncClosureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_functions_hash_data_func_closure_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeFunctionsHashDataFuncClosure), 0, (GInstanceInitFunc) gee_functions_hash_data_func_closure_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_functions_hash_data_func_closure_type_id; - gee_functions_hash_data_func_closure_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeFunctionsHashDataFuncClosure", &g_define_type_info, &g_define_type_fundamental_info, 0); - GeeFunctionsHashDataFuncClosure_private_offset = g_type_add_instance_private (gee_functions_hash_data_func_closure_type_id, sizeof (GeeFunctionsHashDataFuncClosurePrivate)); + gee_functions_hash_data_func_closure_type_id = gee_functions_hash_data_func_closure_get_type_once (); g_once_init_leave (&gee_functions_hash_data_func_closure_type_id__volatile, gee_functions_hash_data_func_closure_type_id); } return gee_functions_hash_data_func_closure_type_id__volatile; } -G_GNUC_INTERNAL gpointer + G_GNUC_INTERNAL gpointer gee_functions_hash_data_func_closure_ref (gpointer instance) { GeeFunctionsHashDataFuncClosure * self; @@ -1384,7 +1355,7 @@ return instance; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_functions_hash_data_func_closure_unref (gpointer instance) { GeeFunctionsHashDataFuncClosure * self; @@ -1401,7 +1372,7 @@ return G_STRUCT_MEMBER_P (self, GeeFunctionsCompareDataFuncClosure_private_offset); } -G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* + G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -1438,7 +1409,7 @@ return self; } -G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* + G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -1473,7 +1444,7 @@ return result; } -G_GNUC_INTERNAL GCompareDataFunc + G_GNUC_INTERNAL GCompareDataFunc gee_functions_compare_data_func_closure_clone_func (GeeFunctionsCompareDataFuncClosure* self, gpointer* result_target, GDestroyNotify* result_target_destroy_notify) @@ -1565,7 +1536,7 @@ return NULL; } -G_GNUC_INTERNAL GParamSpec* + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_compare_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, @@ -1579,14 +1550,14 @@ return G_PARAM_SPEC (spec); } -G_GNUC_INTERNAL gpointer + G_GNUC_INTERNAL gpointer gee_functions_value_get_compare_data_func_closure (const GValue* value) { g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE), NULL); return value->data[0].v_pointer; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_functions_value_set_compare_data_func_closure (GValue* value, gpointer v_object) { @@ -1606,7 +1577,7 @@ } } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_functions_value_take_compare_data_func_closure (GValue* value, gpointer v_object) { @@ -1654,23 +1625,31 @@ self->func_target_destroy_notify = NULL; } -G_GNUC_INTERNAL GType +static GType +gee_functions_compare_data_func_closure_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_functions_value_compare_data_func_closure_init, gee_functions_value_compare_data_func_closure_free_value, gee_functions_value_compare_data_func_closure_copy_value, gee_functions_value_compare_data_func_closure_peek_pointer, "p", gee_functions_value_compare_data_func_closure_collect_value, "p", gee_functions_value_compare_data_func_closure_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeeFunctionsCompareDataFuncClosureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_functions_compare_data_func_closure_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeFunctionsCompareDataFuncClosure), 0, (GInstanceInitFunc) gee_functions_compare_data_func_closure_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_functions_compare_data_func_closure_type_id; + gee_functions_compare_data_func_closure_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeFunctionsCompareDataFuncClosure", &g_define_type_info, &g_define_type_fundamental_info, 0); + GeeFunctionsCompareDataFuncClosure_private_offset = g_type_add_instance_private (gee_functions_compare_data_func_closure_type_id, sizeof (GeeFunctionsCompareDataFuncClosurePrivate)); + return gee_functions_compare_data_func_closure_type_id; +} + + G_GNUC_INTERNAL GType gee_functions_compare_data_func_closure_get_type (void) { static volatile gsize gee_functions_compare_data_func_closure_type_id__volatile = 0; if (g_once_init_enter (&gee_functions_compare_data_func_closure_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_functions_value_compare_data_func_closure_init, gee_functions_value_compare_data_func_closure_free_value, gee_functions_value_compare_data_func_closure_copy_value, gee_functions_value_compare_data_func_closure_peek_pointer, "p", gee_functions_value_compare_data_func_closure_collect_value, "p", gee_functions_value_compare_data_func_closure_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeeFunctionsCompareDataFuncClosureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_functions_compare_data_func_closure_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeFunctionsCompareDataFuncClosure), 0, (GInstanceInitFunc) gee_functions_compare_data_func_closure_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_functions_compare_data_func_closure_type_id; - gee_functions_compare_data_func_closure_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeFunctionsCompareDataFuncClosure", &g_define_type_info, &g_define_type_fundamental_info, 0); - GeeFunctionsCompareDataFuncClosure_private_offset = g_type_add_instance_private (gee_functions_compare_data_func_closure_type_id, sizeof (GeeFunctionsCompareDataFuncClosurePrivate)); + gee_functions_compare_data_func_closure_type_id = gee_functions_compare_data_func_closure_get_type_once (); g_once_init_leave (&gee_functions_compare_data_func_closure_type_id__volatile, gee_functions_compare_data_func_closure_type_id); } return gee_functions_compare_data_func_closure_type_id__volatile; } -G_GNUC_INTERNAL gpointer + G_GNUC_INTERNAL gpointer gee_functions_compare_data_func_closure_ref (gpointer instance) { GeeFunctionsCompareDataFuncClosure * self; @@ -1679,7 +1658,7 @@ return instance; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_functions_compare_data_func_closure_unref (gpointer instance) { GeeFunctionsCompareDataFuncClosure * self; diff -Nru libgee-0.8-0.20.3/gee/future.c libgee-0.8-0.20.4/gee/future.c --- libgee-0.8-0.20.3/gee/future.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/future.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* future.c generated by valac 0.46.6, the Vala compiler +/* future.c generated by valac 0.52.0, the Vala compiler * generated from future.vala, do not modify */ /* future.vala @@ -23,32 +23,12 @@ * Maciej Piechotka */ +#include "gee.h" #include #include #include #include -#define GEE_TYPE_FUTURE (gee_future_get_type ()) -#define GEE_FUTURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_FUTURE, GeeFuture)) -#define GEE_IS_FUTURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_FUTURE)) -#define GEE_FUTURE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_FUTURE, GeeFutureIface)) - -typedef struct _GeeFuture GeeFuture; -typedef struct _GeeFutureIface GeeFutureIface; -typedef gpointer (*GeeFutureMapFunc) (gconstpointer value, gpointer user_data); -typedef gconstpointer (*GeeFutureLightMapFunc) (gconstpointer value, gpointer user_data); -typedef gpointer (*GeeFutureZipFunc) (gconstpointer a, gconstpointer b, gpointer user_data); -typedef GeeFuture* (*GeeFutureFlatMapFunc) (gconstpointer value, gpointer user_data); - -#define GEE_TYPE_PROMISE (gee_promise_get_type ()) -#define GEE_PROMISE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_PROMISE, GeePromise)) -#define GEE_PROMISE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_PROMISE, GeePromiseClass)) -#define GEE_IS_PROMISE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_PROMISE)) -#define GEE_IS_PROMISE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_PROMISE)) -#define GEE_PROMISE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_PROMISE, GeePromiseClass)) - -typedef struct _GeePromise GeePromise; -typedef struct _GeePromiseClass GeePromiseClass; typedef struct _Block7Data Block7Data; #define _gee_promise_unref0(var) ((var == NULL) ? NULL : (var = (gee_promise_unref (var), NULL))) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) @@ -71,30 +51,6 @@ #define GEE_FUTURE_TYPE_SOURCE_FUNC_ARRAY_ELEMENT (gee_future_source_func_array_element_get_type ()) typedef struct _GeeFutureSourceFuncArrayElement GeeFutureSourceFuncArrayElement; -typedef enum { - GEE_FUTURE_ERROR_ABANDON_PROMISE, - GEE_FUTURE_ERROR_EXCEPTION -} GeeFutureError; -#define GEE_FUTURE_ERROR gee_future_error_quark () -struct _GeeFutureIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeFuture* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeFuture* self); - GDestroyNotify (*get_g_destroy_func) (GeeFuture* self); - gconstpointer (*wait) (GeeFuture* self, GError** error); - gboolean (*wait_until) (GeeFuture* self, gint64 end_time, gconstpointer* value, GError** error); - void (*wait_async) (GeeFuture* self, GAsyncReadyCallback _callback_, gpointer _user_data_); - gconstpointer (*wait_finish) (GeeFuture* self, GAsyncResult* _res_, GError** error); - GeeFuture* (*map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); - GeeFuture* (*light_map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureLightMapFunc func, gpointer func_target); - GeeFuture* (*zip) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GType b_type, GBoxedCopyFunc b_dup_func, GDestroyNotify b_destroy_func, GeeFutureZipFunc zip_func, gpointer zip_func_target, GeeFuture* second); - GeeFuture* (*flat_map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureFlatMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); - gconstpointer (*get_value) (GeeFuture* self); - gboolean (*get_ready) (GeeFuture* self); - GError* (*get_exception) (GeeFuture* self); - GeeFuture* (*light_map_fixed) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureLightMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -}; - struct _Block7Data { int _ref_count_; GeeFuture* self; @@ -197,27 +153,6 @@ GDestroyNotify func_target_destroy_notify; }; -GQuark gee_future_error_quark (void); -GType gee_future_get_type (void) G_GNUC_CONST; -gconstpointer gee_future_wait (GeeFuture* self, - GError** error); -gboolean gee_future_wait_until (GeeFuture* self, - gint64 end_time, - gconstpointer* value, - GError** error); -void gee_future_wait_async (GeeFuture* self, - GAsyncReadyCallback _callback_, - gpointer _user_data_); -gconstpointer gee_future_wait_finish (GeeFuture* self, - GAsyncResult* _res_, - GError** error); -GeeFuture* gee_future_map (GeeFuture* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeFutureMapFunc func, - gpointer func_target, - GDestroyNotify func_target_destroy_notify); static GeeFuture* gee_future_real_map (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, @@ -225,47 +160,14 @@ GeeFutureMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -gpointer gee_promise_ref (gpointer instance); -void gee_promise_unref (gpointer instance); -GParamSpec* gee_param_spec_promise (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_promise (GValue* value, - gpointer v_object); -void gee_value_take_promise (GValue* value, - gpointer v_object); -gpointer gee_value_get_promise (const GValue* value); -GType gee_promise_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeePromise, gee_promise_unref) static Block7Data* block7_data_ref (Block7Data* _data7_); static void block7_data_unref (void * _userdata_); -GeePromise* gee_promise_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeePromise* gee_promise_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); static void __lambda4_ (Block7Data* _data7_, GObject* obj, GAsyncResult* res); -void gee_promise_set_value (GeePromise* self, - gpointer value); -void gee_promise_set_exception (GeePromise* self, - GError* exception); static void ___lambda4__gasync_ready_callback (GObject* source_object, GAsyncResult* res, gpointer self); -GeeFuture* gee_promise_get_future (GeePromise* self); -GeeFuture* gee_future_light_map_fixed (GeeFuture* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeFutureLightMapFunc func, - gpointer func_target, - GDestroyNotify func_target_destroy_notify); static GeeFuture* gee_future_real_light_map (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, @@ -273,7 +175,7 @@ GeeFutureLightMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeLightMapFuture* gee_light_map_future_new (GType a_type, + G_GNUC_INTERNAL GeeLightMapFuture* gee_light_map_future_new (GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GType g_type, @@ -283,7 +185,7 @@ GeeFutureLightMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeLightMapFuture* gee_light_map_future_construct (GType object_type, + G_GNUC_INTERNAL GeeLightMapFuture* gee_light_map_future_construct (GType object_type, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, @@ -294,30 +196,13 @@ GeeFutureLightMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GType gee_light_map_future_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLightMapFuture, g_object_unref) -GeeFuture* gee_future_light_map (GeeFuture* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeFutureLightMapFunc func, - gpointer func_target); + G_GNUC_INTERNAL GType gee_light_map_future_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeFuture* gee_future_real_light_map_broken (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureLightMapFunc func, gpointer func_target); -GeeFuture* gee_future_zip (GeeFuture* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GType b_type, - GBoxedCopyFunc b_dup_func, - GDestroyNotify b_destroy_func, - GeeFutureZipFunc zip_func, - gpointer zip_func_target, - GeeFuture* second); static GeeFuture* gee_future_real_zip (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, @@ -358,13 +243,6 @@ static void gee_future_do_zip_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_); -GeeFuture* gee_future_flat_map (GeeFuture* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeFutureFlatMapFunc func, - gpointer func_target, - GDestroyNotify func_target_destroy_notify); static GeeFuture* gee_future_real_flat_map (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, @@ -399,19 +277,17 @@ static void gee_future_do_flat_map_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_); -gconstpointer gee_future_get_value (GeeFuture* self); -gboolean gee_future_get_ready (GeeFuture* self); -GError* gee_future_get_exception (GeeFuture* self); -G_GNUC_INTERNAL GType gee_future_source_func_array_element_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_GNUC_INTERNAL GeeFutureSourceFuncArrayElement* gee_future_source_func_array_element_dup (const GeeFutureSourceFuncArrayElement* self); -G_GNUC_INTERNAL void gee_future_source_func_array_element_free (GeeFutureSourceFuncArrayElement* self); -G_GNUC_INTERNAL void gee_future_source_func_array_element_copy (const GeeFutureSourceFuncArrayElement* self, + G_GNUC_INTERNAL GType gee_future_source_func_array_element_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFutureSourceFuncArrayElement* gee_future_source_func_array_element_dup (const GeeFutureSourceFuncArrayElement* self); + G_GNUC_INTERNAL void gee_future_source_func_array_element_free (GeeFutureSourceFuncArrayElement* self); + G_GNUC_INTERNAL void gee_future_source_func_array_element_copy (const GeeFutureSourceFuncArrayElement* self, GeeFutureSourceFuncArrayElement* dest); -G_GNUC_INTERNAL void gee_future_source_func_array_element_destroy (GeeFutureSourceFuncArrayElement* self); -G_GNUC_INTERNAL void gee_future_source_func_array_element_init (GeeFutureSourceFuncArrayElement *self, + G_GNUC_INTERNAL void gee_future_source_func_array_element_destroy (GeeFutureSourceFuncArrayElement* self); + G_GNUC_INTERNAL void gee_future_source_func_array_element_init (GeeFutureSourceFuncArrayElement *self, GSourceFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); +static GType gee_future_get_type_once (void); /** * Waits until the value is ready. @@ -425,8 +301,13 @@ gee_future_wait (GeeFuture* self, GError** error) { + GeeFutureIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_FUTURE_GET_INTERFACE (self)->wait (self, error); + _iface_ = GEE_FUTURE_GET_INTERFACE (self); + if (_iface_->wait) { + return _iface_->wait (self, error); + } + return NULL; } /** @@ -445,8 +326,13 @@ gconstpointer* value, GError** error) { + GeeFutureIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_FUTURE_GET_INTERFACE (self)->wait_until (self, end_time, value, error); + _iface_ = GEE_FUTURE_GET_INTERFACE (self); + if (_iface_->wait_until) { + return _iface_->wait_until (self, end_time, value, error); + } + return FALSE; } void @@ -454,7 +340,11 @@ GAsyncReadyCallback _callback_, gpointer _user_data_) { - GEE_FUTURE_GET_INTERFACE (self)->wait_async (self, _callback_, _user_data_); + GeeFutureIface* _iface_; + _iface_ = GEE_FUTURE_GET_INTERFACE (self); + if (_iface_->wait_async) { + _iface_->wait_async (self, _callback_, _user_data_); + } } gconstpointer @@ -462,7 +352,12 @@ GAsyncResult* _res_, GError** error) { - return GEE_FUTURE_GET_INTERFACE (self)->wait_finish (self, _res_, error); + GeeFutureIface* _iface_; + _iface_ = GEE_FUTURE_GET_INTERFACE (self); + if (_iface_->wait_finish) { + return _iface_->wait_finish (self, _res_, error); + } + return NULL; } /** @@ -622,8 +517,13 @@ gpointer func_target, GDestroyNotify func_target_destroy_notify) { + GeeFutureIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_FUTURE_GET_INTERFACE (self)->map (self, a_type, a_dup_func, a_destroy_func, func, func_target, func_target_destroy_notify); + _iface_ = GEE_FUTURE_GET_INTERFACE (self); + if (_iface_->map) { + return _iface_->map (self, a_type, a_dup_func, a_destroy_func, func, func_target, func_target_destroy_notify); + } + return NULL; } /** @@ -685,8 +585,13 @@ gpointer func_target, GDestroyNotify func_target_destroy_notify) { + GeeFutureIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_FUTURE_GET_INTERFACE (self)->light_map_fixed (self, a_type, a_dup_func, a_destroy_func, func, func_target, func_target_destroy_notify); + _iface_ = GEE_FUTURE_GET_INTERFACE (self); + if (_iface_->light_map_fixed) { + return _iface_->light_map_fixed (self, a_type, a_dup_func, a_destroy_func, func, func_target, func_target_destroy_notify); + } + return NULL; } static GeeFuture* @@ -712,8 +617,13 @@ GeeFutureLightMapFunc func, gpointer func_target) { + GeeFutureIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_FUTURE_GET_INTERFACE (self)->light_map (self, a_type, a_dup_func, a_destroy_func, func, func_target); + _iface_ = GEE_FUTURE_GET_INTERFACE (self); + if (_iface_->light_map) { + return _iface_->light_map (self, a_type, a_dup_func, a_destroy_func, func, func_target); + } + return NULL; } /** @@ -854,8 +764,13 @@ gpointer zip_func_target, GeeFuture* second) { + GeeFutureIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_FUTURE_GET_INTERFACE (self)->zip (self, a_type, a_dup_func, a_destroy_func, b_type, b_dup_func, b_destroy_func, zip_func, zip_func_target, second); + _iface_ = GEE_FUTURE_GET_INTERFACE (self); + if (_iface_->zip) { + return _iface_->zip (self, a_type, a_dup_func, a_destroy_func, b_type, b_dup_func, b_destroy_func, zip_func, zip_func_target, second); + } + return NULL; } static void @@ -897,6 +812,9 @@ GeeFuture* _tmp0_; GeeFuture* _tmp1_; GeePromise* _tmp2_; + g_return_if_fail (first != NULL); + g_return_if_fail (second != NULL); + g_return_if_fail (_result_ != NULL); _data_ = g_slice_new0 (GeeFutureDoZipData); _data_->_async_result = g_task_new (NULL, NULL, _callback_, _user_data_); g_task_set_task_data (_data_->_async_result, _data_, gee_future_do_zip_data_free); @@ -965,7 +883,7 @@ _data_->_tmp1_ = ((_data_->_tmp0_ != NULL) && (_data_->a_dup_func != NULL)) ? _data_->a_dup_func ((gpointer) _data_->_tmp0_) : ((gpointer) _data_->_tmp0_); _data_->left = _data_->_tmp1_; if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) { - goto __catch1_g_error; + goto __catch0_g_error; } _data_->_state_ = 2; gee_future_wait_async (_data_->second, gee_future_do_zip_ready, _data_); @@ -976,7 +894,7 @@ _data_->right = _data_->_tmp3_; if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) { ((_data_->left == NULL) || (_data_->a_destroy_func == NULL)) ? NULL : (_data_->left = (_data_->a_destroy_func (_data_->left), NULL)); - goto __catch1_g_error; + goto __catch0_g_error; } _data_->_tmp4_ = _data_->left; _data_->_tmp5_ = _data_->right; @@ -985,8 +903,8 @@ ((_data_->right == NULL) || (_data_->b_destroy_func == NULL)) ? NULL : (_data_->right = (_data_->b_destroy_func (_data_->right), NULL)); ((_data_->left == NULL) || (_data_->a_destroy_func == NULL)) ? NULL : (_data_->left = (_data_->a_destroy_func (_data_->left), NULL)); } - goto __finally1; - __catch1_g_error: + goto __finally0; + __catch0_g_error: { _data_->ex = _data_->_inner_error0_; _data_->_inner_error0_ = NULL; @@ -995,7 +913,7 @@ gee_promise_set_exception (_data_->_result_, _data_->_tmp7_); _g_error_free0 (_data_->ex); } - __finally1: + __finally0: if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) { g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error0_->message, g_quark_to_string (_data_->_inner_error0_->domain), _data_->_inner_error0_->code); g_clear_error (&_data_->_inner_error0_); @@ -1135,8 +1053,13 @@ gpointer func_target, GDestroyNotify func_target_destroy_notify) { + GeeFutureIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_FUTURE_GET_INTERFACE (self)->flat_map (self, a_type, a_dup_func, a_destroy_func, func, func_target, func_target_destroy_notify); + _iface_ = GEE_FUTURE_GET_INTERFACE (self); + if (_iface_->flat_map) { + return _iface_->flat_map (self, a_type, a_dup_func, a_destroy_func, func, func_target, func_target_destroy_notify); + } + return NULL; } static void @@ -1171,6 +1094,8 @@ GeeFutureDoFlatMapData* _data_; GeeFuture* _tmp0_; GeePromise* _tmp1_; + g_return_if_fail (future != NULL); + g_return_if_fail (promise != NULL); _data_ = g_slice_new0 (GeeFutureDoFlatMapData); _data_->_async_result = g_task_new (NULL, NULL, _callback_, _user_data_); g_task_set_task_data (_data_->_async_result, _data_, gee_future_do_flat_map_data_free); @@ -1238,7 +1163,7 @@ _data_->_tmp1_ = ((_data_->_tmp0_ != NULL) && (_data_->a_dup_func != NULL)) ? _data_->a_dup_func ((gpointer) _data_->_tmp0_) : ((gpointer) _data_->_tmp0_); _data_->input = _data_->_tmp1_; if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) { - goto __catch2_g_error; + goto __catch0_g_error; } _data_->_tmp2_ = _data_->input; _data_->_tmp3_ = _data_->func (_data_->_tmp2_, _data_->func_target); @@ -1254,7 +1179,7 @@ _data_->output = _data_->_tmp7_; if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) { ((_data_->input == NULL) || (_data_->a_destroy_func == NULL)) ? NULL : (_data_->input = (_data_->a_destroy_func (_data_->input), NULL)); - goto __catch2_g_error; + goto __catch0_g_error; } _data_->_tmp8_ = _data_->output; _data_->output = NULL; @@ -1262,8 +1187,8 @@ ((_data_->output == NULL) || (_data_->b_destroy_func == NULL)) ? NULL : (_data_->output = (_data_->b_destroy_func (_data_->output), NULL)); ((_data_->input == NULL) || (_data_->a_destroy_func == NULL)) ? NULL : (_data_->input = (_data_->a_destroy_func (_data_->input), NULL)); } - goto __finally2; - __catch2_g_error: + goto __finally0; + __catch0_g_error: { _data_->ex = _data_->_inner_error0_; _data_->_inner_error0_ = NULL; @@ -1272,7 +1197,7 @@ gee_promise_set_exception (_data_->promise, _data_->_tmp9_); _g_error_free0 (_data_->ex); } - __finally2: + __finally0: if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) { (_data_->func_target_destroy_notify == NULL) ? NULL : (_data_->func_target_destroy_notify (_data_->func_target), NULL); _data_->func = NULL; @@ -1300,8 +1225,13 @@ gconstpointer gee_future_get_value (GeeFuture* self) { + GeeFutureIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_FUTURE_GET_INTERFACE (self)->get_value (self); + _iface_ = GEE_FUTURE_GET_INTERFACE (self); + if (_iface_->get_value) { + return _iface_->get_value (self); + } + return NULL; } static gconstpointer @@ -1318,7 +1248,7 @@ _tmp0_ = _tmp1_; if (G_UNLIKELY (_inner_error0_ != NULL)) { if (_inner_error0_->domain == GEE_FUTURE_ERROR) { - goto __catch3_gee_future_error; + goto __catch0_gee_future_error; } g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); @@ -1327,17 +1257,14 @@ result = _tmp0_; return result; } - goto __finally3; - __catch3_gee_future_error: + goto __finally0; + __catch0_gee_future_error: { - GError* ex = NULL; - ex = _inner_error0_; - _inner_error0_ = NULL; + g_clear_error (&_inner_error0_); result = NULL; - _g_error_free0 (ex); return result; } - __finally3: + __finally0: g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); return NULL; @@ -1346,18 +1273,28 @@ gboolean gee_future_get_ready (GeeFuture* self) { + GeeFutureIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_FUTURE_GET_INTERFACE (self)->get_ready (self); + _iface_ = GEE_FUTURE_GET_INTERFACE (self); + if (_iface_->get_ready) { + return _iface_->get_ready (self); + } + return FALSE; } GError* gee_future_get_exception (GeeFuture* self) { + GeeFutureIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_FUTURE_GET_INTERFACE (self)->get_exception (self); + _iface_ = GEE_FUTURE_GET_INTERFACE (self); + if (_iface_->get_exception) { + return _iface_->get_exception (self); + } + return NULL; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_future_source_func_array_element_init (GeeFutureSourceFuncArrayElement *self, GSourceFunc func, gpointer func_target, @@ -1386,7 +1323,7 @@ func_target_destroy_notify = NULL; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_future_source_func_array_element_copy (const GeeFutureSourceFuncArrayElement* self, GeeFutureSourceFuncArrayElement* dest) { @@ -1403,7 +1340,7 @@ (*dest).func_target_destroy_notify = NULL; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_future_source_func_array_element_destroy (GeeFutureSourceFuncArrayElement* self) { ((*self).func_target_destroy_notify == NULL) ? NULL : ((*self).func_target_destroy_notify ((*self).func_target), NULL); @@ -1421,20 +1358,28 @@ return dup; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_future_source_func_array_element_free (GeeFutureSourceFuncArrayElement* self) { gee_future_source_func_array_element_destroy (self); g_free (self); } -G_GNUC_INTERNAL GType +static GType +gee_future_source_func_array_element_get_type_once (void) +{ + GType gee_future_source_func_array_element_type_id; + gee_future_source_func_array_element_type_id = g_boxed_type_register_static ("GeeFutureSourceFuncArrayElement", (GBoxedCopyFunc) gee_future_source_func_array_element_dup, (GBoxedFreeFunc) gee_future_source_func_array_element_free); + return gee_future_source_func_array_element_type_id; +} + + G_GNUC_INTERNAL GType gee_future_source_func_array_element_get_type (void) { static volatile gsize gee_future_source_func_array_element_type_id__volatile = 0; if (g_once_init_enter (&gee_future_source_func_array_element_type_id__volatile)) { GType gee_future_source_func_array_element_type_id; - gee_future_source_func_array_element_type_id = g_boxed_type_register_static ("GeeFutureSourceFuncArrayElement", (GBoxedCopyFunc) gee_future_source_func_array_element_dup, (GBoxedFreeFunc) gee_future_source_func_array_element_free); + gee_future_source_func_array_element_type_id = gee_future_source_func_array_element_get_type_once (); g_once_init_leave (&gee_future_source_func_array_element_type_id__volatile, gee_future_source_func_array_element_type_id); } return gee_future_source_func_array_element_type_id__volatile; @@ -1446,7 +1391,7 @@ { /** * Checks if value is ready. If it is calls to {@link wait} and - * {@link wait_until} will not block and value is returned immidiatly. + * {@link wait_until} will not block and value is returned immediately. */ g_object_interface_install_property (iface, g_param_spec_boolean ("ready", "ready", "ready", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); /** @@ -1483,15 +1428,23 @@ * @see async_task * @since 0.11.0 */ +static GType +gee_future_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeFutureIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_future_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_future_type_id; + gee_future_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeFuture", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_future_type_id, G_TYPE_OBJECT); + return gee_future_type_id; +} + GType gee_future_get_type (void) { static volatile gsize gee_future_type_id__volatile = 0; if (g_once_init_enter (&gee_future_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeFutureIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_future_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_future_type_id; - gee_future_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeFuture", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_future_type_id, G_TYPE_OBJECT); + gee_future_type_id = gee_future_get_type_once (); g_once_init_leave (&gee_future_type_id__volatile, gee_future_type_id); } return gee_future_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/future.vala libgee-0.8-0.20.4/gee/future.vala --- libgee-0.8-0.20.3/gee/future.vala 2019-10-16 11:48:54.000000000 +0000 +++ libgee-0.8-0.20.4/gee/future.vala 2021-03-17 11:24:00.000000000 +0000 @@ -61,7 +61,7 @@ /** * Checks if value is ready. If it is calls to {@link wait} and - * {@link wait_until} will not block and value is returned immidiatly. + * {@link wait_until} will not block and value is returned immediately. */ [CCode (ordering = 8)] public abstract bool ready {get;} diff -Nru libgee-0.8-0.20.3/gee/Gee-0.8.gir libgee-0.8-0.20.4/gee/Gee-0.8.gir --- libgee-0.8-0.20.3/gee/Gee-0.8.gir 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/Gee-0.8.gir 2021-03-17 19:58:43.000000000 +0000 @@ -1,12 +1,12 @@ - + - + @@ -59,7 +59,7 @@ - + @@ -82,6 +82,13 @@ + + + + + + + @@ -89,6 +96,253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -101,6 +355,13 @@ + + + + + + + @@ -108,6 +369,13 @@ + + + + + + + @@ -122,135 +390,157 @@ - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + @@ -273,6 +563,13 @@ + + + + + + + @@ -280,168 +577,451 @@ + + + + + + + - - - - - - + - - - + + + + + + + + - + - - - + + + + + + + + - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + @@ -474,6 +1054,14 @@ + + + + + + + + @@ -482,172 +1070,489 @@ + + + + + + + + - - - - - - - + - - - - + + + + + + + + + - + - - - - + - - - - - - - - - - + + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + @@ -671,6 +1576,11 @@ + + + + + @@ -681,6 +1591,11 @@ + + + + + @@ -691,6 +1606,11 @@ + + + + + @@ -701,6 +1621,11 @@ + + + + + @@ -711,6 +1636,11 @@ + + + + + @@ -721,6 +1651,11 @@ + + + + + @@ -728,13 +1663,27 @@ - + + + + + + + + - + + + + + + + + @@ -742,6 +1691,13 @@ + + + + + + + @@ -749,12 +1705,24 @@ + + + + + + + + + + + + @@ -768,6 +1736,11 @@ + + + + + @@ -776,6 +1749,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -783,11 +1996,25 @@ + + + + + + + + + + + + + + @@ -796,11 +2023,25 @@ + + + + + + + + + + + + + + @@ -813,6 +2054,13 @@ + + + + + + + @@ -820,6 +2068,13 @@ + + + + + + + @@ -832,9 +2087,11 @@ - - - + + + + + @@ -847,9 +2104,11 @@ - - - + + + + + @@ -862,9 +2121,11 @@ - - - + + + + + @@ -874,12 +2135,14 @@ - + - - - + + + + + @@ -891,9 +2154,11 @@ - - - + + + + + @@ -903,10 +2168,12 @@ - - - - + + + + + + @@ -918,126 +2185,146 @@ - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + @@ -1060,6 +2347,13 @@ + + + + + + + @@ -1067,12 +2361,24 @@ + + + + + + + + + + + + @@ -1083,6 +2389,11 @@ + + + + + @@ -1090,9 +2401,14 @@ - + + + + + + @@ -1103,9 +2419,14 @@ - + + + + + + @@ -1119,6 +2440,11 @@ + + + + + @@ -1129,6 +2455,11 @@ + + + + + @@ -1136,9 +2467,14 @@ - + + + + + + @@ -1149,9 +2485,14 @@ - + + + + + + @@ -1165,6 +2506,11 @@ + + + + + @@ -1175,6 +2521,11 @@ + + + + + @@ -1187,6 +2538,11 @@ + + + + + @@ -1202,6 +2558,11 @@ + + + + + @@ -1210,6 +2571,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1221,6 +2822,13 @@ + + + + + + + @@ -1228,6 +2836,13 @@ + + + + + + + @@ -1242,9 +2857,11 @@ - - - + + + + + @@ -1254,9 +2871,11 @@ - - - + + + + + @@ -1266,12 +2885,14 @@ - + - - - + + + + + @@ -1287,9 +2908,11 @@ - - - + + + + + @@ -1299,12 +2922,14 @@ - + - - - + + + + + @@ -1320,9 +2945,11 @@ - - - + + + + + @@ -1337,9 +2964,11 @@ - - - + + + + + @@ -1352,126 +2981,146 @@ - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + @@ -1504,6 +3153,12 @@ + + + + + + @@ -1514,6 +3169,12 @@ + + + + + + @@ -1524,6 +3185,12 @@ + + + + + + @@ -1537,6 +3204,12 @@ + + + + + + @@ -1550,6 +3223,12 @@ + + + + + + @@ -1560,6 +3239,12 @@ + + + + + + @@ -1567,9 +3252,15 @@ - + + + + + + + @@ -1580,9 +3271,15 @@ - + + + + + + + @@ -1596,6 +3293,12 @@ + + + + + + @@ -1609,6 +3312,12 @@ + + + + + + @@ -1624,6 +3333,14 @@ + + + + + + + + @@ -1632,22 +3349,52 @@ + + + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + + + @@ -1661,6 +3408,12 @@ + + + + + + @@ -1676,7 +3429,13 @@ - + + + + + + + @@ -1703,6 +3462,12 @@ + + + + + + @@ -1723,6 +3488,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1730,11 +3755,27 @@ + + + + + + + + + + + + + + + + @@ -1743,11 +3784,27 @@ + + + + + + + + + + + + + + + + @@ -1760,6 +3817,14 @@ + + + + + + + + @@ -1767,6 +3832,14 @@ + + + + + + + + @@ -1779,6 +3852,14 @@ + + + + + + + + @@ -1786,6 +3867,14 @@ + + + + + + + + @@ -1804,6 +3893,14 @@ + + + + + + + + @@ -1814,6 +3911,14 @@ + + + + + + + + @@ -1828,6 +3933,14 @@ + + + + + + + + @@ -1836,6 +3949,14 @@ + + + + + + + + @@ -1848,9 +3969,12 @@ - - - + + + + + + @@ -1863,9 +3987,12 @@ - - - + + + + + + @@ -1881,9 +4008,12 @@ - - - + + + + + + @@ -1893,12 +4023,15 @@ - + - - - + + + + + + @@ -1914,9 +4047,12 @@ - - - + + + + + + @@ -1935,21 +4071,27 @@ - - - + + + + + + - + - - - + + + + + + @@ -1959,10 +4101,13 @@ - - - - + + + + + + + @@ -1979,9 +4124,12 @@ - - - + + + + + + @@ -1991,7 +4139,7 @@ - + @@ -2006,126 +4154,156 @@ - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + @@ -2165,6 +4343,14 @@ + + + + + + + + @@ -2172,6 +4358,14 @@ + + + + + + + + @@ -2179,6 +4373,14 @@ + + + + + + + + @@ -2186,12 +4388,26 @@ + + + + + + + + + + + + + + @@ -2205,6 +4421,12 @@ + + + + + + @@ -2213,6 +4435,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2220,6 +4676,14 @@ + + + + + + + + @@ -2228,6 +4692,14 @@ + + + + + + + + @@ -2242,9 +4714,12 @@ - - - + + + + + + @@ -2256,21 +4731,27 @@ - - - + + + + + + - + - - - + + + + + + @@ -2283,114 +4764,141 @@ - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + @@ -2413,12 +4921,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2426,6 +5157,13 @@ + + + + + + + @@ -2435,114 +5173,132 @@ - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + @@ -2563,21 +5319,289 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2586,11 +5610,25 @@ + + + + + + + + + + + + + + @@ -2599,11 +5637,25 @@ + + + + + + + + + + + + + + @@ -2612,11 +5664,25 @@ + + + + + + + + + + + + + + @@ -2629,9 +5695,11 @@ - - - + + + + + @@ -2641,135 +5709,157 @@ - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + @@ -2786,6 +5876,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2797,6 +6127,13 @@ + + + + + + + @@ -2804,6 +6141,13 @@ + + + + + + + @@ -2813,126 +6157,146 @@ - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + @@ -2966,6 +6330,12 @@ + + + + + + @@ -2979,6 +6349,12 @@ + + + + + + @@ -2992,6 +6368,12 @@ + + + + + + @@ -3005,6 +6387,12 @@ + + + + + + @@ -3018,6 +6406,12 @@ + + + + + + @@ -3034,6 +6428,12 @@ + + + + + + @@ -3042,6 +6442,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3053,6 +6713,14 @@ + + + + + + + + @@ -3060,6 +6728,14 @@ + + + + + + + + @@ -3078,6 +6754,14 @@ + + + + + + + + @@ -3088,6 +6772,14 @@ + + + + + + + + @@ -3103,9 +6795,12 @@ - - - + + + + + + @@ -3121,9 +6816,12 @@ - - - + + + + + + @@ -3139,9 +6837,12 @@ - - - + + + + + + @@ -3154,126 +6855,156 @@ - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + - - - + + + + + + - + @@ -3294,21 +7025,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3317,6 +7076,11 @@ + + + + + @@ -3329,6 +7093,11 @@ + + + + + @@ -3339,6 +7108,11 @@ + + + + + @@ -3349,6 +7123,11 @@ + + + + + @@ -3359,6 +7138,11 @@ + + + + + @@ -3369,6 +7153,11 @@ + + + + + @@ -3379,6 +7168,11 @@ + + + + + @@ -3389,6 +7183,11 @@ + + + + + @@ -3399,6 +7198,11 @@ + + + + + @@ -3409,6 +7213,11 @@ + + + + + @@ -3421,6 +7230,11 @@ + + + + + @@ -3433,6 +7247,11 @@ + + + + + @@ -3445,6 +7264,11 @@ + + + + + @@ -3452,44 +7276,299 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + - + - - - + - - - - - - + + + + + - + - - - + - - - - - - + + + + + @@ -3503,6 +7582,13 @@ + + + + + + + @@ -3510,6 +7596,13 @@ + + + + + + + @@ -3522,9 +7615,11 @@ - - - + + + + + @@ -3534,9 +7629,11 @@ - - - + + + + + @@ -3548,9 +7645,11 @@ - - - + + + + + @@ -3563,9 +7662,11 @@ - - - + + + + + @@ -3578,9 +7679,11 @@ - - - + + + + + @@ -3593,9 +7696,11 @@ - - - + + + + + @@ -3608,9 +7713,11 @@ - - - + + + + + @@ -3625,9 +7732,11 @@ - - - + + + + + @@ -3642,9 +7751,11 @@ - - - + + + + + @@ -3659,9 +7770,11 @@ - - - + + + + + @@ -3674,126 +7787,146 @@ - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + - - - + + + + + - + @@ -3809,9 +7942,22 @@ + + + + + + + + + + + - + + + @@ -3836,7 +7982,9 @@ - + + + @@ -3872,6 +8020,11 @@ + + + + + @@ -3884,6 +8037,11 @@ + + + + + @@ -3896,7 +8054,7 @@ - + @@ -3915,7 +8073,9 @@ - + + + @@ -3943,6 +8103,11 @@ + + + + + @@ -3955,6 +8120,13 @@ + + + + + + + @@ -3963,7 +8135,7 @@ - + @@ -3981,7 +8153,9 @@ - + + + @@ -4009,6 +8183,11 @@ + + + + + @@ -4021,6 +8200,13 @@ + + + + + + + @@ -4029,7 +8215,7 @@ - + @@ -4047,7 +8233,9 @@ - + + + @@ -4083,7 +8271,7 @@ - + @@ -4110,7 +8298,10 @@ - + + + + @@ -4165,6 +8356,12 @@ + + + + + + @@ -4175,6 +8372,12 @@ + + + + + + @@ -4185,6 +8388,12 @@ + + + + + + @@ -4197,7 +8406,7 @@ - + @@ -4224,7 +8433,10 @@ - + + + + @@ -4288,6 +8500,12 @@ + + + + + + @@ -4298,6 +8516,12 @@ + + + + + + @@ -4308,6 +8532,12 @@ + + + + + + @@ -4318,6 +8548,12 @@ + + + + + + @@ -4330,7 +8566,7 @@ - + @@ -4348,7 +8584,9 @@ - + + + @@ -4382,7 +8620,9 @@ - + + + @@ -4413,6 +8653,11 @@ + + + + + @@ -4423,6 +8668,11 @@ + + + + + @@ -4435,7 +8685,7 @@ - + @@ -4453,7 +8703,9 @@ - + + + @@ -4490,6 +8742,11 @@ + + + + + @@ -4500,6 +8757,11 @@ + + + + + @@ -4513,9 +8775,14 @@ + + + - + + + @@ -4619,7 +8886,7 @@ - + @@ -4715,6 +8982,11 @@ + + + + + @@ -4722,9 +8994,14 @@ - + + + + + + @@ -4732,7 +9009,7 @@ - + @@ -4742,7 +9019,7 @@ - + @@ -4773,27 +9050,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4806,26 +9114,46 @@ - + + + + + + - + + + + + + - + + + + + + - + + + + + + - + @@ -4837,7 +9165,9 @@ - + + + @@ -4862,7 +9192,9 @@ - + + + @@ -4881,18 +9213,39 @@ - + + + + + + + + + + + + + + + + + + + + + + @@ -4900,6 +9253,13 @@ + + + + + + + @@ -4908,7 +9268,7 @@ - + @@ -4928,7 +9288,9 @@ - + + + @@ -4955,17 +9317,36 @@ + + + + + + + + + + + + + + + + + + + @@ -4978,7 +9359,7 @@ - + @@ -4996,7 +9377,9 @@ - + + + @@ -5024,6 +9407,11 @@ + + + + + @@ -5034,6 +9422,11 @@ + + + + + @@ -5049,6 +9442,11 @@ + + + + + @@ -5061,7 +9459,7 @@ - + @@ -5073,7 +9471,9 @@ - + + + @@ -5089,9 +9489,14 @@ - + + + + + + @@ -5099,11 +9504,16 @@ - + + + + + + - + @@ -5113,6 +9523,13 @@ + + + + + + + @@ -5121,7 +9538,7 @@ - + @@ -5148,7 +9565,10 @@ - + + + + @@ -5194,6 +9614,12 @@ + + + + + + @@ -5204,6 +9630,12 @@ + + + + + + @@ -5216,7 +9648,7 @@ - + @@ -5243,7 +9675,10 @@ - + + + + @@ -5289,6 +9724,12 @@ + + + + + + @@ -5299,6 +9740,12 @@ + + + + + + @@ -5311,7 +9758,7 @@ - + @@ -5329,7 +9776,9 @@ - + + + @@ -5357,6 +9806,11 @@ + + + + + @@ -5369,7 +9823,7 @@ - + @@ -5387,7 +9841,9 @@ - + + + @@ -5415,6 +9871,11 @@ + + + + + @@ -5427,7 +9888,7 @@ - + @@ -5447,7 +9908,9 @@ - + + + @@ -5475,6 +9938,11 @@ + + + + + @@ -5487,47 +9955,103 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5540,9 +10064,11 @@ - - - + + + + + @@ -5552,9 +10078,11 @@ - - - + + + + + @@ -5564,9 +10092,11 @@ - - - + + + + + @@ -5576,14 +10106,16 @@ - - - + + + + + - + @@ -5591,6 +10123,13 @@ + + + + + + + @@ -5598,6 +10137,13 @@ + + + + + + + @@ -5610,6 +10156,13 @@ + + + + + + + @@ -5617,6 +10170,13 @@ + + + + + + + @@ -5631,9 +10191,11 @@ - - - + + + + + @@ -5645,21 +10207,28 @@ - - - + + + + + - + - + + + + + + @@ -5667,9 +10236,14 @@ - + + + + + + @@ -5683,12 +10257,14 @@ - + - - - + + + + + @@ -5696,47 +10272,111 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5749,9 +10389,12 @@ - - - + + + + + + @@ -5761,9 +10404,12 @@ - - - + + + + + + @@ -5773,9 +10419,12 @@ - - - + + + + + + @@ -5785,14 +10434,17 @@ - - - + + + + + + - + @@ -5800,6 +10452,13 @@ + + + + + + + @@ -5807,6 +10466,13 @@ + + + + + + + @@ -5837,6 +10503,13 @@ + + + + + + + @@ -5844,6 +10517,13 @@ + + + + + + + @@ -5858,9 +10538,11 @@ - - - + + + + + @@ -5872,14 +10554,16 @@ - - - + + + + + - + @@ -5888,6 +10572,14 @@ + + + + + + + + @@ -5896,6 +10588,14 @@ + + + + + + + + @@ -5938,6 +10638,14 @@ + + + + + + + + @@ -5946,6 +10654,14 @@ + + + + + + + + @@ -5961,9 +10677,12 @@ - - - + + + + + + @@ -5976,20 +10695,28 @@ - - - + + + + + + - + + + + + + @@ -6000,6 +10727,11 @@ + + + + + @@ -6010,6 +10742,11 @@ + + + + + @@ -6020,6 +10757,11 @@ + + + + + @@ -6030,6 +10772,11 @@ + + + + + @@ -6040,6 +10787,11 @@ + + + + + @@ -6047,19 +10799,38 @@ - + + + + + + + + - + + + + + + + + + + + + + @@ -6072,6 +10843,11 @@ + + + + + @@ -6084,6 +10860,11 @@ + + + + + @@ -6096,6 +10877,11 @@ + + + + + @@ -6108,6 +10894,11 @@ + + + + + @@ -6120,6 +10911,11 @@ + + + + + @@ -6132,6 +10928,11 @@ + + + + + @@ -6144,6 +10945,11 @@ + + + + + @@ -6158,6 +10964,11 @@ + + + + + @@ -6170,6 +10981,11 @@ + + + + + @@ -6180,6 +10996,11 @@ + + + + + @@ -6195,6 +11016,11 @@ + + + + + @@ -6210,6 +11036,11 @@ + + + + + @@ -6225,6 +11056,11 @@ + + + + + @@ -6240,6 +11076,11 @@ + + + + + @@ -6255,6 +11096,11 @@ + + + + + @@ -6270,6 +11116,11 @@ + + + + + @@ -6282,6 +11133,11 @@ + + + + + @@ -6294,6 +11150,11 @@ + + + + + @@ -6306,6 +11167,11 @@ + + + + + @@ -6318,6 +11184,11 @@ + + + + + @@ -6330,6 +11201,11 @@ + + + + + @@ -6362,21 +11238,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6385,11 +11289,25 @@ + + + + + + + + + + + + + + @@ -6402,6 +11320,13 @@ + + + + + + + @@ -6409,6 +11334,13 @@ + + + + + + + @@ -6421,9 +11353,11 @@ - - - + + + + + @@ -6436,9 +11370,11 @@ - - - + + + + + @@ -6451,9 +11387,11 @@ - - - + + + + + @@ -6463,12 +11401,14 @@ - + - - - + + + + + @@ -6478,9 +11418,11 @@ - - - + + + + + @@ -6495,9 +11437,11 @@ - - - + + + + + @@ -6512,9 +11456,11 @@ - - - + + + + + @@ -6529,9 +11475,11 @@ - - - + + + + + @@ -6543,14 +11491,16 @@ - + - - - + + + + + @@ -6563,11 +11513,13 @@ - - - + + + + + - + @@ -6583,11 +11535,13 @@ - - - + + + + + - + @@ -6603,11 +11557,13 @@ - - - + + + + + - + @@ -6623,9 +11579,11 @@ - - - + + + + + @@ -6640,9 +11598,11 @@ - - - + + + + + @@ -6657,9 +11617,11 @@ - - - + + + + + @@ -6674,9 +11636,11 @@ - - - + + + + + @@ -6686,9 +11650,11 @@ - - - + + + + + @@ -6698,9 +11664,11 @@ - - - + + + + + @@ -6712,20 +11680,27 @@ - - - + + + + + - + + + + + + @@ -6736,6 +11711,11 @@ + + + + + @@ -6752,9 +11732,11 @@ - - - + + + + + @@ -6762,13 +11744,18 @@ - + + + + + + @@ -6779,6 +11766,11 @@ + + + + + @@ -6788,27 +11780,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6824,6 +11849,11 @@ + + + + + @@ -6839,6 +11869,11 @@ + + + + + @@ -6849,6 +11884,11 @@ + + + + + @@ -6858,27 +11898,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -6894,6 +11967,11 @@ + + + + + @@ -6915,9 +11993,11 @@ - - - + + + + + @@ -6930,9 +12010,11 @@ - - - + + + + + @@ -6942,9 +12024,11 @@ - - - + + + + + @@ -6954,9 +12038,11 @@ - - - + + + + + @@ -6974,9 +12060,11 @@ - - - + + + + + @@ -6989,9 +12077,11 @@ - - - + + + + + @@ -7001,9 +12091,11 @@ - - - + + + + + @@ -7013,9 +12105,11 @@ - - - + + + + + @@ -7028,23 +12122,42 @@ - + + + + + + + + + + + + + + + + + + + + @@ -7058,6 +12171,11 @@ + + + + + @@ -7068,9 +12186,14 @@ - + + + + + + @@ -7084,6 +12207,11 @@ + + + + + @@ -7091,9 +12219,14 @@ - + + + + + + @@ -7107,6 +12240,11 @@ + + + + + @@ -7119,6 +12257,11 @@ + + + + + @@ -7146,6 +12289,11 @@ + + + + + @@ -7173,6 +12321,11 @@ + + + + + @@ -7200,6 +12353,11 @@ + + + + + @@ -7227,6 +12385,11 @@ + + + + + @@ -7251,6 +12414,11 @@ + + + + + @@ -7275,6 +12443,11 @@ + + + + + @@ -7313,6 +12486,11 @@ + + + + + @@ -7351,6 +12529,11 @@ + + + + + @@ -7378,6 +12561,11 @@ + + + + + @@ -7402,11 +12590,25 @@ + + + + + + + + + + + + + + @@ -7415,24 +12617,52 @@ + + + + + + + + + + + + + + - + - + + + + + + + + - + + + + + + + + @@ -7583,9 +12813,11 @@ - - - + + + + + @@ -7595,9 +12827,11 @@ - - - + + + + + @@ -7610,13 +12844,15 @@ - + - - - - + + + + + + @@ -7631,9 +12867,11 @@ - - - + + + + + @@ -7648,9 +12886,11 @@ - - - + + + + + @@ -7660,7 +12900,7 @@ - + @@ -7680,9 +12920,11 @@ - - - + + + + + @@ -7692,7 +12934,7 @@ - + @@ -7712,9 +12954,11 @@ - - - + + + + + @@ -7724,7 +12968,7 @@ - + @@ -7741,9 +12985,11 @@ - - - + + + + + @@ -7762,7 +13008,7 @@ - + @@ -7784,9 +13030,11 @@ - - - + + + + + @@ -7796,7 +13044,7 @@ - + @@ -7814,9 +13062,11 @@ - - - + + + + + @@ -7826,42 +13076,65 @@ - - - + + + + + - + - - - + + + + + - + + + + + + + + + + + + + + + + + + + + @@ -7872,6 +13145,11 @@ + + + + + @@ -7888,9 +13166,11 @@ - - - + + + + + @@ -7900,9 +13180,11 @@ - - - + + + + + @@ -7910,7 +13192,7 @@ - + @@ -7919,6 +13201,13 @@ + + + + + + + @@ -7926,6 +13215,13 @@ + + + + + + + @@ -7940,55 +13236,113 @@ - - - + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + - + + + + + + + + @@ -8054,11 +13408,25 @@ + + + + + + + + + + + + + + @@ -8067,11 +13435,25 @@ + + + + + + + + + + + + + + @@ -8084,9 +13466,11 @@ - - - + + + + + @@ -8096,9 +13480,11 @@ - - - + + + + + @@ -8108,21 +13494,25 @@ - - - + + + + + - + - - - + + + + + @@ -8132,9 +13522,11 @@ - - - + + + + + @@ -8144,14 +13536,16 @@ - - - + + + + + - + @@ -8159,6 +13553,13 @@ + + + + + + + @@ -8166,12 +13567,24 @@ + + + + + + + + + + + + @@ -8182,6 +13595,11 @@ + + + + + @@ -8189,9 +13607,14 @@ - + + + + + + @@ -8202,9 +13625,14 @@ - + + + + + + @@ -8218,6 +13646,11 @@ + + + + + @@ -8228,6 +13661,11 @@ + + + + + @@ -8235,9 +13673,14 @@ - + + + + + + @@ -8248,9 +13691,14 @@ - + + + + + + @@ -8264,6 +13712,11 @@ + + + + + @@ -8274,6 +13727,11 @@ + + + + + @@ -8286,6 +13744,11 @@ + + + + + @@ -8301,6 +13764,11 @@ + + + + + @@ -8313,27 +13781,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + @@ -8346,9 +13847,14 @@ - + + + + + + @@ -8361,9 +13867,14 @@ - + + + + + + @@ -8377,9 +13888,14 @@ - + + + + + + @@ -8420,6 +13936,13 @@ + + + + + + + @@ -8427,6 +13950,13 @@ + + + + + + + @@ -8441,9 +13971,11 @@ - - - + + + + + @@ -8453,9 +13985,11 @@ - - - + + + + + @@ -8465,12 +13999,14 @@ - + - - - + + + + + @@ -8486,9 +14022,11 @@ - - - + + + + + @@ -8498,12 +14036,14 @@ - + - - - + + + + + @@ -8519,9 +14059,11 @@ - - - + + + + + @@ -8536,9 +14078,11 @@ - - - + + + + + @@ -8554,9 +14098,11 @@ - - - + + + + + @@ -8566,21 +14112,25 @@ - - - + + + + + - + - - - + + + + + @@ -8595,13 +14145,15 @@ - + - - - - + + + + + + @@ -8621,20 +14173,27 @@ - - - + + + + + - + - + + + + + + @@ -8642,9 +14201,14 @@ - + + + + + + @@ -8652,9 +14216,14 @@ - + + + + + + @@ -8662,9 +14231,14 @@ - + + + + + + @@ -8674,11 +14248,25 @@ + + + + + + + + + + + + + + @@ -8688,12 +14276,14 @@ - + - - - + + + + + @@ -8703,12 +14293,14 @@ - + - - - + + + + + @@ -8721,14 +14313,16 @@ - - - + + + + + - + @@ -8736,6 +14330,12 @@ + + + + + + @@ -8746,6 +14346,12 @@ + + + + + + @@ -8756,6 +14362,12 @@ + + + + + + @@ -8766,6 +14378,12 @@ + + + + + + @@ -8779,6 +14397,12 @@ + + + + + + @@ -8792,6 +14416,12 @@ + + + + + + @@ -8802,6 +14432,12 @@ + + + + + + @@ -8809,9 +14445,15 @@ - + + + + + + + @@ -8822,9 +14464,15 @@ - + + + + + + + @@ -8838,6 +14486,12 @@ + + + + + + @@ -8851,6 +14505,12 @@ + + + + + + @@ -8864,6 +14524,12 @@ + + + + + + @@ -8874,13 +14540,29 @@ - + + + + + + + + + - + + + + + + + + + @@ -8889,6 +14571,14 @@ + + + + + + + + @@ -8897,12 +14587,26 @@ + + + + + + + + - + + + + + + + @@ -8913,9 +14617,15 @@ - + + + + + + + @@ -8929,6 +14639,12 @@ + + + + + + @@ -8942,6 +14658,12 @@ + + + + + + @@ -8955,6 +14677,12 @@ + + + + + + @@ -8968,6 +14696,12 @@ + + + + + + @@ -8981,6 +14715,12 @@ + + + + + + @@ -8994,6 +14734,12 @@ + + + + + + @@ -9037,21 +14783,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -9060,11 +14838,27 @@ + + + + + + + + + + + + + + + + @@ -9077,6 +14871,14 @@ + + + + + + + + @@ -9084,6 +14886,14 @@ + + + + + + + + @@ -9096,6 +14906,14 @@ + + + + + + + + @@ -9103,6 +14921,14 @@ + + + + + + + + @@ -9121,6 +14947,14 @@ + + + + + + + + @@ -9131,6 +14965,14 @@ + + + + + + + + @@ -9145,6 +14987,14 @@ + + + + + + + + @@ -9153,16 +15003,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -9175,9 +15049,12 @@ - - - + + + + + + @@ -9190,9 +15067,12 @@ - - - + + + + + + @@ -9208,9 +15088,12 @@ - - - + + + + + + @@ -9220,12 +15103,15 @@ - + - - - + + + + + + @@ -9241,9 +15127,12 @@ - - - + + + + + + @@ -9256,12 +15145,15 @@ - + - - - + + + + + + @@ -9274,21 +15166,27 @@ - - - + + + + + + - + - - - + + + + + + @@ -9304,9 +15202,12 @@ - - - + + + + + + @@ -9322,9 +15223,12 @@ - - - + + + + + + @@ -9340,9 +15244,12 @@ - - - + + + + + + @@ -9352,9 +15259,12 @@ - - - + + + + + + @@ -9364,9 +15274,12 @@ - - - + + + + + + @@ -9378,9 +15291,12 @@ - - - + + + + + + @@ -9392,9 +15308,12 @@ - - - + + + + + + @@ -9409,9 +15328,12 @@ - - - + + + + + + @@ -9424,14 +15346,17 @@ - - - + + + + + + - + @@ -9463,11 +15388,27 @@ + + + + + + + + + + + + + + + + @@ -9476,17 +15417,39 @@ + + + + + + + + + + + + + + + + - + + + + + + + @@ -9494,9 +15457,15 @@ - + + + + + + + @@ -9509,11 +15478,27 @@ + + + + + + + + + + + + + + + + @@ -9522,53 +15507,123 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + @@ -9576,9 +15631,15 @@ - + + + + + + + @@ -9586,19 +15647,41 @@ - + + + + + + + + + - + + + + + + + + + + + + + + + @@ -9624,6 +15707,12 @@ + + + + + + @@ -9649,6 +15738,12 @@ + + + + + + @@ -9662,6 +15757,12 @@ + + + + + + @@ -9677,11 +15778,27 @@ + + + + + + + + + + + + + + + + @@ -9690,11 +15807,27 @@ + + + + + + + + + + + + + + + + @@ -9703,11 +15836,27 @@ + + + + + + + + + + + + + + + + @@ -9720,9 +15869,12 @@ - - - + + + + + + @@ -9732,9 +15884,12 @@ - - - + + + + + + @@ -9744,9 +15899,12 @@ - - - + + + + + + @@ -9756,21 +15914,27 @@ - - - + + + + + + - + - - - + + + + + + @@ -9780,12 +15944,15 @@ - + - - - + + + + + + @@ -9795,9 +15962,12 @@ - - - + + + + + + @@ -9807,7 +15977,7 @@ - + @@ -9825,10 +15995,13 @@ - - - - + + + + + + + @@ -9843,9 +16016,12 @@ - - - + + + + + + @@ -9855,9 +16031,12 @@ - - - + + + + + + @@ -9867,14 +16046,17 @@ - - - + + + + + + - + @@ -9882,6 +16064,14 @@ + + + + + + + + @@ -9889,6 +16079,14 @@ + + + + + + + + @@ -9896,6 +16094,14 @@ + + + + + + + + @@ -9903,6 +16109,14 @@ + + + + + + + + @@ -9910,6 +16124,14 @@ + + + + + + + + @@ -9917,12 +16139,26 @@ + + + + + + + + + + + + + + @@ -9933,6 +16169,12 @@ + + + + + + @@ -9945,6 +16187,12 @@ + + + + + + @@ -9957,6 +16205,12 @@ + + + + + + @@ -9964,9 +16218,15 @@ - + + + + + + + @@ -9977,9 +16237,15 @@ - + + + + + + + @@ -9993,6 +16259,12 @@ + + + + + + @@ -10006,6 +16278,12 @@ + + + + + + @@ -10019,6 +16297,12 @@ + + + + + + @@ -10029,6 +16313,12 @@ + + + + + + @@ -10036,13 +16326,29 @@ - + + + + + + + + + - + + + + + + + + + @@ -10051,6 +16357,14 @@ + + + + + + + + @@ -10059,6 +16373,14 @@ + + + + + + + + @@ -10067,11 +16389,27 @@ + + + + + + + + + + + + + + + + @@ -10080,21 +16418,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10103,6 +16473,14 @@ + + + + + + + + @@ -10111,6 +16489,14 @@ + + + + + + + + @@ -10125,9 +16511,12 @@ - - - + + + + + + @@ -10139,9 +16528,12 @@ - - - + + + + + + @@ -10153,9 +16545,12 @@ - - - + + + + + + @@ -10165,9 +16560,12 @@ - - - + + + + + + @@ -10182,9 +16580,12 @@ - - - + + + + + + @@ -10194,12 +16595,15 @@ - + - - - + + + + + + @@ -10215,9 +16619,12 @@ - - - + + + + + + @@ -10233,9 +16640,12 @@ - - - + + + + + + @@ -10245,12 +16655,15 @@ - + - - - + + + + + + @@ -10263,9 +16676,12 @@ - - - + + + + + + @@ -10275,9 +16691,12 @@ - - - + + + + + + @@ -10287,9 +16706,12 @@ - - - + + + + + + @@ -10302,20 +16724,28 @@ - - - + + + + + + - + + + + + + @@ -10326,6 +16756,11 @@ + + + + + @@ -10355,6 +16790,13 @@ + + + + + + + @@ -10362,6 +16804,13 @@ + + + + + + + @@ -10374,9 +16823,11 @@ - - - + + + + + @@ -10391,20 +16842,30 @@ - - - + + + + + - + + + + + + + + + @@ -10415,6 +16876,11 @@ + + + + + @@ -10424,27 +16890,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10460,6 +16959,11 @@ + + + + + @@ -10470,9 +16974,6 @@ - - - @@ -10480,11 +16981,25 @@ + + + + + + + + + + + + + + @@ -10493,11 +17008,25 @@ + + + + + + + + + + + + + + @@ -10506,11 +17035,25 @@ + + + + + + + + + + + + + + @@ -10523,9 +17066,11 @@ - - - + + + + + @@ -10538,9 +17083,11 @@ - - - + + + + + @@ -10550,9 +17097,11 @@ - - - + + + + + @@ -10562,9 +17111,11 @@ - - - + + + + + @@ -10582,9 +17133,11 @@ - - - + + + + + @@ -10594,9 +17147,11 @@ - - - + + + + + @@ -10606,14 +17161,16 @@ - - - + + + + + - + @@ -10644,6 +17201,13 @@ + + + + + + + @@ -10651,6 +17215,13 @@ + + + + + + + @@ -10665,14 +17236,16 @@ - - - + + + + + - + @@ -10682,6 +17255,12 @@ + + + + + + @@ -10695,6 +17274,12 @@ + + + + + + @@ -10708,6 +17293,12 @@ + + + + + + @@ -10721,6 +17312,12 @@ + + + + + + @@ -10734,6 +17331,12 @@ + + + + + + @@ -10750,6 +17353,12 @@ + + + + + + @@ -10797,6 +17406,14 @@ + + + + + + + + @@ -10804,6 +17421,14 @@ + + + + + + + + @@ -10822,6 +17447,14 @@ + + + + + + + + @@ -10832,6 +17465,14 @@ + + + + + + + + @@ -10846,6 +17487,14 @@ + + + + + + + + @@ -10854,6 +17503,14 @@ + + + + + + + + @@ -10869,9 +17526,12 @@ - - - + + + + + + @@ -10887,9 +17547,12 @@ - - - + + + + + + @@ -10905,9 +17568,12 @@ - - - + + + + + + @@ -10925,9 +17591,12 @@ - - - + + + + + + @@ -10942,9 +17611,12 @@ - - - + + + + + + @@ -10957,34 +17629,65 @@ - - - + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -10993,6 +17696,11 @@ + + + + + @@ -11005,6 +17713,11 @@ + + + + + @@ -11015,6 +17728,11 @@ + + + + + @@ -11025,6 +17743,11 @@ + + + + + @@ -11035,6 +17758,11 @@ + + + + + @@ -11045,6 +17773,11 @@ + + + + + @@ -11055,6 +17788,11 @@ + + + + + @@ -11065,6 +17803,11 @@ + + + + + @@ -11075,6 +17818,11 @@ + + + + + @@ -11085,6 +17833,11 @@ + + + + + @@ -11097,6 +17850,11 @@ + + + + + @@ -11109,6 +17867,11 @@ + + + + + @@ -11121,6 +17884,11 @@ + + + + + @@ -11133,6 +17901,11 @@ + + + + + @@ -11145,6 +17918,11 @@ + + + + + @@ -11160,6 +17938,11 @@ + + + + + @@ -11197,6 +17980,13 @@ + + + + + + + @@ -11204,6 +17994,13 @@ + + + + + + + @@ -11216,9 +18013,11 @@ - - - + + + + + @@ -11228,9 +18027,11 @@ - - - + + + + + @@ -11242,9 +18043,11 @@ - - - + + + + + @@ -11257,9 +18060,11 @@ - - - + + + + + @@ -11272,9 +18077,11 @@ - - - + + + + + @@ -11287,9 +18094,11 @@ - - - + + + + + @@ -11302,9 +18111,11 @@ - - - + + + + + @@ -11319,9 +18130,11 @@ - - - + + + + + @@ -11336,9 +18149,11 @@ - - - + + + + + @@ -11353,9 +18168,11 @@ - - - + + + + + @@ -11373,20 +18190,27 @@ - - - + + + + + - + + + + + + @@ -11400,6 +18224,11 @@ + + + + + @@ -11415,6 +18244,11 @@ + + + + + @@ -11442,6 +18276,11 @@ + + + + + @@ -11467,6 +18306,11 @@ + + + + + @@ -11492,6 +18336,11 @@ + + + + + @@ -11519,6 +18368,11 @@ + + + + + @@ -11543,6 +18397,11 @@ + + + + + @@ -11567,6 +18426,11 @@ + + + + + @@ -11594,6 +18458,11 @@ + + + + + @@ -11621,6 +18490,11 @@ + + + + + @@ -11639,6 +18513,11 @@ + + + + + @@ -11657,6 +18536,11 @@ + + + + + @@ -11672,6 +18556,11 @@ + + + + + @@ -11687,6 +18576,11 @@ + + + + + @@ -11714,6 +18608,11 @@ + + + + + @@ -11743,6 +18642,11 @@ + + + + + @@ -11760,6 +18664,11 @@ + + + + + @@ -11773,6 +18682,11 @@ + + + + + @@ -11789,6 +18703,11 @@ + + + + + @@ -11805,6 +18724,11 @@ + + + + + @@ -11821,6 +18745,11 @@ + + + + + @@ -11837,6 +18766,11 @@ + + + + + @@ -11853,6 +18787,11 @@ + + + + + @@ -11869,6 +18808,11 @@ + + + + + @@ -11885,6 +18829,11 @@ + + + + + @@ -11901,6 +18850,11 @@ + + + + + @@ -11917,6 +18871,11 @@ + + + + + @@ -11935,6 +18894,11 @@ + + + + + @@ -11953,6 +18917,11 @@ + + + + + @@ -11968,11 +18937,25 @@ + + + + + + + + + + + + + + @@ -11985,10 +18968,12 @@ - - - - + + + + + + @@ -12005,9 +18990,11 @@ - - - + + + + + @@ -12017,7 +19004,7 @@ - + @@ -12035,9 +19022,11 @@ - - - + + + + + @@ -12047,7 +19036,7 @@ - + @@ -12067,9 +19056,11 @@ - - - + + + + + @@ -12079,7 +19070,7 @@ - + @@ -12096,9 +19087,11 @@ - - - + + + + + @@ -12108,7 +19101,7 @@ - + @@ -12128,10 +19121,12 @@ - - - - + + + + + + @@ -12151,9 +19146,11 @@ - - - + + + + + @@ -12171,9 +19168,11 @@ - - - + + + + + @@ -12183,7 +19182,7 @@ - + @@ -12198,16 +19197,18 @@ - + - - - + + + + + @@ -12223,10 +19224,12 @@ - - - - + + + + + + @@ -12244,10 +19247,12 @@ - - - - + + + + + + @@ -12265,10 +19270,12 @@ - - - - + + + + + + @@ -12286,10 +19293,12 @@ - - - - + + + + + + @@ -12307,10 +19316,12 @@ - - - - + + + + + + @@ -12330,10 +19341,12 @@ - - - - + + + + + + @@ -12351,9 +19364,11 @@ - - - + + + + + @@ -12759,7 +19774,7 @@ - + @@ -12772,7 +19787,7 @@ - + diff -Nru libgee-0.8-0.20.3/gee/gee-0.8.vapi libgee-0.8-0.20.4/gee/gee-0.8.vapi --- libgee-0.8-0.20.3/gee/gee-0.8.vapi 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/gee-0.8.vapi 2021-03-17 19:58:44.000000000 +0000 @@ -1,77 +1,266 @@ -/* gee-0.8.vapi generated by valac 0.46.6, do not modify. */ +/* gee-0.8.vapi generated by valac 0.52.0, do not modify. */ [CCode (gir_namespace = "Gee", gir_version = "0.8")] namespace Gee { + /** + * Helpers for equal, hash and compare functions. + * + * With those functions, you can retrieve the equal, hash and compare + * functions that best match your element, key or value types. Supported + * types are (non-boxed) primitive, string and ``Object`` types. + * + * A special care is taken for classes inheriting from the + * {@link Comparable} interface. For such types, an appropriate compare + * function is returned that calls {@link Comparable.compare_to}. + * + */ namespace Functions { + /** + * Get a comparator function for a given type. + * + * @param t the type which to get a comparator function for. + * + * @return the comparator function corresponding to the given type. + */ [CCode (cheader_filename = "gee.h")] public static GLib.CompareDataFunc get_compare_func_for (GLib.Type t); + /** + * Get a equality testing function for a given type. + * + * @param t the type which to get an equality testing function for. + * + * @return the equality testing function corresponding to the given type. + */ [CCode (cheader_filename = "gee.h")] public static Gee.EqualDataFunc get_equal_func_for (GLib.Type t); + /** + * Get a hash function for a given type. + * + * @param t the type which to get the hash function for. + * + * @return the hash function corresponding to the given type. + */ [CCode (cheader_filename = "gee.h")] public static Gee.HashDataFunc get_hash_func_for (GLib.Type t); } [CCode (cheader_filename = "gee.h")] public abstract class AbstractBidirList : Gee.AbstractList, Gee.BidirList { protected AbstractBidirList (); + /** + * {@inheritDoc} + */ public abstract Gee.BidirListIterator bidir_list_iterator (); + /** + * {@inheritDoc} + */ public new virtual Gee.BidirList read_only_view { owned get; } } + /** + * Skeletal implementation of the {@link BidirSortedSet} interface. + * + * Contains common code shared by all set implementations. + * + * @see TreeSet + */ [CCode (cheader_filename = "gee.h")] public abstract class AbstractBidirSortedMap : Gee.AbstractSortedMap, Gee.BidirSortedMap { protected AbstractBidirSortedMap (); + /** + * {@inheritDoc} + */ public abstract Gee.BidirMapIterator bidir_map_iterator (); + /** + * {@inheritDoc} + */ public new virtual Gee.BidirSortedMap read_only_view { owned get; } } + /** + * Skeletal implementation of the {@link BidirSortedSet} interface. + * + * Contains common code shared by all set implementations. + * + * @see TreeSet + */ [CCode (cheader_filename = "gee.h")] public abstract class AbstractBidirSortedSet : Gee.AbstractSortedSet, Gee.BidirSortedSet { protected AbstractBidirSortedSet (); + /** + * {@inheritDoc} + */ public abstract Gee.BidirIterator bidir_iterator (); + /** + * {@inheritDoc} + */ public new virtual Gee.BidirSortedSet read_only_view { owned get; } } + /** + * Skeletal implementation of the {@link Collection} interface. + * + * Contains common code shared by all collection implementations. + * + * @see AbstractList + * @see AbstractSet + * @see AbstractMultiSet + */ [CCode (cheader_filename = "gee.h")] public abstract class AbstractCollection : GLib.Object, Gee.Traversable, Gee.Iterable, Gee.Collection { protected AbstractCollection (); + /** + * {@inheritDoc} + */ public abstract bool add (G item); + /** + * {@inheritDoc} + */ public abstract void clear (); + /** + * {@inheritDoc} + */ public abstract bool contains (G item); public virtual bool @foreach (Gee.ForallFunc f); + /** + * {@inheritDoc} + */ public abstract Gee.Iterator iterator (); + /** + * {@inheritDoc} + */ public abstract bool remove (G item); + /** + * {@inheritDoc} + */ public abstract bool read_only { get; } + /** + * {@inheritDoc} + */ public virtual Gee.Collection read_only_view { owned get; } + /** + * {@inheritDoc} + */ public abstract int size { get; } } + /** + * Skeletal implementation of the {@link List} interface. + * + * Contains common code shared by all list implementations. + * + * @see ArrayList + * @see LinkedList + */ [CCode (cheader_filename = "gee.h")] public abstract class AbstractList : Gee.AbstractCollection, Gee.List { protected AbstractList (); + /** + * {@inheritDoc} + */ public new abstract G @get (int index); + /** + * {@inheritDoc} + */ public abstract int index_of (G item); + /** + * {@inheritDoc} + */ public abstract void insert (int index, G item); + /** + * {@inheritDoc} + */ public abstract Gee.ListIterator list_iterator (); + /** + * {@inheritDoc} + */ public abstract G remove_at (int index); + /** + * {@inheritDoc} + */ public new abstract void @set (int index, G item); + /** + * {@inheritDoc} + */ public abstract Gee.List? slice (int start, int stop); + /** + * {@inheritDoc} + */ public new virtual Gee.List read_only_view { owned get; } } + /** + * Skeletal implementation of the {@link Map} interface. + * + * Contains common code shared by all map implementations. + * + * @see HashMap + * @see TreeMap + */ [CCode (cheader_filename = "gee.h")] public abstract class AbstractMap : GLib.Object, Gee.Traversable>, Gee.Iterable>, Gee.Map { protected AbstractMap (); + /** + * {@inheritDoc} + */ public abstract void clear (); + /** + * {@inheritDoc} + */ public virtual bool @foreach (Gee.ForallFunc> f); + /** + * {@inheritDoc} + */ public new abstract V @get (K key); + /** + * {@inheritDoc} + */ public abstract bool has (K key, V value); + /** + * {@inheritDoc} + */ public abstract bool has_key (K key); + /** + * {@inheritDoc} + */ public abstract Gee.MapIterator map_iterator (); + /** + * {@inheritDoc} + */ public new abstract void @set (K key, V value); + /** + * {@inheritDoc} + */ public virtual Gee.Iterator stream (owned Gee.StreamFunc,A> f); + /** + * {@inheritDoc} + */ public abstract bool unset (K key, out V value = null); + /** + * {@inheritDoc} + */ public abstract Gee.Set> entries { owned get; } + /** + * {@inheritDoc} + */ public abstract Gee.Set keys { owned get; } + /** + * {@inheritDoc} + */ public abstract bool read_only { get; } + /** + * {@inheritDoc} + */ public virtual Gee.Map read_only_view { owned get; } + /** + * {@inheritDoc} + */ public abstract int size { get; } + /** + * {@inheritDoc} + */ public abstract Gee.Collection values { owned get; } } + /** + * Skeletal implementation of the {@link MultiMap} interface. + * + * @see HashMultiMap + * @see TreeMultiMap + */ [CCode (cheader_filename = "gee.h")] public abstract class AbstractMultiMap : GLib.Object, Gee.MultiMap { protected Gee.Map> _storage_map; @@ -81,9 +270,18 @@ protected abstract Gee.EqualDataFunc get_value_equal_func (); public new virtual Gee.MultiMap read_only_view { owned get; } } + /** + * Skeletal implementation of the {@link MultiSet} interface. + * + * @see HashMultiSet + * @see TreeMultiSet + */ [CCode (cheader_filename = "gee.h")] public abstract class AbstractMultiSet : Gee.AbstractCollection, Gee.MultiSet { protected Gee.Map _storage_map; + /** + * Constructs a new, empty abstract multi set. + */ protected AbstractMultiSet (Gee.Map storage_map); public override bool add (G item); public override void clear (); @@ -94,109 +292,409 @@ public new virtual Gee.MultiSet read_only_view { owned get; } public override int size { get; } } + /** + * Skeletal implementation of the {@link Queue} interface. + * + * Contains common code shared by all queue implementations. + * + * @see PriorityQueue + */ [CCode (cheader_filename = "gee.h")] public abstract class AbstractQueue : Gee.AbstractCollection, Gee.Queue { protected AbstractQueue (); + /** + * {@inheritDoc} + */ public abstract G peek (); + /** + * {@inheritDoc} + */ public abstract G poll (); + /** + * {@inheritDoc} + */ public abstract int capacity { get; } + /** + * {@inheritDoc} + */ public abstract bool is_full { get; } + /** + * {@inheritDoc} + */ public abstract int remaining_capacity { get; } } + /** + * Skeletal implementation of the {@link Set} interface. + * + * Contains common code shared by all set implementations. + * + * @see HashSet + * @see TreeSet + */ [CCode (cheader_filename = "gee.h")] public abstract class AbstractSet : Gee.AbstractCollection, Gee.Set { protected AbstractSet (); + /** + * {@inheritDoc} + */ public new virtual Gee.Set read_only_view { owned get; } } [CCode (cheader_filename = "gee.h")] public abstract class AbstractSortedMap : Gee.AbstractMap, Gee.SortedMap { protected AbstractSortedMap (); + /** + * {@inheritDoc} + */ public abstract Gee.SortedMap head_map (K before); + /** + * {@inheritDoc} + */ public abstract Gee.SortedMap sub_map (K before, K after); + /** + * {@inheritDoc} + */ public abstract Gee.SortedMap tail_map (K after); + /** + * {@inheritDoc} + */ public abstract Gee.SortedSet> ascending_entries { owned get; } + /** + * {@inheritDoc} + */ public abstract Gee.SortedSet ascending_keys { owned get; } } + /** + * Skeletal implementation of the {@link SortedSet} interface. + * + * Contains common code shared by all set implementations. + * + * @see TreeSet + */ [CCode (cheader_filename = "gee.h")] public abstract class AbstractSortedSet : Gee.AbstractSet, Gee.SortedSet { protected AbstractSortedSet (); + /** + * {@inheritDoc} + */ public abstract G ceil (G element); + /** + * {@inheritDoc} + */ public abstract G first (); + /** + * {@inheritDoc} + */ public abstract G floor (G element); + /** + * {@inheritDoc} + */ public abstract Gee.SortedSet head_set (G before); + /** + * {@inheritDoc} + */ public abstract G higher (G element); + /** + * {@inheritDoc} + */ public abstract Gee.Iterator? iterator_at (G element); + /** + * {@inheritDoc} + */ public abstract G last (); + /** + * {@inheritDoc} + */ public abstract G lower (G element); + /** + * {@inheritDoc} + */ public abstract Gee.SortedSet sub_set (G from, G to); + /** + * {@inheritDoc} + */ public abstract Gee.SortedSet tail_set (G after); + /** + * {@inheritDoc} + */ public new virtual Gee.SortedSet read_only_view { owned get; } } + /** + * Resizable array implementation of the {@link List} interface. + * + * The storage array grows automatically when needed. + * + * This implementation is pretty good for rarely modified data. Because they are + * stored in an array this structure does not fit for highly mutable data. For an + * alternative implementation see {@link LinkedList}. + * + * @see LinkedList + */ [CCode (cheader_filename = "gee.h")] public class ArrayList : Gee.AbstractBidirList { + /** + * Constructs a new, empty array list. + * + * If not provided, the function parameter is requested to the + * {@link Functions} function factory methods. + * + * @param equal_func an optional element equality testing function + */ public ArrayList (owned Gee.EqualDataFunc? equal_func = null); + /** + * {@inheritDoc} + */ public override bool add (G item); + /** + * {@inheritDoc} + */ public bool add_all (Gee.Collection collection); + /** + * {@inheritDoc} + */ public override Gee.BidirListIterator bidir_list_iterator (); + /** + * {@inheritDoc} + */ public override void clear (); + /** + * {@inheritDoc} + */ public override bool contains (G item); + /** + * {@inheritDoc} + */ public override bool @foreach (Gee.ForallFunc f); + /** + * {@inheritDoc} + */ public override G @get (int index); + /** + * {@inheritDoc} + */ public override int index_of (G item); + /** + * {@inheritDoc} + */ public override void insert (int index, G item); + /** + * {@inheritDoc} + */ public override Gee.Iterator iterator (); + /** + * {@inheritDoc} + */ public override Gee.ListIterator list_iterator (); + /** + * {@inheritDoc} + */ public override bool remove (G item); + /** + * {@inheritDoc} + */ public override G remove_at (int index); + /** + * {@inheritDoc} + */ public override void @set (int index, G item); + /** + * {@inheritDoc} + */ public override Gee.List? slice (int start, int stop); + /** + * Constructs a new array list based on provided array. + * + * If not provided, the function parameter is requested to the + * {@link Functions} function factory methods. + * + * @param items initial items to be put into array + * @param equal_func an optional element equality testing function + */ public ArrayList.wrap (owned G[] items, owned Gee.EqualDataFunc? equal_func = null); + /** + * The elements' equality testing function. + */ [CCode (notify = false)] public Gee.EqualDataFunc equal_func { get; private set; } + /** + * {@inheritDoc} + */ public override bool read_only { get; } + /** + * {@inheritDoc} + */ public override int size { get; } } + /** + * Resizable array implementation of the {@link Deque} interface. + * + * The storage array grows automatically when needed. + * + * This implementation is pretty good for lookups at the end or random. + * Because they are stored in an array this structure does not fit for deleting + * arbitrary elements. For an alternative implementation see {@link LinkedList}. + * + * @see LinkedList + */ [CCode (cheader_filename = "gee.h")] public class ArrayQueue : Gee.AbstractQueue, Gee.Deque { + /** + * Constructs a new, empty array queue. + * + * If not provided, the function parameter is requested to the + * {@link Functions} function factory methods. + * + * @param equal_func an optional element equality testing function + */ public ArrayQueue (owned Gee.EqualDataFunc? equal_func = null); + /** + * {@inheritDoc} + */ public override bool add (G element); + /** + * {@inheritDoc} + */ public override void clear (); + /** + * {@inheritDoc} + */ public override bool contains (G item); + /** + * {@inheritDoc} + */ public override bool @foreach (Gee.ForallFunc f); + /** + * {@inheritDoc} + */ public override Gee.Iterator iterator (); + /** + * {@inheritDoc} + */ public override G peek (); + /** + * {@inheritDoc} + */ public override G poll (); + /** + * {@inheritDoc} + */ public override bool remove (G item); + /** + * {@inheritDoc} + */ public override int capacity { get; } [CCode (notify = false)] public Gee.EqualDataFunc equal_func { get; private set; } public bool is_empty { get; } + /** + * {@inheritDoc} + */ public override bool is_full { get; } + /** + * {@inheritDoc} + */ public override bool read_only { get; } + /** + * {@inheritDoc} + */ public override int remaining_capacity { get; } + /** + * {@inheritDoc} + */ public override int size { get; } } + /** + * A single-linked list. This implementation is based on + * [[http://www.cse.yorku.ca/~ruppert/papers/lfll.pdf|Mikhail Fomitchev and Eric Ruppert paper ]]. + * + * Many threads are allowed to operate on the same structure as well as modification + * of structure during iteration is allowed. However the change may not be immediately + * visible to other threads. + */ [CCode (cheader_filename = "gee.h")] public class ConcurrentList : Gee.AbstractList { + /** + * Construct new, empty single linked list + * + * If not provided, the function parameter is requested to the + * {@link Functions} function factory methods. + * + * @param equal_func an optional element equality testing function + */ public ConcurrentList (owned Gee.EqualDataFunc? equal_func = null); + /** + * {@inheritDoc} + */ public override bool add (G item); + /** + * {@inheritDoc} + */ public override void clear (); + /** + * {@inheritDoc} + */ public override bool contains (G item); + /** + * {@inheritDoc} + */ public override G @get (int index); + /** + * {@inheritDoc} + */ public override int index_of (G item); + /** + * {@inheritDoc} + */ public override void insert (int index, G item); + /** + * {@inheritDoc} + */ public override Gee.Iterator iterator (); + /** + * {@inheritDoc} + */ public override Gee.ListIterator list_iterator (); + /** + * {@inheritDoc} + */ public override bool remove (G item); + /** + * {@inheritDoc} + */ public override G remove_at (int index); + /** + * {@inheritDoc} + */ public override void @set (int index, G item); + /** + * {@inheritDoc} + */ public override Gee.List? slice (int start, int end); + /** + * The elements' equality testing function. + */ [CCode (notify = false)] public Gee.EqualDataFunc equal_func { get; private set; } + /** + * {@inheritDoc} + */ public bool is_empty { get; } + /** + * {@inheritDoc} + */ public override bool read_only { get; } + /** + * {@inheritDoc} + */ public override int size { get; } } + /** + * A skip-linked list. This implementation is based on + * [[http://www.cse.yorku.ca/~ruppert/Mikhail.pdf|Mikhail Fomitchev Master Thesis]]. + * + * Many threads are allowed to operate on the same structure as well as modification + * of structure during iteration is allowed. However the change may not be immediately + * visible to other threads. + */ [CCode (cheader_filename = "gee.h")] public class ConcurrentSet : Gee.AbstractSortedSet { public enum RangeType { @@ -224,30 +722,108 @@ public override bool read_only { get; } public override int size { get; } } + /** + * Hash table implementation of the {@link Map} interface. + * + * This implementation is better fit for highly heterogeneous key values. + * In case of high key hashes redundancy or higher amount of data prefer using + * tree implementation like {@link TreeMap}. + * + * @see TreeMap + */ [CCode (cheader_filename = "gee.h")] public class HashMap : Gee.AbstractMap { + /** + * Constructs a new, empty hash map. + * + * If not provided, the functions parameters are requested to the + * {@link Functions} function factory methods. + * + * @param key_hash_func an optional key hash function + * @param key_equal_func an optional key equality testing function + * @param value_equal_func an optional value equality testing function + */ public HashMap (owned Gee.HashDataFunc? key_hash_func = null, owned Gee.EqualDataFunc? key_equal_func = null, owned Gee.EqualDataFunc? value_equal_func = null); + /** + * {@inheritDoc} + */ public override void clear (); + /** + * {@inheritDoc} + */ public override V @get (K key); + /** + * {@inheritDoc} + */ public override bool has (K key, V value); + /** + * {@inheritDoc} + */ public override bool has_key (K key); + /** + * {@inheritDoc} + */ public override Gee.MapIterator map_iterator (); + /** + * {@inheritDoc} + */ public override void @set (K key, V value); + /** + * {@inheritDoc} + */ public override bool unset (K key, out V value = null); + /** + * {@inheritDoc} + */ public override Gee.Set> entries { owned get; } + /** + * The keys' equality testing function. + */ [CCode (notify = false)] public Gee.EqualDataFunc key_equal_func { get; private set; } + /** + * The keys' hash function. + */ [CCode (notify = false)] public Gee.HashDataFunc key_hash_func { get; private set; } + /** + * {@inheritDoc} + */ public override Gee.Set keys { owned get; } + /** + * {@inheritDoc} + */ public override bool read_only { get; } + /** + * {@inheritDoc} + */ public override int size { get; } + /** + * The values' equality testing function. + */ [CCode (notify = false)] public Gee.EqualDataFunc value_equal_func { get; private set; } + /** + * {@inheritDoc} + */ public override Gee.Collection values { owned get; } } + /** + * Hash table implementation of the {@link MultiMap} interface. + */ [CCode (cheader_filename = "gee.h")] public class HashMultiMap : Gee.AbstractMultiMap { + /** + * Constructs a new, empty hash multimap. + * + * If not provided, the functions parameters are requested to the + * {@link Functions} function factory methods. + * + * @param key_hash_func an optional key hash function + * @param key_equal_func an optional key equality testing function + * @param value_hash_func an optional value hash function + * @param value_equal_func an optional value equality testing function + */ public HashMultiMap (owned Gee.HashDataFunc? key_hash_func = null, owned Gee.EqualDataFunc? key_equal_func = null, owned Gee.HashDataFunc? value_hash_func = null, owned Gee.EqualDataFunc? value_equal_func = null); protected override Gee.MultiSet create_multi_key_set (); protected override Gee.Collection create_value_storage (); @@ -259,161 +835,709 @@ [CCode (notify = false)] public Gee.HashDataFunc value_hash_func { get; private set; } } + /** + * Hash table implementation of the {@link MultiSet} interface. + */ [CCode (cheader_filename = "gee.h")] public class HashMultiSet : Gee.AbstractMultiSet { + /** + * Constructs a new, empty hash multi set. + * + * If not provided, the functions parameters are requested to the + * {@link Functions} function factory methods. + * + * @param hash_func an optional element hash function + * @param equal_func an optional element equality testing function + */ [CCode (cname = "gee_hash_multi_set_new_fixed")] public HashMultiSet (owned Gee.HashDataFunc? hash_func = null, owned Gee.EqualDataFunc? equal_func = null); + /** + * Constructs a new, empty hash multi set. + * + * If not provided, the functions parameters are requested to the + * {@link Functions} function factory methods. + * + * Note: this function is only for backward ABI compatibility. + * It contains memory leak and SHOULD NOT BE USED. + * + * + * @param hash_func an optional element hash function + * @param equal_func an optional element equality testing function + */ [CCode (cname = "gee_hash_multi_set_new")] [Version (deprecated = true, deprecated_since = "0.13.3", replacement = "gee_hash_multi_set_new_fixed")] public HashMultiSet.broken (Gee.HashDataFunc? hash_func = null, Gee.EqualDataFunc? equal_func = null); public Gee.EqualDataFunc equal_func { get; } public Gee.HashDataFunc hash_func { get; } } + /** + * Hash table implementation of the {@link Set} interface. + * + * This implementation is better fit for highly heterogeneous values. + * In case of high value hashes redundancy or higher amount of data prefer using + * tree implementation like {@link TreeSet}. + * + * @see TreeSet + */ [CCode (cheader_filename = "gee.h")] public class HashSet : Gee.AbstractSet { + /** + * Constructs a new, empty hash set. + * + * If not provided, the functions parameters are requested to the + * {@link Functions} function factory methods. + * + * @param hash_func an optional hash function + * @param equal_func an optional equality testing function + */ public HashSet (owned Gee.HashDataFunc? hash_func = null, owned Gee.EqualDataFunc? equal_func = null); + /** + * {@inheritDoc} + */ public override bool add (G key); + /** + * {@inheritDoc} + */ public override void clear (); + /** + * {@inheritDoc} + */ public override bool contains (G key); + /** + * {@inheritDoc} + */ public override bool @foreach (Gee.ForallFunc f); + /** + * {@inheritDoc} + */ public override Gee.Iterator iterator (); + /** + * {@inheritDoc} + */ public override bool remove (G key); + /** + * The elements' equality testing function. + */ [CCode (notify = false)] public Gee.EqualDataFunc equal_func { get; private set; } + /** + * The elements' hash function. + */ [CCode (notify = false)] public Gee.HashDataFunc hash_func { get; private set; } + /** + * {@inheritDoc} + */ public override bool read_only { get; } + /** + * {@inheritDoc} + */ public override int size { get; } } + /** + * Hazard pointer is a method of protecting a pointer shared by many threads. + * If you want to use atomic pointer that may be freed you should use following code: + * + * {{{ + * string *shared_pointer = ...; + * HazardPointer hptr = HazardPointer.get_hazard_pointer (&shared_pointer); + * // my_string contains value from shared_pinter. It is valid as long as hptr is alive. + * unowned string my_string = ptr.get (); + * // instead of delete + * ptr.release ((ptr) => {string *sptr = ptr;string ref = (owned)sptr;}); + * }); + * }}} + * + * In some cases you may use helper methods which might involve copying of object (and are unsafe for unowned objects): + * {{{ + * Gtk.Window *window = ...; + * Gtk.Window? local_window = HazardPointer.get_pointer (&window); + * HazardPointer.set_pointer (&window, ...) + * local_window = HazardPointer.exchange_pointer (&window, null); + * HazardPointer.compare_and_exchange (&window, null, local_window); + * }}} + * + * The class also provides helper methods if least significant bits are used for storing flags. + * + * HazardPointers are not thread-safe (unless documentation states otherwise). + */ [CCode (cheader_filename = "gee.h")] [Compact] public class HazardPointer { + /** + * Create a new context. User does not need to create explicitly however it might be benefitial + * if he is about to issue bunch of commands he might consider it benefitial to fine-tune the creation of contexts. + * + * {{{ + * Context ctx = new Context (); + * lock_free_collection.operation1 (); + * // Normally on exit the thread exit operation would be executed but here the default operation of + * // child context is executed. + * lock_free_collection.operation2 (); + * }}} + * + * Please note that the Context in implicitly part of stack and: + * + * 1. It cannot be moved between threads. + * 2. If in given thread the child (created later) context is alive parent must be alive as well. + */ [Compact] public class Context { public Context (Gee.HazardPointer.Policy? policy = null); + /** + * Ensure that whole context is freed. Please note that it might block. + */ public void free_all (); + /** + * Pushes the current context to releaser. Please note that it might block. + */ public void release (); + /** + * Tries to free all freed pointer in current context. + */ public void try_free (); + /** + * Tries to push the current context to releaser. + */ public void try_release (); } + /** + * Policy determines what happens on exit from Context. + */ public enum Policy { + /** + * Performs default action on exit from thread. + */ DEFAULT, + /** + * Performs the same action as on exit from current thread. + */ THREAD_EXIT, + /** + * Goes through the free list and attempts to free un-freed elements. + */ TRY_FREE, + /** + * Goes through the free list and attempts to free un-freed elements + * until all elements are freed. + */ FREE, + /** + * Release the un-freed elements to either helper thread or to main loop. + * Please note if the operation would block it is not performed. + */ TRY_RELEASE, + /** + * Release the un-freed elements to either helper thread or to main loop. + * Please note it may block while adding to queue. + */ RELEASE; + /** + * Checks if the policy is concrete or if it depends on global variables. + * + * @return ``true`` if this policy does not depend on global variables + */ public bool is_concrete (); + /** + * Checks if policy blocks or is lock-free. + * Please note that it works on a concrete policy only. + * + * @return ``true`` if the policy may block the thread. + */ public bool is_blocking (); + /** + * Checks if policy guarantees freeing all elements. + * Please note that it works on a concrete policy only. + * + * @return ``true`` if the policy guarantees freeing all elements. + */ public bool is_safe (); + /** + * Finds concrete policy which corresponds to given policy. + * + * @return Policy that corresponds to given policy at given time in given thread. + */ public Gee.HazardPointer.Policy to_concrete (); } + /** + * Release policy determines what happens with object freed by Policy.TRY_RELEASE + * and Policy.RELEASE. + */ public enum ReleasePolicy { + /** + * Libgee spawns helper thread to free those elements. + * This is default. + */ HELPER_THREAD, + /** + * Libgee uses GLib main loop. + * This is recommended for application using GLib main loop. + */ MAIN_LOOP; } + /** + * Creates a hazard pointer for a pointer. + * + * @param ptr Protected pointer + */ public HazardPointer (G* ptr); + /** + * Compares and exchanges objects. + * + * @param aptr Atomic pointer. + * @param old_ptr Old pointer. + * @param _new_ptr New value. + * @param old_mask Old mask. + * @param new_mask New mask. + * @return Value that was previously stored. + */ public static bool compare_and_exchange_pointer (G** aptr, G old_ptr, owned G _new_ptr, size_t mask = 0, size_t old_mask = 0, size_t new_mask = 0); + /** + * Exchange objects safely. + * + * @param aptr Atomic pointer. + * @param new_ptr New value + * @param mask Mask of flags. + * @param new_mask New mask. + * @param old_mask Previous mask mask. + * @return Hazard pointer containing old value. + */ public static Gee.HazardPointer? exchange_hazard_pointer (G** aptr, owned G new_ptr, size_t mask = 0, size_t new_mask = 0, out size_t old_mask = null); + /** + * Exchange objects safely. + * + * @param aptr Atomic pointer. + * @param new_ptr New value + * @param mask Mask of flags. + * @param new_mask New mask. + * @param old_mask Previous mask mask. + * @return Value that was previously stored. + */ public static G exchange_pointer (G** aptr, owned G new_ptr, size_t mask = 0, size_t new_mask = 0, out size_t old_mask = null); + /** + * Gets the pointer hold by hazard pointer. + * + * @param other_thread Have to be set to ``true`` if accessed from thread that did not create this thread. + * @return The value hold by pointer. + */ public new unowned G @get (bool other_thread = false); + /** + * Gets hazard pointer from atomic pointer safely. + * + * @param aptr Atomic pointer. + * @param mask Mask of bits. + * @param mask_out Result of mask. + * @return Hazard pointer containing the element. + */ public static Gee.HazardPointer? get_hazard_pointer (G** aptr, size_t mask = 0, out size_t mask_out = null); + /** + * Copy an object from atomic pointer. + * + * @param aptr Atomic pointer. + * @param mask Mask of flags. + * @param mask_out Result of mask. + * @return A copy of object from atomic pointer. + */ public static G get_pointer (G** aptr, size_t mask = 0, out size_t mask_out = null); + /** + * Free the pointer. + * + * @param notify method freeing object + */ public void release (owned GLib.DestroyNotify notify); + /** + * Sets default policy (i.e. default policy for user-created contexts). + * The policy must be concrete and should not be blocking. + * + * @param policy New default policy. + */ public static void set_default_policy (Gee.HazardPointer.Policy policy); + /** + * Sets object safely + * + * @param aptr Atomic pointer. + * @param new_ptr New value + * @param mask Mask of flags. + * @param new_mask New mask. + */ public static void set_pointer (G** aptr, owned G new_ptr, size_t mask = 0, size_t new_mask = 0); + /** + * Sets release (i.e. how exactly the released objects arefreed). + * + * The method can be only set before any objects is released and is not thread-safe. + * + * @param policy New release policy. + */ public static bool set_release_policy (Gee.HazardPointer.ReleasePolicy policy); + /** + * Sets thread exit policy (i.e. default policy for the top-most Context). + * The policy must be concrete and should not be unsafe. + * + * @param policy New thread policy. + */ public static void set_thread_exit_policy (Gee.HazardPointer.Policy policy); } + /** + * Represents a lazy value. I.e. value that is computed on demand. + * + * This class is not thread-safe. + */ [CCode (cheader_filename = "gee.h")] public class Lazy { public Lazy (owned Gee.LazyFunc func); public void eval (); public Lazy.from_value (G item); public new G @get (); + /** + * Provides a future for a lazy value. + * + * Note: The future can be requested only once and all access must be + * done through it. + */ public Gee.Future? future { owned get; } public new G value { get; } } + /** + * Doubly-linked list implementation of the {@link List} interface. + * + * This implementation is pretty well designed for highly mutable data. When + * indexed access is privileged prefer using {@link ArrayList}. + * + * @see ArrayList + */ [CCode (cheader_filename = "gee.h")] public class LinkedList : Gee.AbstractBidirList, Gee.Queue, Gee.Deque { + /** + * Constructs a new, empty linked list. + * + * If not provided, the function parameter is requested to the + * {@link Functions} function factory methods. + * + * @param equal_func an optional element equality testing function + */ public LinkedList (owned Gee.EqualDataFunc? equal_func = null); + /** + * {@inheritDoc} + */ public override bool add (G item); + /** + * {@inheritDoc} + */ public override Gee.BidirListIterator bidir_list_iterator (); + /** + * {@inheritDoc} + */ public override void clear (); + /** + * {@inheritDoc} + */ public override bool contains (G item); + /** + * {@inheritDoc} + */ public G first (); + /** + * {@inheritDoc} + */ public override bool @foreach (Gee.ForallFunc f); + /** + * {@inheritDoc} + */ public override G @get (int index); + /** + * {@inheritDoc} + */ public override int index_of (G item); + /** + * {@inheritDoc} + */ public override void insert (int index, G item); + /** + * {@inheritDoc} + */ public override Gee.Iterator iterator (); + /** + * {@inheritDoc} + */ public G last (); + /** + * {@inheritDoc} + */ public override Gee.ListIterator list_iterator (); + /** + * {@inheritDoc} + */ public override bool remove (G item); + /** + * {@inheritDoc} + */ public override G remove_at (int index); + /** + * {@inheritDoc} + */ public override void @set (int index, G item); + /** + * {@inheritDoc} + */ public override Gee.List? slice (int start, int stop); + /** + * The elements' equality testing function. + */ [CCode (notify = false)] public Gee.EqualDataFunc equal_func { get; private set; } + /** + * {@inheritDoc} + */ public override bool read_only { get; } + /** + * {@inheritDoc} + */ public override int size { get; } } + /** + * Relaxed fibonacci heap priority queue implementation of the {@link Queue}. + * + * The elements of the priority queue are ordered according to their natural + * ordering, or by a compare_func provided at queue construction time. A + * priority queue does not permit null elements and does not have bounded + * capacity. + * + * This implementation provides O(1) time for offer and peek methods, and + * O(log n) for poll method. It is based on the algorithms described by + * Boyapati Chandra Sekhar in: + * + * "Worst Case Efficient Data Structures + * for Priority Queues and Deques with Heap Order" + * Boyapati Chandra Sekhar (under the guidance of Prof. C. Pandu Rangan) + * Department of Computer Science and Engineering + * Indian Institute of Technology, Madras + * May 1996 + */ [CCode (cheader_filename = "gee.h")] public class PriorityQueue : Gee.AbstractQueue { + /** + * Constructs a new, empty priority queue. + * + * If not provided, the function parameter is requested to the + * {@link Functions} function factory methods. + * + * @param compare_func an optional element comparator function + */ public PriorityQueue (owned GLib.CompareDataFunc? compare_func = null); + /** + * {@inheritDoc} + */ public override bool add (G item); + /** + * {@inheritDoc} + */ public override void clear (); + /** + * {@inheritDoc} + */ public override bool contains (G item); + /** + * {@inheritDoc} + */ public int drain (Gee.Collection recipient, int amount = -1); + /** + * {@inheritDoc} + */ public override bool @foreach (Gee.ForallFunc f); + /** + * {@inheritDoc} + */ public override Gee.Iterator iterator (); + /** + * {@inheritDoc} + */ public bool offer (G element); + /** + * {@inheritDoc} + */ public override G peek (); + /** + * {@inheritDoc} + */ public override G poll (); + /** + * {@inheritDoc} + */ public override bool remove (G item); + /** + * {@inheritDoc} + */ public override int capacity { get; } + /** + * The elements' comparator function. + */ [CCode (notify = false)] public GLib.CompareDataFunc compare_func { get; private set; } + /** + * {@inheritDoc} + */ public override bool is_full { get; } + /** + * {@inheritDoc} + */ public override bool read_only { get; } + /** + * {@inheritDoc} + */ public override int remaining_capacity { get; } + /** + * {@inheritDoc} + */ public override int size { get; } } + /** + * Promise allows to set a value with associated {@link Future}. Please note that + * value can be stored only once. + * + * Typically the producer will create promise and return {@link future} while + * keeping the promise to itself. Then when value is ready it can call {@link set_value}. + * + * @see Future + * @see task + * @since 0.11.0 + */ [CCode (cheader_filename = "gee.h")] public class Promise { public Promise (); + /** + * Sets the exception. + * + * @param exception Exception thrown + */ public void set_exception (owned GLib.Error exception); + /** + * Sets the value of the future. + * + * @param value Value of future + */ public void set_value (owned G value); + /** + * {@link Future} value of this promise + */ public Gee.Future future { get; } } + /** + * Left-leaning red-black tree implementation of the {@link Map} interface. + * + * This implementation is especially well designed for large quantity of + * data. The (balanced) tree implementation insure that the set and get + * methods are in logarithmic complexity. + * + * @see HashMap + */ [CCode (cheader_filename = "gee.h")] public class TreeMap : Gee.AbstractBidirSortedMap { + /** + * Constructs a new, empty tree map sorted according to the specified + * comparator function. + * + * If not provided, the functions parameters are requested to the + * {@link Functions} function factory methods. + * + * @param key_compare_func an optional key comparator function + * @param value_equal_func an optional values equality testing function + */ public TreeMap (owned GLib.CompareDataFunc? key_compare_func = null, owned Gee.EqualDataFunc? value_equal_func = null); + /** + * {@inheritDoc} + */ public override Gee.BidirMapIterator bidir_map_iterator (); + /** + * {@inheritDoc} + */ public override void clear (); + /** + * {@inheritDoc} + */ public override V @get (K key); + /** + * {@inheritDoc} + */ public override bool has (K key, V value); + /** + * {@inheritDoc} + */ public override bool has_key (K key); + /** + * {@inheritDoc} + */ public override Gee.SortedMap head_map (K before); + /** + * {@inheritDoc} + */ public override Gee.MapIterator map_iterator (); + /** + * {@inheritDoc} + */ public override void @set (K key, V value); + /** + * {@inheritDoc} + */ public override Gee.SortedMap sub_map (K after, K before); + /** + * {@inheritDoc} + */ public override Gee.SortedMap tail_map (K after); + /** + * {@inheritDoc} + */ public override bool unset (K key, out V value = null); + /** + * {@inheritDoc} + */ public override Gee.SortedSet> ascending_entries { owned get; } + /** + * {@inheritDoc} + */ public override Gee.SortedSet ascending_keys { owned get; } + /** + * {@inheritDoc} + */ public override Gee.Set> entries { owned get; } + /** + * The keys' comparator function. + */ [CCode (notify = false)] public GLib.CompareDataFunc key_compare_func { get; private set; } + /** + * {@inheritDoc} + */ public override Gee.Set keys { owned get; } public override bool read_only { get; } + /** + * {@inheritDoc} + */ public override int size { get; } + /** + * The values' equality testing function. + */ [CCode (notify = false)] public Gee.EqualDataFunc value_equal_func { get; private set; } + /** + * {@inheritDoc} + */ public override Gee.Collection values { owned get; } } + /** + * Left-leaning red-black tree implementation of the {@link MultiMap} + * interface. + */ [CCode (cheader_filename = "gee.h")] public class TreeMultiMap : Gee.AbstractMultiMap { + /** + * Constructs a new, empty tree multimap. + * + * If not provided, the functions parameters are requested to the + * {@link Functions} function factory methods. + * + * @param key_compare_func an optional key comparator function + * @param value_compare_func an optional value comparator function + */ public TreeMultiMap (owned GLib.CompareDataFunc? key_compare_func = null, owned GLib.CompareDataFunc? value_compare_func = null); protected override Gee.MultiSet create_multi_key_set (); protected override Gee.Collection create_value_storage (); @@ -422,38 +1546,153 @@ [CCode (notify = false)] public GLib.CompareDataFunc value_compare_func { get; private set; } } + /** + * Left-leaning red-black tree implementation of the {@link MultiSet} + * interface. + */ [CCode (cheader_filename = "gee.h")] public class TreeMultiSet : Gee.AbstractMultiSet { + /** + * Constructs a new, empty tree multi set. + * + * If not provided, the function parameter is requested to the + * {@link Functions} function factory methods. + * + * @param compare_func an optional element comparator function + */ public TreeMultiSet (owned GLib.CompareDataFunc? compare_func = null); public GLib.CompareDataFunc compare_func { get; } } + /** + * Left-leaning red-black tree implementation of the {@link Set} interface. + * + * This implementation is especially well designed for large quantity of + * data. The (balanced) tree implementation insure that the set and get + * methods are in logarithmic complexity. For a linear implementation see + * {@link HashSet}. + * + * @see HashSet + */ [CCode (cheader_filename = "gee.h")] public class TreeSet : Gee.AbstractBidirSortedSet { + /** + * Constructs a new, empty tree set sorted according to the specified + * comparator function. + * + * If not provided, the function parameter is requested to the + * {@link Functions} function factory methods. + * + * @param compare_func an optional element comparator function + */ public TreeSet (owned GLib.CompareDataFunc? compare_func = null); + /** + * {@inheritDoc} + * + * If the element already exists in the set it will not be added twice. + */ public override bool add (G item); + /** + * {@inheritDoc} + */ public override Gee.BidirIterator bidir_iterator (); + /** + * {@inheritDoc} + */ public override G ceil (G item); + /** + * {@inheritDoc} + */ public override void clear (); + /** + * {@inheritDoc} + */ public override bool contains (G item); + /** + * {@inheritDoc} + */ public override G first (); + /** + * {@inheritDoc} + */ public override G floor (G item); + /** + * {@inheritDoc} + */ public override bool @foreach (Gee.ForallFunc f); + /** + * {@inheritDoc} + */ public override Gee.SortedSet head_set (G before); + /** + * {@inheritDoc} + */ public override G higher (G item); + /** + * {@inheritDoc} + */ public override Gee.Iterator iterator (); + /** + * {@inheritDoc} + */ public override Gee.Iterator? iterator_at (G item); + /** + * {@inheritDoc} + */ public override G last (); + /** + * {@inheritDoc} + */ public override G lower (G item); + /** + * {@inheritDoc} + */ public override bool remove (G item); + /** + * {@inheritDoc} + */ public override Gee.SortedSet sub_set (G after, G before); + /** + * {@inheritDoc} + */ public override Gee.SortedSet tail_set (G after); + /** + * The elements' comparator function. + */ [CCode (notify = false)] public GLib.CompareDataFunc compare_func { get; private set; } + /** + * {@inheritDoc} + */ public override bool read_only { get; } + /** + * {@inheritDoc} + */ public override int size { get; } } + /** + * Unrolled doubly-linked list implementation of the {@link List} interface. + * + * The unrolled doubly-linked list combines the advantages and disadvantages + * of the {@link ArrayList} and {@link LinkedList} and is usually suitable when + * modifications and read operations are balanced. + * + * Please note that in our benchmarks the speed of most operations (insertion, + * deletion, sequential read) was on par or better then {@link ArrayList} and + * {@link LinkedList} except the prepending operation. + * + * @see ArrayList + * @see LinkedList + */ [CCode (cheader_filename = "gee.h")] public class UnrolledLinkedList : Gee.AbstractBidirList, Gee.Queue, Gee.Deque { + /** + * Constructs a new, empty linked list. + * + * If not provided, the function parameter is requested to the + * {@link Functions} function factory methods. + * + * @param equal_func an optional element equality testing function + */ public UnrolledLinkedList (owned Gee.EqualDataFunc? equal_func = null); public override bool add (G item); public override Gee.BidirListIterator bidir_list_iterator (); @@ -469,111 +1708,446 @@ public override G remove_at (int index); public override void @set (int index, G item); public override Gee.List? slice (int start, int stop); + /** + * The elements' equality testing function. + */ [CCode (notify = false)] public Gee.EqualDataFunc equal_func { get; private set; } public override bool read_only { get; } public override int size { get; } } + /** + * A bi-directional iterator. + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface BidirIterator : Gee.Iterator { + /** + * Rewinds to the first element in the iteration. + * + * @return ``true`` if the iterator has a first element + */ public abstract bool first (); + /** + * Checks whether there is a previous element in the iteration. + * + * @return ``true`` if the iterator has a previous element + */ public abstract bool has_previous (); + /** + * Advances to the last element in the iteration. + * + * @return ``true`` if the iterator has a last element + */ public abstract bool last (); + /** + * Rewinds to the previous element in the iteration. + * + * @return ``true`` if the iterator has a previous element + */ public abstract bool previous (); } [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface BidirList : Gee.List { + /** + * Returns a BidirListIterator that can be used for iteration over this list. + * + * @return a BidirListIterator that can be used for iteration over this list + */ public new abstract Gee.BidirListIterator bidir_list_iterator (); + /** + * The read-only view of this list. + */ public new abstract Gee.BidirList read_only_view { owned get; } } [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface BidirListIterator : Gee.BidirIterator, Gee.ListIterator { + /** + * Inserts the specified item before the current item in the iteration. The + * iterator points to the same element as before. + * + * Please note that if iterator points in-between elements the element + * is added between neighbouring elements and the iterator point between + * added element and the next one. + */ public abstract void insert (G item); } + /** + * A bi-directional Map iterator. + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface BidirMapIterator : Gee.MapIterator { + /** + * Goes back to the first element. + * + * @return `true` if the iterator has a first element + */ public abstract bool first (); + /** + * Checks whether there is a previous element in the iteration. + * + * @return `true` if the iterator has a previous element + */ public abstract bool has_previous (); + /** + * Advances to the last element in the iteration. + * + * @return `true` if the iterator has a last element + */ public abstract bool last (); + /** + * Rewinds to the previous element in the iteration. + * + * @return `true` if the iterator has a previous element + */ public abstract bool previous (); } [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface BidirSortedMap : Gee.SortedMap { + /** + * Returns a bi-directional iterator for this map. + * + * @return a bi-directional map iterator + */ public abstract Gee.BidirMapIterator bidir_map_iterator (); + /** + * Returns an immutable empty sorted set. + * + * @return an immutable empty sorted set + */ public static Gee.BidirSortedMap empty (); + /** + * The read-only view of this set. + */ public new abstract Gee.BidirSortedMap read_only_view { owned get; } } [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface BidirSortedSet : Gee.SortedSet { + /** + * Returns a {@link BidirIterator} that can be used for bi-directional + * iteration over this sorted set. + * + * @return a {@link BidirIterator} over this sorted set + */ public abstract Gee.BidirIterator bidir_iterator (); + /** + * Returns an immutable empty sorted set. + * + * @return an immutable empty sorted set + */ public static Gee.BidirSortedSet empty (); + /** + * The read-only view of this set. + */ public new abstract Gee.BidirSortedSet read_only_view { owned get; } } + /** + * A generic collection of objects. + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface Collection : Gee.Iterable { + /** + * Adds an item to this collection. Must not be called on read-only + * collections. + * + * @param item the item to add to the collection + * + * @return ``true`` if the collection has been changed, ``false`` otherwise + */ [CCode (ordering = 1)] public abstract bool add (G item); + /** + * Adds all items in the input collection to this collection. + * + * @param collection the collection which items will be added to this + * collection. + * + * @return ``true`` if the collection has been changed, ``false`` otherwise + */ [CCode (ordering = 4)] public virtual bool add_all (Gee.Collection collection); + /** + * Adds all items in the input array to this collection. + * + * @param array the array which items will be added to this + * collection. + * + * @return ``true`` if the collection has been changed, ``false`` otherwise + */ [CCode (ordering = 13)] public virtual bool add_all_array (G[] array); [CCode (ordering = 16)] public virtual bool add_all_iterator (Gee.Iterator iter); + /** + * Removes all items from this collection. Must not be called on + * read-only collections. + */ [CCode (ordering = 3)] public abstract void clear (); + /** + * Determines whether this collection contains the specified item. + * + * @param item the item to locate in the collection + * + * @return ``true`` if item is found, ``false`` otherwise + */ [CCode (ordering = 0)] public abstract bool contains (G item); + /** + * Returns ``true`` it this collection contains all items as the input + * collection. + * + * @param collection the collection which items will be compared with + * this collection. + * + * @return ``true`` if the collection has been changed, ``false`` otherwise + */ [CCode (ordering = 5)] public virtual bool contains_all (Gee.Collection collection); + /** + * Returns ``true`` it this collection contains all items as the input + * array. + * + * @param array the array which items will be compared with + * this collection. + * + * @return ``true`` if the collection has been changed, ``false`` otherwise + */ [CCode (ordering = 14)] public virtual bool contains_all_array (G[] array); [CCode (ordering = 17)] public virtual bool contains_all_iterator (Gee.Iterator iter); + /** + * Returns an immutable empty collection. + * + * @return an immutable empty collection + */ public static Gee.Collection empty (); + /** + * Removes the first occurrence of an item from this collection. Must not + * be called on read-only collections. + * + * @param item the item to remove from the collection + * + * @return ``true`` if the collection has been changed, ``false`` otherwise + */ [CCode (ordering = 2)] public abstract bool remove (G item); + /** + * Removes the subset of items in this collection corresponding to the + * elements in the input collection. If there is several occurrences of + * the same value in this collection they are decremented of the number + * of occurrences in the input collection. + * + * @param collection the collection which items will be compared with + * this collection. + * + * @return ``true`` if the collection has been changed, ``false`` otherwise + */ [CCode (ordering = 6)] public virtual bool remove_all (Gee.Collection collection); + /** + * Removes the subset of items in this collection corresponding to the + * elements in the input array. If there is several occurrences of + * the same value in this collection they are decremented of the number + * of occurrences in the input array. + * + * @param array the array which items will be compared with + * this collection. + * + * @return ``true`` if the collection has been changed, ``false`` otherwise + */ [CCode (ordering = 15)] public virtual bool remove_all_array (G[] array); [CCode (ordering = 18)] public virtual bool remove_all_iterator (Gee.Iterator iter); + /** + * Removes all items in this collection that are not contained in the input + * collection. In other words all common items of both collections are + * retained in this collection. + * + * @param collection the collection which items will be compared with + * this collection. + * + * @return ``true`` if the collection has been changed, ``false`` otherwise + */ [CCode (ordering = 7)] public virtual bool retain_all (Gee.Collection collection); + /** + * Returns an array containing all of items from this collection. + * + * @return an array containing all of items from this collection + */ [CCode (ordering = 8)] public virtual G[] to_array (); + /** + * Specifies whether this collection is empty. + */ [CCode (ordering = 10)] public virtual bool is_empty { get; } + /** + * Specifies whether this collection can change - i.e. whether {@link add}, + * {@link remove} etc. are legal operations. + */ [CCode (ordering = 11)] public abstract bool read_only { get; } + /** + * The read-only view of this collection. + */ [CCode (ordering = 12)] public abstract Gee.Collection read_only_view { owned get; } + /** + * The number of items in this collection. + */ [CCode (ordering = 9)] public abstract int size { get; } } + /** + * This interface defines a total ordering among instances of each class + * implementing it. + * + * In other words: + * + * * It's irreflexive: For all `a` it holds that `a.compare_to(a) == 0` + * * It's transitive: For all `a`, `b` and `c` if `a.compare_to(b) < 0` and + * `b.compare_to(c) < 0` then `a.compare_to(c) < 0`. + * * It's trichotomous: For all `a` and `b` it holds that + * `a.compare_to(b) = -b.compare_to(a)`. + * + * Note: The relationship must be immutable. In other words if at one point of + * program `a.compare_to(b)` had certain value then call `a.compare_to(b)` + * //must always// return the original value until end of `a` and `b` lifetime. + * + * @see Hashable + */ [CCode (cheader_filename = "gee.h")] public interface Comparable : GLib.Object { + /** + * Compares this object with the specified object. + * + * @return a negative integer, zero, or a positive integer as this object + * is less than, equal to, or greater than the specified object + */ public abstract int compare_to (G object); } + /** + * A double-ended queue. + * + * A deque can be used either as a queue (First-In-First-Out behavior) or as a + * stack (Last-In-First-Out behavior). + * + * The methods defined by this interface behaves exactely in the same way as + * the {@link Queue} methods with respect to capacity bounds. + * + * The Deque interface inherits from the {@link Queue} interface. Thus, to use + * a deque as a queue, you can equivalently use the following method set: + * + * ||<)(> ''Queue method'' ||<)(> ''Deque method'' || + * || {@link Queue.offer} || {@link offer_tail} || + * || {@link Queue.peek} || {@link peek_head} || + * || {@link Queue.poll} || {@link poll_head} || + * || {@link Queue.drain} || {@link drain_head} || + * + * To use a deque as a stack, just use the method set that acts at the head of + * the deque: + * + * ||<)(> ''Operation'' ||<)(> ''Deque method'' || + * || push an element || {@link offer_head} || + * || peek an element || {@link peek_head} || + * || pop an element || {@link poll_head} || + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface Deque : Gee.Queue { + /** + * Drains the specified amount of elements from the head of this queue in + * the specified recipient collection. + * + * @param recipient the recipient collection to drain the elements to + * @param amount the amount of elements to drain + * + * @return the amount of elements that were actually drained + */ public abstract int drain_head (Gee.Collection recipient, int amount = -1); + /** + * Drains the specified amount of elements from the tail of this queue in + * the specified recipient collection. + * + * @param recipient the recipient collection to drain the elements to + * @param amount the amount of elements to drain + * + * @return the amount of elements that were actually drained + */ public abstract int drain_tail (Gee.Collection recipient, int amount = -1); + /** + * Offers the specified element to the head of this deque. + * + * @param element the element to offer to the queue + * + * @return ``true`` if the element was added to the queue + */ public abstract bool offer_head (G element); + /** + * Offers the specified element to the tail of this deque + * + * @param element the element to offer to the queue + * + * @return ``true`` if the element was added to the queue + */ public abstract bool offer_tail (G element); + /** + * Peeks (retrieves, but not remove) an element from this queue. + * + * @return the element peeked from the queue (or ``null`` if none was + * available) + */ public abstract G peek_head (); + /** + * Peeks (retrieves, but not remove) an element from the tail of this + * queue. + * + * @return the element peeked from the queue (or ``null`` if none was + * available) + */ public abstract G peek_tail (); + /** + * Polls (retrieves and remove) an element from the head of this queue. + * + * @return the element polled from the queue (or ``null`` if none was + * available) + */ public abstract G poll_head (); + /** + * Polls (retrieves and remove) an element from the tail of this queue. + * + * @return the element polled from the queue (or ``null`` if none was + * available) + */ public abstract G poll_tail (); } + /** + * Future is a value which might not yet be computed - for example it is calculated + * in different thread or depends on I/O value. + * + * All methods can be called from many threads as part of interface. + * + * Note: Statement that call does not block does not mean that it is lock-free. + * Internally the implementation is allowed to take mutex but it should guarantee + * that it is not for a long time (including blocking on anything else, I/O calls + * or callbacks). + * + * @see Promise + * @see Lazy + * @see task + * @see async_task + * @since 0.11.0 + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface Future : GLib.Object { @@ -582,196 +2156,1012 @@ public delegate A MapFunc (G value); [CCode (scope = "async")] public delegate C ZipFunc (A a, B b); + /** + * Maps a future value to another future value which is returned (call does not block). + * + * Note: As time taken by function does not contribute to + * {@link wait_until} and the implementation is allowed to compute + * value eagerly by {@link wait_async} it is recommended to put the + * larger computation inside the returned future for example by + * {@link task} + * + * @param func Function applied to {@link value} + * @return Value of a future returned by function + * + * @see map + */ [CCode (ordering = 6)] public virtual Gee.Future flat_map (owned Gee.Future.FlatMapFunc func); + /** + * Maps a future value to another value by a function and returns the + * another value in future. + * + * Note: The function may be reevaluated at any time and it might + * be called lazily. Therefore it is recommended for it to be + * idempotent. If the function needs to be called eagerly or have + * side-effects it is recommended to use {@link map}. + * + * Note: As time taken by function does not contribute to + * {@link wait_until} and the implementation is allowed to compute + * value eagerly by {@link wait_async} it is recommended to use + * {@link task} and {@link flat_map} for longer computation. + * + * @param func Function applied to {@link value} + * @return Value returned by function + * + * @see flat_map + * @see map + * @since 0.11.4 + */ [CCode (cname = "gee_future_light_map_fixed", ordering = 10, vfunc_name = "light_map_fixed")] public virtual Gee.Future light_map (owned Gee.Future.LightMapFunc func); [CCode (cname = "gee_future_light_map", ordering = 4, vfunc_name = "light_map")] public virtual Gee.Future light_map_broken (Gee.Future.LightMapFunc func); + /** + * Maps a future value to another value by a function and returns the + * another value in future. + * + * Note: As time taken by function might not contribute to + * {@link wait_until} and the implementation is allowed to compute + * value eagerly by {@link wait_async} it is recommended to use + * {@link task} and {@link flat_map} for longer computation. + * + * @param func Function applied to {@link value} + * @return Value returned by function + * + * @see flat_map + * @see light_map + */ [CCode (ordering = 3)] public virtual Gee.Future map (owned Gee.Future.MapFunc func); + /** + * Waits until the value is ready. + * + * @return The {@link value} associated with future + * @see ready + * @see wait_until + * @see wait_async + */ [CCode (ordering = 0)] public abstract unowned G wait () throws Gee.FutureError; + /** + * Reschedules the callback until the {@link value} is available. + * + * @return The {@link value} associated with future + * @see ready + * @see wait + * @see wait_until + */ [CCode (ordering = 2)] public abstract async unowned G wait_async () throws Gee.FutureError; + /** + * Waits until the value is ready or deadline have passed. + * + * @param end_time The time when the wait should finish + * @param value The {@link value} associated with future if the wait was successful + * @return ``true`` if the value was ready within deadline or ``false`` otherwise + * @see ready + * @see wait + * @see wait_async + */ [CCode (ordering = 1)] public abstract bool wait_until (int64 end_time, out unowned G value = null) throws Gee.FutureError; + /** + * Combines values of two futures using a function returning the combined + * value in future (call does not block). + * + * Note: As time taken by function does not contribute to + * {@link wait_until} and the implementation is allowed to compute + * value eagerly by {@link wait_async} it is recommended to return a + * future from {@link task} and use {@link flat_map} for longer computation. + * + * @param zip_func Function applied to values + * @param second Second parameter + * @return A combine value + * @since 0.11.4 + */ [CCode (ordering = 5)] public virtual Gee.Future zip (owned Gee.Future.ZipFunc zip_func, Gee.Future second); + /** + * Checks the exception that have been set. I.e. if the computation + * has thrown the exception it should be set here and the {@link wait}, + * {@link wait_until} and {@link wait_async} should throw + * {@link FutureError.EXCEPTION}. + * + * @since 0.11.5 + */ [CCode (ordering = 9)] public abstract GLib.Error? exception { get; } + /** + * Checks if value is ready. If it is calls to {@link wait} and + * {@link wait_until} will not block and value is returned immediately. + */ [CCode (ordering = 8)] public abstract bool ready { get; } + /** + * The value associated with Future. If value is not ready getting value + * will block until value is ready. + * + * Returned value is always the same and it is alive at least as long + * as the future. + */ [CCode (ordering = 7)] public new virtual G value { get; } } + /** + * This interface defines a hash function among instances of each class + * implementing it. + * + * @see Comparable + */ [CCode (cheader_filename = "gee.h")] public interface Hashable : GLib.Object { + /** + * Compares this object with the specified object. This defines the + * equivalence relation between them. + * + * In other words: + * + * * It must be reflexive: for all objects `a` it holds that + * `a.equal_to(a)`. + * * It must be symmetric: for all objects `a` and `b` if + * `a.equal_to(b)` then `b.equal_to(a)`. + * * It must be transitive: if `a.equal_to(b)` and `b.equal_to(c)` then + * `a.equal_to(c)`. + * + * Note: Relationship //must not// change during lifetime of an object. + * + * @param object Object this objest is compared with + * @return true if objects are equal + */ public abstract bool equal_to (G object); + /** + * Computes hash for an objects. Two hashes of equal objects have to be + * equal. + * + * Note: Hash //must not// change during lifetime of an object. + * + * @return hash of an object + */ public abstract uint hash (); } + /** + * An object that can provide an {@link Iterator}. + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface Iterable : GLib.Object, Gee.Traversable { + /** + * Returns a {@link Iterator} that can be used for simple iteration over a + * collection. + * + * @return a {@link Iterator} that can be used for simple iteration over a + * collection + */ public abstract Gee.Iterator iterator (); } + /** + * An iterator over a collection. + * + * Gee's iterators are "on-track" iterators. They always point to an item + * except before the first call to {@link next}, or, when an + * item has been removed, until the next call to {@link next}. + * + * Please note that when the iterator is out of track, neither {@link get} nor + * {@link remove} are defined and both might fail. After the next call to + * {@link next}, they will be defined again. + * + * Please also note that, unless specified otherwise, iterators before iteration + * started should behave as if after deletion of the first element. Whenever + * documentation states about the iterator 'out of track', 'invalid' or + * 'in-between elements' this refers to the same concept. + */ [CCode (cheader_filename = "gee.h")] public interface Iterator : GLib.Object, Gee.Traversable { + /** + * Concatenate iterators. + * + * @param iters Iterators of iterators + * @return Iterator containing values of each iterator + */ public static Gee.Iterator concat (Gee.Iterator> iters); + /** + * Returns the current element in the iteration. + * + * @return the current element in the iteration + */ public abstract G @get (); + /** + * Checks whether there is a next element in the iteration. + * + * @return ``true`` if the iterator has a next element + */ public abstract bool has_next (); + /** + * Advances to the next element in the iteration. + * + * @return ``true`` if the iterator has a next element + */ public abstract bool next (); + /** + * Removes the current element in the iteration. The cursor is set in an + * in-between state. Both {@link get} and {@link remove} will fail until + * the next move of the cursor (calling {@link next}). + */ public abstract void remove (); + /** + * Create iterator from unfolding function. The lazy value is + * force-evaluated before progressing to next element. + * + * @param f Unfolding function + * @param current If iterator is to be valid it contains the current value of it + */ public static Gee.Iterator unfold (owned Gee.UnfoldFunc f, owned Gee.Lazy? current = null); + /** + * Determines whether the call to {@link remove} is legal assuming the + * iterator is valid. The value must not change in runtime hence the user + * of iterator may cache it. + */ public abstract bool read_only { get; } + /** + * Determines whether the call to {@link get} is legal. It is false at the + * beginning and after {@link remove} call and true otherwise. + */ public abstract bool valid { get; } } + /** + * An ordered collection. + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface List : Gee.Collection { + /** + * Returns an immutable empty list. + * + * @return an immutable empty list + */ public static Gee.List empty (); + /** + * Returns the first item of the list. Fails if the list is empty. + * + * @return first item in the list + */ public virtual G first (); + /** + * Returns the item at the specified index in this list. + * + * @param index zero-based index of the item to be returned + * + * @return the item at the specified index in the list + */ public abstract G @get (int index); + /** + * Returns the index of the first occurrence of the specified item in + * this list. + * + * @return the index of the first occurrence of the specified item, or + * -1 if the item could not be found + */ public abstract int index_of (G item); + /** + * Inserts an item into this list at the specified position. + * + * @param index zero-based index at which item is inserted + * @param item item to insert into the list + */ public abstract void insert (int index, G item); + /** + * Inserts items into this list for the input collection at the + * specified position. + * + * @param index zero-based index of the items to be inserted + * @param collection collection of items to be inserted + */ public virtual void insert_all (int index, Gee.Collection collection); + /** + * Returns the last item of the list. Fails if the list is empty. + * + * @return last item in the list + */ public virtual G last (); + /** + * Returns a ListIterator that can be used for iteration over this list. + * + * @return a ListIterator that can be used for iteration over this list + */ public new abstract Gee.ListIterator list_iterator (); + /** + * Removes the item at the specified index of this list. + * + * @param index zero-based index of the item to be removed + * + * @return the removed element + */ public abstract G remove_at (int index); + /** + * Sets the item at the specified index in this list. + * + * @param index zero-based index of the item to be set + */ public abstract void @set (int index, G item); + /** + * Returns a slice of this list. + * + * @param start zero-based index of the slice's first element + * @param stop zero-based index of the position after the end of the slice + * + * @return A list containing a slice of this list + */ public abstract Gee.List? slice (int start, int stop); + /** + * Sorts items by comparing with the specified compare function. + * + * @param compare_func compare function to use to compare items + */ public virtual void sort (owned GLib.CompareDataFunc? compare_func = null); + /** + * The read-only view of this list. + */ public new abstract Gee.List read_only_view { owned get; } } + /** + * A list iterator. This supports bi-directionnal and index-based iteration. + */ [CCode (cheader_filename = "gee.h")] public interface ListIterator : Gee.Iterator { + /** + * Adds the specified item after the current item in the iteration. The + * iterator is moved to the point of the new added item. + * + * Please note that if iterator points in-between elements the element + * is added after the current element and iterator point on it. + */ public abstract void add (G item); + /** + * Returns the current index in the iteration. + * + * @return the current index + */ public abstract int index (); + /** + * Sets the current item in the iteration to the specified new item. + */ public abstract void @set (G item); } + /** + * An object that maps keys to values. + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface Map : GLib.Object, Gee.Iterable> { + /** + * An entry of a map. + */ public abstract class Entry : GLib.Object { protected Entry (); + /** + * The key of this entry. + */ public abstract K key { get; } + /** + * ``true`` if the setting value is permitted. + */ public abstract bool read_only { get; } + /** + * The value of this entry. + */ public abstract V value { get; set; } } + /** + * Removes all items from this collection. Must not be called on + * read-only collections. + */ public abstract void clear (); + /** + * Determines whether this map contains the specified key. + * + * @param key the key to locate in the map + * + * @return ``true`` if key is found, ``false`` otherwise + */ [Version (deprecated = true, replacement = "Map.has_key")] public bool contains (K key); + /** + * Returns ``true`` if this map contains all the same items as the input + * map. + * + * @param map the map which items will be compared with this map + */ [Version (deprecated = true, replacement = "Map.has_all")] public bool contains_all (Gee.Map map); + /** + * Returns an immutable empty map. + * + * @return an immutable empty map + */ public static Gee.Map empty (); + /** + * Returns the value of the specified key in this map. + * + * @param key the key whose value is to be retrieved + * + * @return the value associated with the key, or ``null`` if the key + * couldn't be found + */ public abstract V @get (K key); + /** + * Determines whether this map has the specified key/value entry. + * + * @param key the key to locate in the map + * @param value the corresponding value + * + * @return ``true`` if key is found, ``false`` otherwise + */ public abstract bool has (K key, V value); + /** + * Returns ``true`` if this map contains all the same items as the input + * map. + * + * @param map the map which items will be compared with this map + */ public virtual bool has_all (Gee.Map map); + /** + * Determines whether this map has the specified key. + * + * @param key the key to locate in the map + * + * @return ``true`` if key is found, ``false`` otherwise + */ public abstract bool has_key (K key); + /** + * Returns an iterator for this map. + * + * @return a map iterator + */ public abstract Gee.MapIterator map_iterator (); + /** + * Removes the specified key from this map. + * + * @param key the key to remove from the map + * @param value the receiver variable for the removed value + * + * @return ``true`` if the map has been changed, ``false`` otherwise + */ [Version (deprecated = true, replacement = "Map.unset")] public bool remove (K key, out V value = null); + /** + * Removes all items from this map that are common to the input map + * and this map. + * + * @param map the map which common items are deleted from this map + */ [Version (deprecated = true, replacement = "Map.unset_all")] public bool remove_all (Gee.Map map); + /** + * Inserts a new key and value into this map. + * + * @param key the key to insert + * @param value the value to associate with the key + */ public abstract void @set (K key, V value); + /** + * Inserts all items that are contained in the input map to this map. + * + * @param map the map which items are inserted to this map + */ public virtual void set_all (Gee.Map map); + /** + * Removes the specified key from this map. + * + * @param key the key to remove from the map + * @param value the receiver variable for the removed value + * + * @return ``true`` if the map has been changed, ``false`` otherwise + */ public abstract bool unset (K key, out V value = null); + /** + * Removes all items from this map that are common to the input map + * and this map. + * + * @param map the map which common items are deleted from this map + */ public virtual bool unset_all (Gee.Map map); + /** + * The read-only view of the entries of this map. + */ public abstract Gee.Set> entries { owned get; } + /** + * Specifies whether this map is empty. + */ public virtual bool is_empty { get; } + /** + * The type of the keys in this map. + */ public GLib.Type key_type { get; } + /** + * The read-only view of the keys of this map. + */ public abstract Gee.Set keys { owned get; } + /** + * Specifies whether this collection can change - i.e. whether {@link set}, + * {@link remove} etc. are legal operations. + */ public abstract bool read_only { get; } + /** + * The read-only view this map. + */ public abstract Gee.Map read_only_view { owned get; } + /** + * The number of items in this map. + */ public abstract int size { get; } + /** + * The type of the values in this map. + */ public GLib.Type value_type { get; } + /** + * The read-only view of the values of this map. + */ public abstract Gee.Collection values { owned get; } } + /** + * An iterator over a map. + * + * Gee's iterators are "on-track" iterators. They always point to an item + * except before the first call to {@link next}, or, when an + * item has been removed, until the next call to {@link next}. + * + * Please note that when the iterator is out of track, neither {@link get_key}, + * {@link get_value}, {@link set_value} nor {@link unset} are defined and all + * will fail. After the next call to {@link next}, they will + * be defined again. + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface MapIterator : GLib.Object { + /** + * Standard aggregation function. + * + * It takes a function, seed and first element, returns the new seed and + * progress to next element when the operation repeats. + * + * Operation moves the iterator to last element in iteration. If iterator + * points at some element it will be included in iteration. + */ public virtual A fold (Gee.FoldMapFunc f, owned A seed); + /** + * Apply function to each element returned by iterator. + * + * Operation moves the iterator to last element in iteration. If iterator + * points at some element it will be included in iteration. + */ public new virtual bool @foreach (Gee.ForallMapFunc f); + /** + * Returns the current key in the iteration. + * + * @return the current key in the iteration + */ public abstract K get_key (); + /** + * Returns the value associated with the current key in the iteration. + * + * @return the value for the current key + */ public abstract V get_value (); + /** + * Checks whether there is a next entry in the iteration. + * + * @return ``true`` if the iterator has a next entry + */ public abstract bool has_next (); + /** + * Advances to the next entry in the iteration. + * + * @return ``true`` if the iterator has a next entry + */ public abstract bool next (); + /** + * Sets the value associated with the current key in the iteration. + * + * @param value the new value for the current key + */ public abstract void set_value (V value); + /** + * Unsets the current entry in the iteration. The cursor is set in an + * in-between state. {@link get_key}, {@link get_value}, {@link set_value} + * and {@link unset} will fail until the next move of the cursor (calling + * {@link next}). + */ public abstract void unset (); + /** + * Determines whether the call to {@link set_value} is legal assuming the + * iterator is valid. The value must not change in runtime hence the user + * of iterator may cache it. + */ public abstract bool mutable { get; } + /** + * Determines whether the call to {@link unset} is legal assuming the + * iterator is valid. The value must not change in runtime hence the user + * of iterator may cache it. + */ public abstract bool read_only { get; } + /** + * Determines whether the call to {@link get_key}, {@link get_value} and + * {@link set_value} is legal. It is false at the beginning and after + * {@link unset} call and true otherwise. + */ public abstract bool valid { get; } } + /** + * A map with multiple values per key. + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface MultiMap : GLib.Object { + /** + * Removes all items from this collection. + */ public abstract void clear (); + /** + * Determines whether this map contains the specified key. + * + * @param key the key to locate in the map + * + * @return ``true`` if key is found, ``false`` otherwise + */ public abstract bool contains (K key); + /** + * Returns the values for the specified key in this map. + * + * @param key the key whose values are to be retrieved + * + * @return a Collection of values associated with the given key + */ public abstract Gee.Collection @get (K key); + /** + * Returns the keys of this multimap as a read-only set. + * + * @return the keys of the map + */ public abstract Gee.MultiSet get_all_keys (); + /** + * Returns the keys of this multimap as a read-only set. + * + * @return the keys of the map + */ public abstract Gee.Set get_keys (); + /** + * Returns the values of this map as a read-only collection. + * + * @return the values of the map + */ public abstract Gee.Collection get_values (); + /** + * Returns an iterator for this map. + * + * @return a map iterator + */ public abstract Gee.MapIterator map_iterator (); + /** + * Removes the specified key/value pair from this multimap. + * + * @param key the key to remove from the map + * @param value the value to remove from the map + * + * @return ``true`` if the map has been changed, ``false`` otherwise + */ public abstract bool remove (K key, V value); + /** + * Removes the specified key and all the associated values from this + * multimap. + * + * @param key the key to remove from the map + * + * @return ``true`` if the map has been changed, ``false`` otherwise + */ public abstract bool remove_all (K key); + /** + * Inserts a key/value pair into this map. + * + * @param key the key to insert + * @param value the value to associate with the key + */ public abstract void @set (K key, V value); + /** + * The type of the keys in this multimap. + */ public GLib.Type key_type { get; } + /** + * Specifies whether this collection can change - i.e. whether {@link set}, + * {@link remove} etc. are legal operations. + */ public abstract bool read_only { get; } public virtual Gee.MultiMap read_only_view { owned get; } + /** + * The number of key/value pairs in this map. + */ public abstract int size { get; } + /** + * The type of the values in this multimap. + */ public GLib.Type value_type { get; } } + /** + * A collection with duplicate elements. + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface MultiSet : Gee.Collection { + /** + * Returns the number of occurrences of an item in this multiset. + * + * @param item the item to count occurrences of + * + * @return the number of occurrences of the item in this multiset. + */ public abstract int count (G item); + /** + * Returns an immutable empty set. + * + * @return an immutable empty set + */ public static Gee.Set empty (); + /** + * The read-only view of this set. + */ public new virtual Gee.MultiSet read_only_view { owned get; } } + /** + * A collection designed for holding elements prior to processing. + * + * Although all Queue implementations do not limit the amount of elements they + * can contain, this interface supports for capacity-bounded queues. When + * capacity is not bound, then the {@link capacity} and + * {@link remaining_capacity} both return {@link UNBOUNDED_CAPACITY}. + * + * This interface defines methods that will never fail whatever the state of + * the queue is. For capacity-bounded queues, those methods will either return + * ``false`` or ``null`` to specify that the insert or retrieval did not occur + * because the queue was full or empty. + * + * Queue implementations are not limited to First-In-First-Out behavior and can + * offer different orderings of their elements. Each Queue implementation must + * specify how it orders its elements. + * + * Queue implementations do not allow insertion of ``null`` elements, although + * some implementations, such as {@link LinkedList}, do not prohibit insertion + * of ``null``. Even in the implementations that permit it, ``null`` should not be + * inserted into a Queue, as ``null`` is also used as a special return value by + * the poll method to indicate that the queue contains no elements. + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface Queue : Gee.Collection { + /** + * The unbounded capacity value. + */ public const int UNBOUNDED_CAPACITY; + /** + * Drains the specified amount of elements from this queue in the specified + * recipient collection. + * + * @param recipient the recipient collection to drain the elements to + * @param amount the amount of elements to drain + * + * @return the amount of elements that were actually drained + */ public virtual int drain (Gee.Collection recipient, int amount = -1); + /** + * Offers the specified element to this queue. + * + * @param element the element to offer to the queue + * + * @return ``true`` if the element was added to the queue + */ public virtual bool offer (G element); + /** + * Peeks (retrieves, but not remove) an element from this queue. + * + * @return the element peeked from the queue (or ``null`` if none was + * available) + */ public abstract G peek (); + /** + * Polls (retrieves and remove) an element from this queue. + * + * @return the element polled from the queue (or ``null`` if none was + * available) + */ public abstract G poll (); + /** + * The capacity of this queue (or ``UNBOUNDED_CAPACITY`` if capacity is not bound). + */ public abstract int capacity { get; } + /** + * Specifies whether this queue is full. + */ public abstract bool is_full { get; } + /** + * The remaining capacity of this queue (or ``UNBOUNDED_CAPACITY`` if capacity is not + * bound). + */ public abstract int remaining_capacity { get; } } + /** + * A collection without duplicate elements. + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface Set : Gee.Collection { + /** + * Returns an immutable empty set. + * + * @return an immutable empty set + */ public static Gee.Set empty (); + /** + * The read-only view of this set. + */ public new abstract Gee.Set read_only_view { owned get; } } [CCode (cheader_filename = "gee.h")] public interface SortedMap : Gee.Map { + /** + * Returns an immutable empty map. + * + * @return an immutable empty map + */ public static Gee.Map empty (); + /** + * Returns map containing pairs with key strictly lower the the argument. + */ public abstract Gee.SortedMap head_map (K before); + /** + * Returns right-open map (i.e. containing all pair which key is strictly + * lower then the second argument and equal or bigger then the first one). + * + * Null as one parameter means that it should include all from this side. + */ public abstract Gee.SortedMap sub_map (K before, K after); + /** + * Returns map containing pairs with key equal or larger then the argument. + */ public abstract Gee.SortedMap tail_map (K after); + /** + * Returns the entries in ascending order. + */ public abstract Gee.SortedSet> ascending_entries { owned get; } + /** + * Returns the keys in ascending order. + */ public abstract Gee.SortedSet ascending_keys { owned get; } + /** + * The read-only view this map. + */ public new abstract Gee.SortedMap read_only_view { owned get; } } + /** + * A sorted set, which you can navigate over and get sub-sets of. + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface SortedSet : Gee.Set { + /** + * Returns the element which is higher or equal then the specified element. + * + * @param element the element which you want the higher or equal element + * for + * + * @return the corresponding element + */ public abstract G ceil (G element); + /** + * Returns an immutable empty sorted set. + * + * @return an immutable empty sorted set + */ public static Gee.SortedSet empty (); + /** + * Returns the first element of the sorted set. Set must not be empty. + * + * @return the first element in the sorted set + */ public abstract G first (); + /** + * Returns the element which is lower or equal then the specified element. + * + * @param element the element which you want the lower or equal element for + * + * @return the corresponding element + */ public abstract G floor (G element); + /** + * Returns the sub-set of this sorted set containing elements strictly + * lower than the specified element. + * + * @param before the lower inclusive bound for the sub-set + * + * @return the corresponding sub-set of this sorted set + */ public abstract Gee.SortedSet head_set (G before); + /** + * Returns the element which is strictly higher than the specified element. + * + * @param element the element which you want the strictly higher element + * for + * + * @return the corresponding element + */ public abstract G higher (G element); + /** + * Returns a {@link BidirIterator} initially pointed at the specified + * element. + * + * @param element the element to point the iterator at + * + * @return a {@link BidirIterator} over this sorted set, or null if + * the specified element is not in this set + */ public abstract Gee.Iterator? iterator_at (G element); + /** + * Returns the last element of the sorted set. Set must not be empty. + * + * @return the last element in the sorted set + */ public abstract G last (); + /** + * Returns the element which is strictly lower than the specified element. + * + * @param element the element which you want the lower element for + * + * @return the corresponding element + */ public abstract G lower (G element); + /** + * Returns the right-open sub-set of this sorted set, thus containing + * elements equal or higher than the specified ``from`` element, and stricly + * lower than the specified ``to`` element. + * + * @param from the lower inclusive bound for the sub-set + * @param to the higher exclusive bound for the sub-set + * + * @return the corresponding sub-set of this sorted set + */ public abstract Gee.SortedSet sub_set (G from, G to); + /** + * Returns the sub-set of this sorted set containing elements equal or + * higher than the specified element. + * + * @param after the higher exclusive bound for the sub-set + * + * @return the corresponding sub-set of this sorted set + */ public abstract Gee.SortedSet tail_set (G after); + /** + * The read-only view of this set. + */ public new abstract Gee.SortedSet read_only_view { owned get; } } + /** + * It's a common interface for {@link Iterator} and {@link Iterable}. It + * provides a fast, high level functions. + * + * ''{@link Iterator} implementation:'' Please note that most of the functions + * affect the state of the iterator by moving it forward. + * Even if the iterator is {@link BidirIterator} it ''must not'' + * rewind the state. + * + * ''{@link Iterable} implementation:'' validy ({@link Iterator.valid}) + * of returned iterator is the same as for invalid + * iterator. In other words the following code is semantically equivalent: + * + * {{{ + * var x = iterable.function (args); + * var x = iterable.iterator ().function(args); + * }}} + * + * @since 0.7.0 + */ [CCode (cheader_filename = "gee.h")] [GenericAccessors] public interface Traversable : GLib.Object { @@ -781,44 +3171,299 @@ END, WAIT } + /** + * Checks whether all elements match the given predicate. + * + * @param pred Predicate to be called to check for matches + * @return Whether all elements match or not + * @since 0.19.91 + */ [CCode (ordering = 12)] public virtual bool all_match (owned Gee.Predicate pred); + /** + * Returns whether any element matches the given predicate. + * + * This is similar to @first_match, with the difference that it + * just returns whether there is a match or not, not the value + * of the match. + * + * @param pred Predicate to be called to check for matches + * @return Whether there was a match or not + * @since 0.19.91 + */ [CCode (ordering = 11)] public virtual bool any_match (owned Gee.Predicate pred); + /** + * Creates a new iterator which contains elements from iterable. The + * first argument states the offset i.e. number of elements the iterator + * skips by default. + * + * Note: In {@link Iterator} implementation resulting iterator is + * {@link Iterator.valid} when parent iterator is + * {@link Iterator.valid} and the offset is 0. Using the parent + * iterator is not allowed before the inner iterator + * {@link Iterator.next} return false and then it points on its last + * element. + * + * @param offset the offset to first element the iterator is pointing to + * @param length maximum number of elements iterator may return. Negative + * value means that the number is unbounded + */ [CCode (ordering = 6)] public virtual Gee.Iterator chop (int offset, int length = -1); + /** + * Creates a new iterator that contains only values that fulfills the + * predicate. + * + * Note: When the method is called on {@link Iterator} using the parent + * iterator is not allowed before the inner iterator + * {@link Iterator.next} return false and then it points on its last + * element. The resulting iterator is {@link Iterator.valid} if parent + * iterator is {@link Iterator.valid} and value it is pointing on + * fulfills the predicate. + * + * @param pred predicate to check should the value be retained + * @return Iterator containing values of subsequent values of seed + */ [CCode (ordering = 5)] public virtual Gee.Iterator filter (owned Gee.Predicate pred); + /** + * Returns the first element that matches a given condition + * + * @param pred Predicate to be called to check for matches + * @return The first element that matches or null + * @since 0.19.91 + */ [CCode (ordering = 10)] public virtual G first_match (owned Gee.Predicate pred); + /** + * A fused concatenate and map. The function is applied to each element + * of iteration and the resulting values are concatenated. + * + * The iterator is lazy evaluated but value is force-evaluated when + * iterator is moved to next value. + * + * Note: Default implementation uses {@link stream}. + * + * Note: In {@link Iterator} implementation if the parent iterator is + * {@link Iterator.valid} and function returns a valid iterator the + * resulting iterator is also valid. Using the parent iterator is not + * allowed before the inner iterator {@link Iterator.next} + * return false and then it points on its last element. + * + * @since 0.11.1 + * @param f mapping function + * @return Iterator over returned values + */ [CCode (ordering = 8)] public virtual Gee.Iterator flat_map (owned Gee.FlatMapFunc f); + /** + * Standard aggregation function. + * + * It takes a function, seed and first element, returns the new seed and + * progress to next element when the operation repeats. + * + * Note: Default implementation uses {@link foreach}. + * + * Note: In {@link Iterator} implementation operation moves the + * iterator to last element in iteration. If iterator is + * {@link Iterator.valid} the current element will be considered + * as well. + * + */ [CCode (ordering = 2)] public virtual A fold (Gee.FoldFunc f, owned A seed); + /** + * Apply function to each element returned by iterator until last element + * or function return ''false''. + * + * ''{@link Iterator} implementation:'' Operation moves the iterator + * to last element in iteration or the first element that returned ''false''. + * If iterator points at some element it will be included in iteration. + * + * @param f function applied to every element of the collection + * + * @return ''false'' if the argument returned ''false'' at last invocation and + * ''true'' otherwise. + */ [CCode (ordering = 0)] public new abstract bool @foreach (Gee.ForallFunc f); + /** + * Produces an iterator pointing at elements generated by function passed. + * + * Iterator is lazy evaluated but value is force-evaluated when + * iterator moves to next element. ({@link Iterator.next}) + * + * Note: Default implementation uses {@link stream}. + * + * Note: In {@link Iterator} implementation if the parent iterator is + * {@link Iterator.valid} so is the returned one. Using the parent + * iterator is not allowed before the inner iterator {@link Iterator.next} + * return false and then it points on its last element. + * The resulting iterator is {@link Iterator.valid} if the parent + * iterator is. + * + * @param f Mapping function + * @return Iterator listing mapped value + */ [CCode (ordering = 3)] public virtual Gee.Iterator map (Gee.MapFunc f); + /** + * Returns the item in the sequence that contains the max value + * based on the given compare function. + * + * @param compare Function to be called for comparisons + * @return The item containing the max value. + * @since 0.19.91 + */ [CCode (ordering = 13)] public virtual G max (owned GLib.CompareDataFunc compare); + /** + * Returns the item in the sequence that contains the min value + * based on the given compare function. + * + * @param compare Function to be called for comparisons + * @return The item containing the min value. + * @since 0.19.91 + */ [CCode (ordering = 14)] public virtual G min (owned GLib.CompareDataFunc compare); + /** + * Returns a new iterator containing the elements in the source + * ordered as specified by the comparison function. + * + * @param compare Comparison function + * @return A new iterator with the source elements sorted. + * @since 0.19.91 + */ [CCode (ordering = 15)] public virtual Gee.Iterator order_by (owned GLib.CompareDataFunc? compare = null); + /** + * Creates a new iterator that is initially pointing to seed. Then + * subsequent values are obtained after applying the function to previous + * value and the subsequent items. + * + * The resulting iterator is always valid and it contains the seed value. + * + * Note: Default implementation uses {@link stream}. + * + * Note: When the method is called on {@link Iterator}, using the parent + * iterator is not allowed before the inner iterator + * {@link Iterator.next} returns false and then it points to its last + * element. The resulting iterator is {@link Iterator.valid}. + * + * @param f Folding function + * @param seed original seed value + * @return Iterator containing values of subsequent values of seed + */ [CCode (ordering = 4)] public virtual Gee.Iterator scan (Gee.FoldFunc f, owned A seed); + /** + * Stream function is an abstract function allowing writing many + * operations. + * + * The stream function accepts three parameter: + * + * 1. state. It is usually the last returned value from function but + * it may be {@link Stream.END} when {@link Stream.CONTINUE} was + * returned and there was no more elements. + * 1. input. It is valid only if first argument is + * {@link Stream.CONTINUE} + * 1. output. It is valid only if result is Stream.YIELD + * + * It may return one of 3 results: + * + * 1. {@link Stream.YIELD}. It means that value was yielded and can + * be passed to outgoing iterator. + * 1. {@link Stream.CONTINUE}. It means that the function needs to be + * called with next element or with {@link Stream.END} if it is + * end of stream). If the state element was Stream.END during the + * current iteration function ''must not'' return {@link Stream.CONTINUE}. + * 1. {@link Stream.WAIT}. Simply denotes that iterator should skip an element. + * Usually the function is called once again with {@link Stream.WAIT} as + * state however it do affect the initial validity of iterator. + * 1. {@link Stream.END}. It means that the last argument was yielded. + * + * If the function yields the value immediately then the returning iterator + * is {@link Iterator.valid} and points to this value as well as in case when the + * parent iterator is {@link Iterator.valid} and function yields + * after consuming 1 input. In other case returned iterator is invalid including + * when the first value returned is {@link Stream.WAIT}. + * + * Note: In {@link Iterator} implementation: if iterator is + * {@link Iterator.valid} the current value should be fed + * immediately to function if during initial call function returns + * {@link Stream.CONTINUE}. The parent iterator cannot be used before + * the functions return {@link Stream.END} afterwards it points on the + * last element consumed. + * + * @param f function generating stream + * @return iterator containing values yielded by stream + */ [CCode (ordering = 1)] public virtual Gee.Iterator stream (owned Gee.StreamFunc f); + /** + * Splits the traversable into multiple ones, caching the result if needed. + * + * Note: In {@link Iterator} implementation using the parent iterator is + * not allowed. However if any of the forked iterators {@link Iterator.next} + * return false then it is treated as if the parent iterator + * {@link Iterator.next} returned false. + * + * Note: The returned arrey might contain parent iterator if it is allowed + * by implementation. For example the iteration over collection does + * not need to generate and cache the results. + * In such case it is recommended to return the value as the first element + * of the array. This allows the consumer to check just the first element + * if it can perform optimizations for such case. However it //must// not + * depend on the order (that's for optimization only). + * + * Note: The resulting iterators does not need to be thread safe. + * + * @param forks Number of iterators in array + * @return An array with created iterators + * @since 0.11.5 + */ [CCode (ordering = 9)] public virtual Gee.Iterator[] tee (uint forks); + /** + * The type of the elements in this collection. + */ [CCode (ordering = 7)] public virtual GLib.Type element_type { get; } } [CCode (cheader_filename = "gee.h")] public errordomain FutureError { + /** + * The promise have been abandon - this indicates an error in program. + */ ABANDON_PROMISE, + /** + * Exception field has been set. + */ EXCEPTION } + /** + * A function comparing two object defining equivalence relationship. + * + * In other words if `equal_to` is `EqualDataFunc` then: + * + * * It must be reflexive: for all objects `a` it holds that + * `equal_to(a, a)`. + * * It must be symmetric: for all objects `a` and `b` if + * `equal_to(a, b)` then `equal_to(b, a)`. + * * It must be transitive: if `equal_to(a, b)` and `equal_to(b, c)` + * then `equal_to(a, c)` + * + * Note: The relationship //must not// change during lifetime of the + * delegate. + * + * @param a First value + * @param b Second value + * @return Whether values are equal + * + * @see Hashable + */ [CCode (cheader_filename = "gee.h")] public delegate bool EqualDataFunc (T a, T b); [CCode (cheader_filename = "gee.h")] @@ -831,6 +3476,19 @@ public delegate bool ForallFunc (owned G g); [CCode (cheader_filename = "gee.h")] public delegate bool ForallMapFunc (K k, V v); + /** + * A function producing a hash for an object. Two hashes of equal + * objects (as specified by corresponding {@link EqualDataFunc}) have to + * be equal. + * + * Note: Hash for a given object //must not// change during the lifetime + * of delegate. + * + * @param v Hashed value + * @return Hash for given value + * + * @see Hashable + */ [CCode (cheader_filename = "gee.h")] public delegate uint HashDataFunc (T v); [CCode (cheader_filename = "gee.h")] @@ -845,8 +3503,34 @@ public delegate G Task (); [CCode (cheader_filename = "gee.h")] public delegate Gee.Lazy? UnfoldFunc (); + /** + * Continues the execution asynchroniously in helper thread. Internally + * one of threads from pool will execute the task. + * + * Note: There is limited number of threads unless environment variable + * ``GEE_NUM_THREADS`` is set to -1. It is not advised to call I/O or + * block inside the taks. If necessary it is possible to create a new one + * by anyther call. + * + * @see task + * @since 0.11.0 + */ [CCode (cheader_filename = "gee.h")] public static async void async_task () throws GLib.ThreadError; + /** + * Schedules a task to execute asynchroniously. Internally one + * of threads from pool will execute the task. + * + * Note: There is limited number of threads unless environment variable + * ``GEE_NUM_THREADS`` is set to -1. It is not advised to call I/O or + * block inside the taks. If necessary it is possible to create a new one + * by anyther call. + * + * @param task Task to be executed + * @return Future value returned by task + * @see async_task + * @since 0.11.0 + */ [CCode (cheader_filename = "gee.h")] public static Gee.Future task (owned Gee.Task task) throws GLib.ThreadError; } diff -Nru libgee-0.8-0.20.3/gee/gee.h libgee-0.8-0.20.4/gee/gee.h --- libgee-0.8-0.20.3/gee/gee.h 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/gee.h 2021-03-17 19:58:44.000000000 +0000 @@ -1,4 +1,4 @@ -/* gee.h generated by valac 0.46.6, the Vala compiler, do not modify */ +/* gee.h generated by valac 0.52.0, the Vala compiler, do not modify */ #ifndef __GEE_H__ #define __GEE_H__ @@ -1397,7 +1397,7 @@ GeeAbstractBidirListClass parent_class; }; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; +GType gee_traversable_stream_get_type (void) G_GNUC_CONST ; gpointer gee_lazy_ref (gpointer instance); void gee_lazy_unref (gpointer instance); GParamSpec* gee_param_spec_lazy (const gchar* name, @@ -1410,22 +1410,22 @@ void gee_value_take_lazy (GValue* value, gpointer v_object); gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; +GType gee_lazy_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; +GType gee_iterator_get_type (void) G_GNUC_CONST ; +GType gee_traversable_get_type (void) G_GNUC_CONST ; +GType gee_iterable_get_type (void) G_GNUC_CONST ; +GType gee_collection_get_type (void) G_GNUC_CONST ; +GType gee_abstract_collection_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_get_type (void) G_GNUC_CONST; -GType gee_abstract_list_get_type (void) G_GNUC_CONST; +GType gee_list_iterator_get_type (void) G_GNUC_CONST ; +GType gee_list_get_type (void) G_GNUC_CONST ; +GType gee_abstract_list_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractList, g_object_unref) -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_get_type (void) G_GNUC_CONST; -GType gee_abstract_bidir_list_get_type (void) G_GNUC_CONST; +GType gee_bidir_iterator_get_type (void) G_GNUC_CONST ; +GType gee_bidir_list_iterator_get_type (void) G_GNUC_CONST ; +GType gee_bidir_list_get_type (void) G_GNUC_CONST ; +GType gee_abstract_bidir_list_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirList, g_object_unref) GeeBidirListIterator* gee_abstract_bidir_list_bidir_list_iterator (GeeAbstractBidirList* self); GeeAbstractBidirList* gee_abstract_bidir_list_construct (GType object_type, @@ -1433,14 +1433,14 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); GeeBidirList* gee_abstract_bidir_list_get_read_only_view (GeeAbstractBidirList* self); -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_set_get_type (void) G_GNUC_CONST; +GType gee_set_get_type (void) G_GNUC_CONST ; +GType gee_abstract_set_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST; +GType gee_sorted_set_get_type (void) G_GNUC_CONST ; +GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedSet, g_object_unref) -GType gee_bidir_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_bidir_sorted_set_get_type (void) G_GNUC_CONST; +GType gee_bidir_sorted_set_get_type (void) G_GNUC_CONST ; +GType gee_abstract_bidir_sorted_set_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedSet, g_object_unref) GeeBidirIterator* gee_abstract_bidir_sorted_set_bidir_iterator (GeeAbstractBidirSortedSet* self); GeeAbstractBidirSortedSet* gee_abstract_bidir_sorted_set_construct (GType object_type, @@ -1448,18 +1448,18 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); GeeBidirSortedSet* gee_abstract_bidir_sorted_set_get_read_only_view (GeeAbstractBidirSortedSet* self); -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; +GType gee_map_iterator_get_type (void) G_GNUC_CONST ; +GType gee_map_entry_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_map_get_type (void) G_GNUC_CONST; +GType gee_map_get_type (void) G_GNUC_CONST ; +GType gee_abstract_map_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMap, g_object_unref) -GType gee_sorted_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_sorted_map_get_type (void) G_GNUC_CONST; +GType gee_sorted_map_get_type (void) G_GNUC_CONST ; +GType gee_abstract_sorted_map_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedMap, g_object_unref) -GType gee_bidir_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_sorted_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_bidir_sorted_map_get_type (void) G_GNUC_CONST; +GType gee_bidir_map_iterator_get_type (void) G_GNUC_CONST ; +GType gee_bidir_sorted_map_get_type (void) G_GNUC_CONST ; +GType gee_abstract_bidir_sorted_map_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedMap, g_object_unref) GeeBidirMapIterator* gee_abstract_bidir_sorted_map_bidir_map_iterator (GeeAbstractBidirSortedMap* self); GeeAbstractBidirSortedMap* gee_abstract_bidir_sorted_map_construct (GType object_type, @@ -1547,9 +1547,9 @@ GeeCollection* gee_abstract_map_get_values (GeeAbstractMap* self); GeeSet* gee_abstract_map_get_entries (GeeAbstractMap* self); GeeMap* gee_abstract_map_get_read_only_view (GeeAbstractMap* self); -GType gee_multi_set_get_type (void) G_GNUC_CONST; -GType gee_multi_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_multi_map_get_type (void) G_GNUC_CONST; +GType gee_multi_set_get_type (void) G_GNUC_CONST ; +GType gee_multi_map_get_type (void) G_GNUC_CONST ; +GType gee_abstract_multi_map_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiMap, g_object_unref) GeeAbstractMultiMap* gee_abstract_multi_map_construct (GType object_type, GType k_type, @@ -1565,7 +1565,7 @@ gpointer* result_target, GDestroyNotify* result_target_destroy_notify); GeeMultiMap* gee_abstract_multi_map_get_read_only_view (GeeAbstractMultiMap* self); -GType gee_abstract_multi_set_get_type (void) G_GNUC_CONST; +GType gee_abstract_multi_set_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiSet, g_object_unref) GeeAbstractMultiSet* gee_abstract_multi_set_construct (GType object_type, GType g_type, @@ -1573,8 +1573,8 @@ GDestroyNotify g_destroy_func, GeeMap* storage_map); GeeMultiSet* gee_abstract_multi_set_get_read_only_view (GeeAbstractMultiSet* self); -GType gee_queue_get_type (void) G_GNUC_CONST; -GType gee_abstract_queue_get_type (void) G_GNUC_CONST; +GType gee_queue_get_type (void) G_GNUC_CONST ; +GType gee_abstract_queue_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractQueue, g_object_unref) gpointer gee_abstract_queue_peek (GeeAbstractQueue* self); gpointer gee_abstract_queue_poll (GeeAbstractQueue* self); @@ -1630,7 +1630,7 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); GeeSortedSet* gee_abstract_sorted_set_get_read_only_view (GeeAbstractSortedSet* self); -GType gee_array_list_get_type (void) G_GNUC_CONST; +GType gee_array_list_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeArrayList, g_object_unref) GeeArrayList* gee_array_list_new (GType g_type, GBoxedCopyFunc g_dup_func, @@ -1666,8 +1666,8 @@ GeeCollection* collection); GeeEqualDataFunc gee_array_list_get_equal_func (GeeArrayList* self, gpointer* result_target); -GType gee_deque_get_type (void) G_GNUC_CONST; -GType gee_array_queue_get_type (void) G_GNUC_CONST; +GType gee_deque_get_type (void) G_GNUC_CONST ; +GType gee_array_queue_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeArrayQueue, g_object_unref) GeeArrayQueue* gee_array_queue_new (GType g_type, GBoxedCopyFunc g_dup_func, @@ -1749,10 +1749,10 @@ gboolean gee_collection_get_is_empty (GeeCollection* self); gboolean gee_collection_get_read_only (GeeCollection* self); GeeCollection* gee_collection_get_read_only_view (GeeCollection* self); -GType gee_comparable_get_type (void) G_GNUC_CONST; +GType gee_comparable_get_type (void) G_GNUC_CONST ; gint gee_comparable_compare_to (GeeComparable* self, gconstpointer object); -GType gee_concurrent_list_get_type (void) G_GNUC_CONST; +GType gee_concurrent_list_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeConcurrentList, g_object_unref) GeeConcurrentList* gee_concurrent_list_new (GType g_type, GBoxedCopyFunc g_dup_func, @@ -1770,9 +1770,9 @@ GeeEqualDataFunc gee_concurrent_list_get_equal_func (GeeConcurrentList* self, gpointer* result_target); gboolean gee_concurrent_list_get_is_empty (GeeConcurrentList* self); -GType gee_concurrent_set_get_type (void) G_GNUC_CONST; +GType gee_concurrent_set_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeConcurrentSet, g_object_unref) -GType gee_concurrent_set_range_type_get_type (void) G_GNUC_CONST; +GType gee_concurrent_set_range_type_get_type (void) G_GNUC_CONST ; GeeConcurrentSet* gee_concurrent_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -1810,7 +1810,7 @@ gpointer* result_target, GDestroyNotify* result_target_destroy_notify); GQuark gee_future_error_quark (void); -GType gee_future_get_type (void) G_GNUC_CONST; +GType gee_future_get_type (void) G_GNUC_CONST ; gconstpointer gee_future_wait (GeeFuture* self, GError** error); gboolean gee_future_wait_until (GeeFuture* self, @@ -1863,11 +1863,11 @@ gconstpointer gee_future_get_value (GeeFuture* self); gboolean gee_future_get_ready (GeeFuture* self); GError* gee_future_get_exception (GeeFuture* self); -GType gee_hashable_get_type (void) G_GNUC_CONST; +GType gee_hashable_get_type (void) G_GNUC_CONST ; guint gee_hashable_hash (GeeHashable* self); gboolean gee_hashable_equal_to (GeeHashable* self, gconstpointer object); -GType gee_hash_map_get_type (void) G_GNUC_CONST; +GType gee_hash_map_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMap, g_object_unref) GeeHashMap* gee_hash_map_new (GType k_type, GBoxedCopyFunc k_dup_func, @@ -1906,7 +1906,7 @@ gpointer* result_target); GeeEqualDataFunc gee_hash_map_get_value_equal_func (GeeHashMap* self, gpointer* result_target); -GType gee_hash_multi_map_get_type (void) G_GNUC_CONST; +GType gee_hash_multi_map_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMultiMap, g_object_unref) GeeHashMultiMap* gee_hash_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, @@ -1953,7 +1953,7 @@ gpointer* result_target); GeeEqualDataFunc gee_hash_multi_map_get_value_equal_func (GeeHashMultiMap* self, gpointer* result_target); -GType gee_hash_multi_set_get_type (void) G_GNUC_CONST; +GType gee_hash_multi_set_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMultiSet, g_object_unref) GeeHashMultiSet* gee_hash_multi_set_new_fixed (GType g_type, GBoxedCopyFunc g_dup_func, @@ -1980,7 +1980,7 @@ GeeHashDataFunc hash_func, gpointer hash_func_target, GeeEqualDataFunc equal_func, - gpointer equal_func_target) G_GNUC_DEPRECATED; + gpointer equal_func_target) G_GNUC_DEPRECATED ; GeeHashMultiSet* gee_hash_multi_set_construct_broken (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -1988,12 +1988,12 @@ GeeHashDataFunc hash_func, gpointer hash_func_target, GeeEqualDataFunc equal_func, - gpointer equal_func_target) G_GNUC_DEPRECATED; + gpointer equal_func_target) G_GNUC_DEPRECATED ; GeeHashDataFunc gee_hash_multi_set_get_hash_func (GeeHashMultiSet* self, gpointer* result_target); GeeEqualDataFunc gee_hash_multi_set_get_equal_func (GeeHashMultiSet* self, gpointer* result_target); -GType gee_hash_set_get_type (void) G_GNUC_CONST; +GType gee_hash_set_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashSet, g_object_unref) GeeHashSet* gee_hash_set_new (GType g_type, GBoxedCopyFunc g_dup_func, @@ -2020,14 +2020,14 @@ gpointer* result_target); void gee_hazard_pointer_free (GeeHazardPointer * self); G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHazardPointer, gee_hazard_pointer_free) -G_GNUC_INTERNAL void gee_hazard_pointer_node_free (GeeHazardPointerNode * self); + G_GNUC_INTERNAL void gee_hazard_pointer_node_free (GeeHazardPointerNode * self); G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHazardPointerNode, gee_hazard_pointer_node_free) -GType gee_hazard_pointer_policy_get_type (void) G_GNUC_CONST; +GType gee_hazard_pointer_policy_get_type (void) G_GNUC_CONST ; gboolean gee_hazard_pointer_policy_is_concrete (GeeHazardPointerPolicy self); gboolean gee_hazard_pointer_policy_is_blocking (GeeHazardPointerPolicy self); gboolean gee_hazard_pointer_policy_is_safe (GeeHazardPointerPolicy self); GeeHazardPointerPolicy gee_hazard_pointer_policy_to_concrete (GeeHazardPointerPolicy self); -GType gee_hazard_pointer_release_policy_get_type (void) G_GNUC_CONST; +GType gee_hazard_pointer_release_policy_get_type (void) G_GNUC_CONST ; GeeHazardPointer* gee_hazard_pointer_new (gconstpointer* ptr); GeeHazardPointer* gee_hazard_pointer_get_hazard_pointer (GType g_type, GBoxedCopyFunc g_dup_func, @@ -2082,7 +2082,7 @@ gboolean gee_hazard_pointer_set_release_policy (GeeHazardPointerReleasePolicy policy); void gee_hazard_pointer_context_free (GeeHazardPointerContext * self); G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHazardPointerContext, gee_hazard_pointer_context_free) -G_GNUC_INTERNAL void gee_hazard_pointer_free_node_free (GeeHazardPointerFreeNode * self); + G_GNUC_INTERNAL void gee_hazard_pointer_free_node_free (GeeHazardPointerFreeNode * self); G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHazardPointerFreeNode, gee_hazard_pointer_free_node_free) GeeHazardPointerContext* gee_hazard_pointer_context_new (GeeHazardPointerPolicy* policy); void gee_hazard_pointer_context_try_free (GeeHazardPointerContext* self); @@ -2133,7 +2133,7 @@ gpointer gee_lazy_get (GeeLazy* self); gconstpointer gee_lazy_get_value (GeeLazy* self); GeeFuture* gee_lazy_get_future (GeeLazy* self); -GType gee_linked_list_get_type (void) G_GNUC_CONST; +GType gee_linked_list_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLinkedList, g_object_unref) GeeLinkedList* gee_linked_list_new (GType g_type, GBoxedCopyFunc g_dup_func, @@ -2189,7 +2189,7 @@ gboolean gee_map_has_key (GeeMap* self, gconstpointer key); gboolean gee_map_contains (GeeMap* self, - gconstpointer key) G_GNUC_DEPRECATED; + gconstpointer key) G_GNUC_DEPRECATED ; gboolean gee_map_has (GeeMap* self, gconstpointer key, gconstpointer value); @@ -2203,7 +2203,7 @@ gpointer* value); gboolean gee_map_remove (GeeMap* self, gconstpointer key, - gpointer* value) G_GNUC_DEPRECATED; + gpointer* value) G_GNUC_DEPRECATED ; void gee_map_clear (GeeMap* self); GeeMapIterator* gee_map_map_iterator (GeeMap* self); void gee_map_set_all (GeeMap* self, @@ -2211,11 +2211,11 @@ gboolean gee_map_unset_all (GeeMap* self, GeeMap* map); gboolean gee_map_remove_all (GeeMap* self, - GeeMap* map) G_GNUC_DEPRECATED; + GeeMap* map) G_GNUC_DEPRECATED ; gboolean gee_map_has_all (GeeMap* self, GeeMap* map); gboolean gee_map_contains_all (GeeMap* self, - GeeMap* map) G_GNUC_DEPRECATED; + GeeMap* map) G_GNUC_DEPRECATED ; GeeMap* gee_map_empty (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -2291,7 +2291,7 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); GeeMultiSet* gee_multi_set_get_read_only_view (GeeMultiSet* self); -GType gee_priority_queue_get_type (void) G_GNUC_CONST; +GType gee_priority_queue_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeePriorityQueue, g_object_unref) GeePriorityQueue* gee_priority_queue_new (GType g_type, GBoxedCopyFunc g_dup_func, @@ -2325,7 +2325,7 @@ void gee_value_take_promise (GValue* value, gpointer v_object); gpointer gee_value_get_promise (const GValue* value); -GType gee_promise_get_type (void) G_GNUC_CONST; +GType gee_promise_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeePromise, gee_promise_unref) GeePromise* gee_promise_new (GType g_type, GBoxedCopyFunc g_dup_func, @@ -2339,6 +2339,7 @@ void gee_promise_set_exception (GeePromise* self, GError* exception); GeeFuture* gee_promise_get_future (GeePromise* self); +#define GEE_QUEUE_UNBOUNDED_CAPACITY -1 gboolean gee_queue_offer (GeeQueue* self, gconstpointer element); gpointer gee_queue_peek (GeeQueue* self); @@ -2346,7 +2347,6 @@ gint gee_queue_drain (GeeQueue* self, GeeCollection* recipient, gint amount); -#define GEE_QUEUE_UNBOUNDED_CAPACITY -1 gint gee_queue_get_capacity (GeeQueue* self); gint gee_queue_get_remaining_capacity (GeeQueue* self); gboolean gee_queue_get_is_full (GeeQueue* self); @@ -2475,7 +2475,7 @@ gpointer compare_target, GDestroyNotify compare_target_destroy_notify); GType gee_traversable_get_element_type (GeeTraversable* self); -GType gee_tree_map_get_type (void) G_GNUC_CONST; +GType gee_tree_map_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMap, g_object_unref) GeeTreeMap* gee_tree_map_new (GType k_type, GBoxedCopyFunc k_dup_func, @@ -2506,7 +2506,7 @@ gpointer* result_target); GeeEqualDataFunc gee_tree_map_get_value_equal_func (GeeTreeMap* self, gpointer* result_target); -GType gee_tree_multi_map_get_type (void) G_GNUC_CONST; +GType gee_tree_multi_map_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMultiMap, g_object_unref) GeeTreeMultiMap* gee_tree_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, @@ -2537,7 +2537,7 @@ gpointer* result_target); GCompareDataFunc gee_tree_multi_map_get_value_compare_func (GeeTreeMultiMap* self, gpointer* result_target); -GType gee_tree_multi_set_get_type (void) G_GNUC_CONST; +GType gee_tree_multi_set_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMultiSet, g_object_unref) GeeTreeMultiSet* gee_tree_multi_set_new (GType g_type, GBoxedCopyFunc g_dup_func, @@ -2554,7 +2554,7 @@ GDestroyNotify compare_func_target_destroy_notify); GCompareDataFunc gee_tree_multi_set_get_compare_func (GeeTreeMultiSet* self, gpointer* result_target); -GType gee_tree_set_get_type (void) G_GNUC_CONST; +GType gee_tree_set_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeSet, g_object_unref) GeeTreeSet* gee_tree_set_new (GType g_type, GBoxedCopyFunc g_dup_func, @@ -2571,7 +2571,7 @@ GDestroyNotify compare_func_target_destroy_notify); GCompareDataFunc gee_tree_set_get_compare_func (GeeTreeSet* self, gpointer* result_target); -GType gee_unrolled_linked_list_get_type (void) G_GNUC_CONST; +GType gee_unrolled_linked_list_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeUnrolledLinkedList, g_object_unref) GeeUnrolledLinkedList* gee_unrolled_linked_list_new (GType g_type, GBoxedCopyFunc g_dup_func, diff -Nru libgee-0.8-0.20.3/gee/hashable.c libgee-0.8-0.20.4/gee/hashable.c --- libgee-0.8-0.20.3/gee/hashable.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/hashable.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* hashable.c generated by valac 0.46.6, the Vala compiler +/* hashable.c generated by valac 0.52.0, the Vala compiler * generated from hashable.vala, do not modify */ /* hashable.vala @@ -23,27 +23,11 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_HASHABLE (gee_hashable_get_type ()) -#define GEE_HASHABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASHABLE, GeeHashable)) -#define GEE_IS_HASHABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASHABLE)) -#define GEE_HASHABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_HASHABLE, GeeHashableIface)) - -typedef struct _GeeHashable GeeHashable; -typedef struct _GeeHashableIface GeeHashableIface; - -struct _GeeHashableIface { - GTypeInterface parent_iface; - guint (*hash) (GeeHashable* self); - gboolean (*equal_to) (GeeHashable* self, gconstpointer object); -}; - -GType gee_hashable_get_type (void) G_GNUC_CONST; -guint gee_hashable_hash (GeeHashable* self); -gboolean gee_hashable_equal_to (GeeHashable* self, - gconstpointer object); +static GType gee_hashable_get_type_once (void); /** * Computes hash for an objects. Two hashes of equal objects have to be @@ -56,12 +40,17 @@ guint gee_hashable_hash (GeeHashable* self) { + GeeHashableIface* _iface_; g_return_val_if_fail (self != NULL, 0U); - return GEE_HASHABLE_GET_INTERFACE (self)->hash (self); + _iface_ = GEE_HASHABLE_GET_INTERFACE (self); + if (_iface_->hash) { + return _iface_->hash (self); + } + return 0U; } /** - * Compares this object with the specifed object. This defines the + * Compares this object with the specified object. This defines the * equivalence relation between them. * * In other words: @@ -82,8 +71,13 @@ gee_hashable_equal_to (GeeHashable* self, gconstpointer object) { + GeeHashableIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_HASHABLE_GET_INTERFACE (self)->equal_to (self, object); + _iface_ = GEE_HASHABLE_GET_INTERFACE (self); + if (_iface_->equal_to) { + return _iface_->equal_to (self, object); + } + return FALSE; } static void @@ -93,20 +87,28 @@ } /** - * This interface defines a hash function amongs instances of each class + * This interface defines a hash function among instances of each class * implementing it. * * @see Comparable */ +static GType +gee_hashable_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hashable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_hashable_type_id; + gee_hashable_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeHashable", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_hashable_type_id, G_TYPE_OBJECT); + return gee_hashable_type_id; +} + GType gee_hashable_get_type (void) { static volatile gsize gee_hashable_type_id__volatile = 0; if (g_once_init_enter (&gee_hashable_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hashable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_hashable_type_id; - gee_hashable_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeHashable", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_hashable_type_id, G_TYPE_OBJECT); + gee_hashable_type_id = gee_hashable_get_type_once (); g_once_init_leave (&gee_hashable_type_id__volatile, gee_hashable_type_id); } return gee_hashable_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/hashable.vala libgee-0.8-0.20.4/gee/hashable.vala --- libgee-0.8-0.20.3/gee/hashable.vala 2014-09-13 12:51:51.000000000 +0000 +++ libgee-0.8-0.20.4/gee/hashable.vala 2021-03-17 11:24:00.000000000 +0000 @@ -21,7 +21,7 @@ */ /** - * This interface defines a hash function amongs instances of each class + * This interface defines a hash function among instances of each class * implementing it. * * @see Comparable @@ -38,7 +38,7 @@ public abstract uint hash (); /** - * Compares this object with the specifed object. This defines the + * Compares this object with the specified object. This defines the * equivalence relation between them. * * In other words: diff -Nru libgee-0.8-0.20.3/gee/hashmap.c libgee-0.8-0.20.4/gee/hashmap.c --- libgee-0.8-0.20.3/gee/hashmap.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/hashmap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* hashmap.c generated by valac 0.46.6, the Vala compiler +/* hashmap.c generated by valac 0.52.0, the Vala compiler * generated from hashmap.vala, do not modify */ /* hashmap.vala @@ -26,122 +26,10 @@ * Jürg Billeter */ -#include +#include "gee.h" #include +#include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - -#define GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type ()) -#define GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)) -#define GEE_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) -#define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) - -typedef struct _GeeAbstractMap GeeAbstractMap; -typedef struct _GeeAbstractMapClass GeeAbstractMapClass; -typedef struct _GeeAbstractMapPrivate GeeAbstractMapPrivate; - -#define GEE_TYPE_HASH_MAP (gee_hash_map_get_type ()) -#define GEE_HASH_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_MAP, GeeHashMap)) -#define GEE_HASH_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_MAP, GeeHashMapClass)) -#define GEE_IS_HASH_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_MAP)) -#define GEE_IS_HASH_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_MAP)) -#define GEE_HASH_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_MAP, GeeHashMapClass)) - -typedef struct _GeeHashMap GeeHashMap; -typedef struct _GeeHashMapClass GeeHashMapClass; -typedef struct _GeeHashMapPrivate GeeHashMapPrivate; typedef struct _GeeHashMapNode GeeHashMapNode; #define GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE (gee_functions_hash_data_func_closure_get_type ()) @@ -181,8 +69,6 @@ static GParamSpec* gee_hash_map_properties[GEE_HASH_MAP_NUM_PROPERTIES]; #define _gee_functions_hash_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_hash_data_func_closure_unref (var), NULL))) #define _gee_functions_equal_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_equal_data_func_closure_unref (var), NULL))) -typedef guint (*GeeHashDataFunc) (gconstpointer v, gpointer user_data); -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); #define _gee_hash_map_node_free0(var) ((var == NULL) ? NULL : (var = (gee_hash_map_node_free (var), NULL))) #define GEE_HASH_MAP_TYPE_NODE_ITERATOR (gee_hash_map_node_iterator_get_type ()) @@ -205,26 +91,6 @@ typedef struct _GeeHashMapMapIterator GeeHashMapMapIterator; typedef struct _GeeHashMapMapIteratorClass GeeHashMapMapIteratorClass; -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; - #define GEE_HASH_MAP_TYPE_KEY_SET (gee_hash_map_key_set_get_type ()) #define GEE_HASH_MAP_KEY_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_HASH_MAP_TYPE_KEY_SET, GeeHashMapKeySet)) #define GEE_HASH_MAP_KEY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_HASH_MAP_TYPE_KEY_SET, GeeHashMapKeySetClass)) @@ -257,7 +123,6 @@ typedef struct _GeeHashMapEntrySetClass GeeHashMapEntrySetClass; typedef struct _GeeFunctionsHashDataFuncClosurePrivate GeeFunctionsHashDataFuncClosurePrivate; typedef struct _GeeFunctionsEqualDataFuncClosurePrivate GeeFunctionsEqualDataFuncClosurePrivate; -typedef struct _GeeMapEntryPrivate GeeMapEntryPrivate; #define GEE_HASH_MAP_TYPE_ENTRY (gee_hash_map_entry_get_type ()) #define GEE_HASH_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_HASH_MAP_TYPE_ENTRY, GeeHashMapEntry)) @@ -283,8 +148,6 @@ GEE_HASH_MAP_ENTRY_NUM_PROPERTIES }; static GParamSpec* gee_hash_map_entry_properties[GEE_HASH_MAP_ENTRY_NUM_PROPERTIES]; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; -typedef struct _GeeAbstractSetPrivate GeeAbstractSetPrivate; typedef struct _GeeHashMapKeySetPrivate GeeHashMapKeySetPrivate; enum { GEE_HASH_MAP_KEY_SET_0_PROPERTY, @@ -426,172 +289,6 @@ #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeAbstractMap { - GObject parent_instance; - GeeAbstractMapPrivate * priv; -}; - -struct _GeeAbstractMapClass { - GObjectClass parent_class; - gboolean (*has_key) (GeeAbstractMap* self, gconstpointer key); - gboolean (*has) (GeeAbstractMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeAbstractMap* self, gconstpointer key); - void (*set) (GeeAbstractMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeAbstractMap* self, gconstpointer key, gpointer* value); - GeeMapIterator* (*map_iterator) (GeeAbstractMap* self); - void (*clear) (GeeAbstractMap* self); - gboolean (*foreach) (GeeAbstractMap* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeAbstractMap* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - void (*reserved0) (GeeAbstractMap* self); - void (*reserved1) (GeeAbstractMap* self); - void (*reserved2) (GeeAbstractMap* self); - void (*reserved3) (GeeAbstractMap* self); - void (*reserved4) (GeeAbstractMap* self); - void (*reserved5) (GeeAbstractMap* self); - void (*reserved6) (GeeAbstractMap* self); - void (*reserved7) (GeeAbstractMap* self); - void (*reserved8) (GeeAbstractMap* self); - void (*reserved9) (GeeAbstractMap* self); - gint (*get_size) (GeeAbstractMap* self); - gboolean (*get_read_only) (GeeAbstractMap* self); - GeeSet* (*get_keys) (GeeAbstractMap* self); - GeeCollection* (*get_values) (GeeAbstractMap* self); - GeeSet* (*get_entries) (GeeAbstractMap* self); - GeeMap* (*get_read_only_view) (GeeAbstractMap* self); -}; - -struct _GeeHashMap { - GeeAbstractMap parent_instance; - GeeHashMapPrivate * priv; -}; - -struct _GeeHashMapClass { - GeeAbstractMapClass parent_class; -}; - struct _GeeHashMapPrivate { GType k_type; GBoxedCopyFunc k_dup_func; @@ -649,19 +346,6 @@ void (*finalize) (GeeFunctionsEqualDataFuncClosure *self); }; -struct _GeeMapEntry { - GObject parent_instance; - GeeMapEntryPrivate * priv; -}; - -struct _GeeMapEntryClass { - GObjectClass parent_class; - gconstpointer (*get_key) (GeeMapEntry* self); - gconstpointer (*get_value) (GeeMapEntry* self); - void (*set_value) (GeeMapEntry* self, gconstpointer value); - gboolean (*get_read_only) (GeeMapEntry* self); -}; - struct _GeeHashMapEntry { GeeMapEntry parent_instance; GeeHashMapEntryPrivate * priv; @@ -681,54 +365,6 @@ GeeHashMapNode* _node; }; -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeAbstractSet { - GeeAbstractCollection parent_instance; - GeeAbstractSetPrivate * priv; -}; - -struct _GeeAbstractSetClass { - GeeAbstractCollectionClass parent_class; - void (*reserved0) (GeeAbstractSet* self); - void (*reserved1) (GeeAbstractSet* self); - void (*reserved2) (GeeAbstractSet* self); - void (*reserved3) (GeeAbstractSet* self); - void (*reserved4) (GeeAbstractSet* self); - void (*reserved5) (GeeAbstractSet* self); - void (*reserved6) (GeeAbstractSet* self); - void (*reserved7) (GeeAbstractSet* self); - void (*reserved8) (GeeAbstractSet* self); - void (*reserved9) (GeeAbstractSet* self); - GeeSet* (*get_read_only_view) (GeeAbstractSet* self); -}; - struct _GeeHashMapKeySet { GeeAbstractSet parent_instance; GeeHashMapKeySetPrivate * priv; @@ -910,138 +546,62 @@ static GeeTraversableIface * gee_hash_map_entry_iterator_gee_traversable_parent_iface = NULL; static GeeIteratorIface * gee_hash_map_entry_iterator_gee_iterator_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMap, g_object_unref) -GType gee_hash_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMap, g_object_unref) static void gee_hash_map_node_free (GeeHashMapNode * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMapNode, gee_hash_map_node_free) -G_GNUC_INTERNAL gpointer gee_functions_hash_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_hash_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_hash_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_hash_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_hash_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_hash_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_hash_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_hash_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_hash_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_hash_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_hash_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_hash_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsHashDataFuncClosure, gee_functions_hash_data_func_closure_unref) -G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_value_get_hash_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_hash_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsEqualDataFuncClosure, gee_functions_equal_data_func_closure_unref) -void gee_abstract_map_clear (GeeAbstractMap* self); + G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; #define GEE_HASH_MAP_MIN_SIZE 11 #define GEE_HASH_MAP_MAX_SIZE 13845163 -GeeHashMap* gee_hash_map_new (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GeeHashDataFunc key_hash_func, - gpointer key_hash_func_target, - GDestroyNotify key_hash_func_target_destroy_notify, - GeeEqualDataFunc key_equal_func, - gpointer key_equal_func_target, - GDestroyNotify key_equal_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GeeHashMap* gee_hash_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GeeHashDataFunc key_hash_func, - gpointer key_hash_func_target, - GDestroyNotify key_hash_func_target_destroy_notify, - GeeEqualDataFunc key_equal_func, - gpointer key_equal_func_target, - GDestroyNotify key_equal_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GeeAbstractMap* gee_abstract_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func); -GeeHashDataFunc gee_functions_get_hash_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeHashMap* gee_hash_map_new_with_closures (GType k_type, + G_GNUC_INTERNAL GeeHashMap* gee_hash_map_new_with_closures (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, @@ -1050,7 +610,7 @@ GeeFunctionsHashDataFuncClosure* key_hash_func, GeeFunctionsEqualDataFuncClosure* key_equal_func, GeeFunctionsEqualDataFuncClosure* value_equal_func); -G_GNUC_INTERNAL GeeHashMap* gee_hash_map_construct_with_closures (GType object_type, + G_GNUC_INTERNAL GeeHashMap* gee_hash_map_construct_with_closures (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -1062,17 +622,11 @@ GeeFunctionsEqualDataFuncClosure* value_equal_func); static GeeHashMapNode** gee_hash_map_lookup_node (GeeHashMap* self, gconstpointer key); -GeeHashDataFunc gee_hash_map_get_key_hash_func (GeeHashMap* self, - gpointer* result_target); -GeeEqualDataFunc gee_hash_map_get_key_equal_func (GeeHashMap* self, - gpointer* result_target); static gboolean gee_hash_map_real_has_key (GeeAbstractMap* base, gconstpointer key); static gboolean gee_hash_map_real_has (GeeAbstractMap* base, gconstpointer key, gconstpointer value); -GeeEqualDataFunc gee_hash_map_get_value_equal_func (GeeHashMap* self, - gpointer* result_target); static gpointer gee_hash_map_real_get (GeeAbstractMap* base, gconstpointer key); static void gee_hash_map_real_set (GeeAbstractMap* base, @@ -1105,12 +659,10 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashMap* map); -static GType gee_hash_map_node_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMapNodeIterator, g_object_unref) -static GType gee_hash_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMapMapIterator, g_object_unref) -G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_hash_map_get_key_hash_func_closure (GeeHashMap* self); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_hash_map_get_key_equal_func_closure (GeeHashMap* self); +static GType gee_hash_map_node_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +static GType gee_hash_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_hash_map_get_key_hash_func_closure (GeeHashMap* self); + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_hash_map_get_key_equal_func_closure (GeeHashMap* self); static GeeHashMapKeySet* gee_hash_map_key_set_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -1126,12 +678,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashMap* map); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -static GType gee_hash_map_key_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMapKeySet, g_object_unref) +static GType gee_hash_map_key_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeHashMapValueCollection* gee_hash_map_value_collection_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -1147,8 +694,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashMap* map); -static GType gee_hash_map_value_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMapValueCollection, g_object_unref) +static GType gee_hash_map_value_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeHashMapEntrySet* gee_hash_map_entry_set_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -1164,8 +710,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashMap* map); -static GType gee_hash_map_entry_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMapEntrySet, g_object_unref) +static GType gee_hash_map_entry_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static void gee_hash_map_set_key_hash_func (GeeHashMap* self, GeeHashDataFunc value, gpointer value_target); @@ -1176,8 +721,7 @@ GeeEqualDataFunc value, gpointer value_target); static void gee_hash_map_node_instance_init (GeeHashMapNode * self); -static GType gee_hash_map_entry_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMapEntry, g_object_unref) +static GType gee_hash_map_entry_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeMapEntry* gee_hash_map_entry_entry_for (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -1200,31 +744,16 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashMapNode* node); -GeeMapEntry* gee_map_entry_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func); static void gee_hash_map_entry_finalize (GObject * obj); -gconstpointer gee_map_entry_get_key (GeeMapEntry* self); -gconstpointer gee_map_entry_get_value (GeeMapEntry* self); -gboolean gee_map_entry_get_read_only (GeeMapEntry* self); +static GType gee_hash_map_entry_get_type_once (void); static void _vala_gee_hash_map_entry_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); -void gee_map_entry_set_value (GeeMapEntry* self, - gconstpointer value); static void _vala_gee_hash_map_entry_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec); -GeeAbstractSet* gee_abstract_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); static GeeIterator* gee_hash_map_key_set_real_iterator (GeeAbstractCollection* base); static GeeHashMapKeyIterator* gee_hash_map_key_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, @@ -1241,8 +770,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashMap* map); -static GType gee_hash_map_key_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMapKeyIterator, g_object_unref) +static GType gee_hash_map_key_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_hash_map_key_set_real_add (GeeAbstractCollection* base, gconstpointer key); static void gee_hash_map_key_set_real_clear (GeeAbstractCollection* base); @@ -1250,12 +778,8 @@ gconstpointer key); static gboolean gee_hash_map_key_set_real_contains (GeeAbstractCollection* base, gconstpointer key); -gboolean gee_abstract_map_has_key (GeeAbstractMap* self, - gconstpointer key); -gint gee_abstract_map_get_size (GeeAbstractMap* self); static void gee_hash_map_key_set_finalize (GObject * obj); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); +static GType gee_hash_map_key_set_get_type_once (void); static void _vala_gee_hash_map_key_set_get_property (GObject * object, guint property_id, GValue * value, @@ -1264,10 +788,6 @@ guint property_id, const GValue * value, GParamSpec * pspec); -GeeAbstractCollection* gee_abstract_collection_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); static GeeIterator* gee_hash_map_value_collection_real_iterator (GeeAbstractCollection* base); static GeeHashMapValueIterator* gee_hash_map_value_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, @@ -1284,8 +804,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashMap* map); -static GType gee_hash_map_value_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMapValueIterator, g_object_unref) +static GType gee_hash_map_value_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_hash_map_value_collection_real_add (GeeAbstractCollection* base, gconstpointer value); static void gee_hash_map_value_collection_real_clear (GeeAbstractCollection* base); @@ -1293,10 +812,8 @@ gconstpointer value); static gboolean gee_hash_map_value_collection_real_contains (GeeAbstractCollection* base, gconstpointer value); -GeeIterator* gee_abstract_collection_iterator (GeeAbstractCollection* self); -gboolean gee_iterator_next (GeeIterator* self); -gpointer gee_iterator_get (GeeIterator* self); static void gee_hash_map_value_collection_finalize (GObject * obj); +static GType gee_hash_map_value_collection_get_type_once (void); static void _vala_gee_hash_map_value_collection_get_property (GObject * object, guint property_id, GValue * value, @@ -1321,8 +838,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashMap* map); -static GType gee_hash_map_entry_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMapEntryIterator, g_object_unref) +static GType gee_hash_map_entry_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_hash_map_entry_set_real_add (GeeAbstractCollection* base, GeeMapEntry* entry); static void gee_hash_map_entry_set_real_clear (GeeAbstractCollection* base); @@ -1330,10 +846,8 @@ GeeMapEntry* entry); static gboolean gee_hash_map_entry_set_real_contains (GeeAbstractCollection* base, GeeMapEntry* entry); -gboolean gee_abstract_map_has (GeeAbstractMap* self, - gconstpointer key, - gconstpointer value); static void gee_hash_map_entry_set_finalize (GObject * obj); +static GType gee_hash_map_entry_set_get_type_once (void); static void _vala_gee_hash_map_entry_set_get_property (GObject * object, guint property_id, GValue * value, @@ -1342,6 +856,7 @@ guint property_id, const GValue * value, GParamSpec * pspec); +static gboolean gee_hash_map_node_iterator_get_read_only (GeeHashMapNodeIterator* self); static GeeHashMapNodeIterator* gee_hash_map_node_iterator_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, @@ -1360,9 +875,9 @@ GeeHashMapNodeIterator* iter); static gboolean gee_hash_map_node_iterator_next (GeeHashMapNodeIterator* self); static gboolean gee_hash_map_node_iterator_has_next (GeeHashMapNodeIterator* self); -static gboolean gee_hash_map_node_iterator_get_read_only (GeeHashMapNodeIterator* self); static gboolean gee_hash_map_node_iterator_get_valid (GeeHashMapNodeIterator* self); static void gee_hash_map_node_iterator_finalize (GObject * obj); +static GType gee_hash_map_node_iterator_get_type_once (void); static void _vala_gee_hash_map_node_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -1394,6 +909,7 @@ static GeeIterator** gee_hash_map_key_iterator_real_tee (GeeTraversable* base, guint forks, gint* result_length1); +static GType gee_hash_map_key_iterator_get_type_once (void); static void _vala_gee_hash_map_key_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -1404,14 +920,10 @@ GParamSpec * pspec); static gpointer gee_hash_map_map_iterator_real_get_key (GeeMapIterator* base); static void gee_hash_map_map_iterator_real_unset (GeeMapIterator* base); -gboolean gee_map_iterator_has_next (GeeMapIterator* self); static gpointer gee_hash_map_map_iterator_real_get_value (GeeMapIterator* base); static void gee_hash_map_map_iterator_real_set_value (GeeMapIterator* base, gconstpointer value); -void gee_abstract_map_set (GeeAbstractMap* self, - gconstpointer key, - gconstpointer value); -gboolean gee_map_iterator_get_mutable (GeeMapIterator* self); +static GType gee_hash_map_map_iterator_get_type_once (void); static void _vala_gee_hash_map_map_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -1443,6 +955,7 @@ static GeeIterator** gee_hash_map_value_iterator_real_tee (GeeTraversable* base, guint forks, gint* result_length1); +static GType gee_hash_map_value_iterator_get_type_once (void); static void _vala_gee_hash_map_value_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -1474,6 +987,7 @@ static GeeIterator** gee_hash_map_entry_iterator_real_tee (GeeTraversable* base, guint forks, gint* result_length1); +static GType gee_hash_map_entry_iterator_get_type_once (void); static void _vala_gee_hash_map_entry_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -1483,10 +997,7 @@ const GValue * value, GParamSpec * pspec); static void gee_hash_map_finalize (GObject * obj); -gboolean gee_abstract_map_get_read_only (GeeAbstractMap* self); -GeeSet* gee_abstract_map_get_keys (GeeAbstractMap* self); -GeeCollection* gee_abstract_map_get_values (GeeAbstractMap* self); -GeeSet* gee_abstract_map_get_entries (GeeAbstractMap* self); +static GType gee_hash_map_get_type_once (void); static void _vala_gee_hash_map_get_property (GObject * object, guint property_id, GValue * value, @@ -1558,7 +1069,7 @@ self->priv->v_dup_func = v_dup_func; self->priv->v_destroy_func = v_destroy_func; if (key_hash_func == NULL) { - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GeeHashDataFunc _tmp2_; _tmp2_ = gee_functions_get_hash_func_for (k_type, &_tmp0_, &_tmp1_); @@ -1571,7 +1082,7 @@ key_hash_func_target_destroy_notify = _tmp1_; } if (key_equal_func == NULL) { - void* _tmp3_ = NULL; + gpointer _tmp3_ = NULL; GDestroyNotify _tmp4_ = NULL; GeeEqualDataFunc _tmp5_; _tmp5_ = gee_functions_get_equal_func_for (k_type, &_tmp3_, &_tmp4_); @@ -1584,7 +1095,7 @@ key_equal_func_target_destroy_notify = _tmp4_; } if (value_equal_func == NULL) { - void* _tmp6_ = NULL; + gpointer _tmp6_ = NULL; GDestroyNotify _tmp7_ = NULL; GeeEqualDataFunc _tmp8_; _tmp8_ = gee_functions_get_equal_func_for (v_type, &_tmp6_, &_tmp7_); @@ -1676,7 +1187,7 @@ return self ? gee_functions_equal_data_func_closure_ref (self) : NULL; } -G_GNUC_INTERNAL GeeHashMap* + G_GNUC_INTERNAL GeeHashMap* gee_hash_map_construct_with_closures (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, @@ -1724,7 +1235,7 @@ return self; } -G_GNUC_INTERNAL GeeHashMap* + G_GNUC_INTERNAL GeeHashMap* gee_hash_map_new_with_closures (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -2054,7 +1565,7 @@ return result; } -G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* + G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_hash_map_get_key_hash_func_closure (GeeHashMap* self) { GeeFunctionsHashDataFuncClosure* _tmp0_; @@ -2067,7 +1578,7 @@ return result; } -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_hash_map_get_key_equal_func_closure (GeeHashMap* self) { GeeFunctionsEqualDataFuncClosure* _tmp0_; @@ -2697,14 +2208,22 @@ } static GType +gee_hash_map_entry_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapEntry), 0, (GInstanceInitFunc) gee_hash_map_entry_instance_init, NULL }; + GType gee_hash_map_entry_type_id; + gee_hash_map_entry_type_id = g_type_register_static (GEE_MAP_TYPE_ENTRY, "GeeHashMapEntry", &g_define_type_info, 0); + GeeHashMapEntry_private_offset = g_type_add_instance_private (gee_hash_map_entry_type_id, sizeof (GeeHashMapEntryPrivate)); + return gee_hash_map_entry_type_id; +} + +static GType gee_hash_map_entry_get_type (void) { static volatile gsize gee_hash_map_entry_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_map_entry_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapEntry), 0, (GInstanceInitFunc) gee_hash_map_entry_instance_init, NULL }; GType gee_hash_map_entry_type_id; - gee_hash_map_entry_type_id = g_type_register_static (GEE_MAP_TYPE_ENTRY, "GeeHashMapEntry", &g_define_type_info, 0); - GeeHashMapEntry_private_offset = g_type_add_instance_private (gee_hash_map_entry_type_id, sizeof (GeeHashMapEntryPrivate)); + gee_hash_map_entry_type_id = gee_hash_map_entry_get_type_once (); g_once_init_leave (&gee_hash_map_entry_type_id__volatile, gee_hash_map_entry_type_id); } return gee_hash_map_entry_type_id__volatile; @@ -2954,14 +2473,22 @@ } static GType +gee_hash_map_key_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapKeySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_key_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapKeySet), 0, (GInstanceInitFunc) gee_hash_map_key_set_instance_init, NULL }; + GType gee_hash_map_key_set_type_id; + gee_hash_map_key_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SET, "GeeHashMapKeySet", &g_define_type_info, 0); + GeeHashMapKeySet_private_offset = g_type_add_instance_private (gee_hash_map_key_set_type_id, sizeof (GeeHashMapKeySetPrivate)); + return gee_hash_map_key_set_type_id; +} + +static GType gee_hash_map_key_set_get_type (void) { static volatile gsize gee_hash_map_key_set_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_map_key_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapKeySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_key_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapKeySet), 0, (GInstanceInitFunc) gee_hash_map_key_set_instance_init, NULL }; GType gee_hash_map_key_set_type_id; - gee_hash_map_key_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SET, "GeeHashMapKeySet", &g_define_type_info, 0); - GeeHashMapKeySet_private_offset = g_type_add_instance_private (gee_hash_map_key_set_type_id, sizeof (GeeHashMapKeySetPrivate)); + gee_hash_map_key_set_type_id = gee_hash_map_key_set_get_type_once (); g_once_init_leave (&gee_hash_map_key_set_type_id__volatile, gee_hash_map_key_set_type_id); } return gee_hash_map_key_set_type_id__volatile; @@ -3238,14 +2765,22 @@ } static GType +gee_hash_map_value_collection_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapValueCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_value_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapValueCollection), 0, (GInstanceInitFunc) gee_hash_map_value_collection_instance_init, NULL }; + GType gee_hash_map_value_collection_type_id; + gee_hash_map_value_collection_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeHashMapValueCollection", &g_define_type_info, 0); + GeeHashMapValueCollection_private_offset = g_type_add_instance_private (gee_hash_map_value_collection_type_id, sizeof (GeeHashMapValueCollectionPrivate)); + return gee_hash_map_value_collection_type_id; +} + +static GType gee_hash_map_value_collection_get_type (void) { static volatile gsize gee_hash_map_value_collection_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_map_value_collection_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapValueCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_value_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapValueCollection), 0, (GInstanceInitFunc) gee_hash_map_value_collection_instance_init, NULL }; GType gee_hash_map_value_collection_type_id; - gee_hash_map_value_collection_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeHashMapValueCollection", &g_define_type_info, 0); - GeeHashMapValueCollection_private_offset = g_type_add_instance_private (gee_hash_map_value_collection_type_id, sizeof (GeeHashMapValueCollectionPrivate)); + gee_hash_map_value_collection_type_id = gee_hash_map_value_collection_get_type_once (); g_once_init_leave (&gee_hash_map_value_collection_type_id__volatile, gee_hash_map_value_collection_type_id); } return gee_hash_map_value_collection_type_id__volatile; @@ -3500,14 +3035,22 @@ } static GType +gee_hash_map_entry_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapEntrySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_entry_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapEntrySet), 0, (GInstanceInitFunc) gee_hash_map_entry_set_instance_init, NULL }; + GType gee_hash_map_entry_set_type_id; + gee_hash_map_entry_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SET, "GeeHashMapEntrySet", &g_define_type_info, 0); + GeeHashMapEntrySet_private_offset = g_type_add_instance_private (gee_hash_map_entry_set_type_id, sizeof (GeeHashMapEntrySetPrivate)); + return gee_hash_map_entry_set_type_id; +} + +static GType gee_hash_map_entry_set_get_type (void) { static volatile gsize gee_hash_map_entry_set_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_map_entry_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapEntrySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_entry_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapEntrySet), 0, (GInstanceInitFunc) gee_hash_map_entry_set_instance_init, NULL }; GType gee_hash_map_entry_set_type_id; - gee_hash_map_entry_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SET, "GeeHashMapEntrySet", &g_define_type_info, 0); - GeeHashMapEntrySet_private_offset = g_type_add_instance_private (gee_hash_map_entry_set_type_id, sizeof (GeeHashMapEntrySetPrivate)); + gee_hash_map_entry_set_type_id = gee_hash_map_entry_set_get_type_once (); g_once_init_leave (&gee_hash_map_entry_set_type_id__volatile, gee_hash_map_entry_set_type_id); } return gee_hash_map_entry_set_type_id__volatile; @@ -3738,8 +3281,13 @@ static gboolean gee_hash_map_node_iterator_get_read_only (GeeHashMapNodeIterator* self) { + GeeHashMapNodeIteratorClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_HASH_MAP_NODE_ITERATOR_GET_CLASS (self)->get_read_only (self); + _klass_ = GEE_HASH_MAP_NODE_ITERATOR_GET_CLASS (self); + if (_klass_->get_read_only) { + return _klass_->get_read_only (self); + } + return FALSE; } static gboolean @@ -3801,14 +3349,22 @@ } static GType +gee_hash_map_node_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapNodeIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_node_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapNodeIterator), 0, (GInstanceInitFunc) gee_hash_map_node_iterator_instance_init, NULL }; + GType gee_hash_map_node_iterator_type_id; + gee_hash_map_node_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeHashMapNodeIterator", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + GeeHashMapNodeIterator_private_offset = g_type_add_instance_private (gee_hash_map_node_iterator_type_id, sizeof (GeeHashMapNodeIteratorPrivate)); + return gee_hash_map_node_iterator_type_id; +} + +static GType gee_hash_map_node_iterator_get_type (void) { static volatile gsize gee_hash_map_node_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_map_node_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapNodeIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_node_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapNodeIterator), 0, (GInstanceInitFunc) gee_hash_map_node_iterator_instance_init, NULL }; GType gee_hash_map_node_iterator_type_id; - gee_hash_map_node_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeHashMapNodeIterator", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - GeeHashMapNodeIterator_private_offset = g_type_add_instance_private (gee_hash_map_node_iterator_type_id, sizeof (GeeHashMapNodeIteratorPrivate)); + gee_hash_map_node_iterator_type_id = gee_hash_map_node_iterator_get_type_once (); g_once_init_leave (&gee_hash_map_node_iterator_type_id__volatile, gee_hash_map_node_iterator_type_id); } return gee_hash_map_node_iterator_type_id__volatile; @@ -4053,13 +3609,15 @@ GeeHashMap* _tmp15_; GeeHashMapNode** _tmp16_; gint _tmp16__length1; - GeeHashMapNode* _tmp17_; + gint _tmp17_; + GeeHashMapNode* _tmp18_; _tmp15_ = ((GeeHashMapNodeIterator*) self)->_map; _tmp16_ = _tmp15_->priv->_nodes; _tmp16__length1 = _tmp15_->priv->_nodes_length1; ((GeeHashMapNodeIterator*) self)->_index = ((GeeHashMapNodeIterator*) self)->_index + 1; - _tmp17_ = _tmp16_[((GeeHashMapNodeIterator*) self)->_index]; - ((GeeHashMapNodeIterator*) self)->_next = _tmp17_; + _tmp17_ = ((GeeHashMapNodeIterator*) self)->_index; + _tmp18_ = _tmp16_[_tmp17_]; + ((GeeHashMapNodeIterator*) self)->_next = _tmp18_; } else { result = TRUE; return result; @@ -4196,8 +3754,8 @@ gee_hash_map_key_iterator_gee_iterator_parent_iface = g_type_interface_peek_parent (iface); iface->get = (gpointer (*) (GeeIterator*)) gee_hash_map_key_iterator_real_get; iface->remove = (void (*) (GeeIterator*)) gee_hash_map_key_iterator_real_remove; - iface->next = (gboolean (*) (GeeIterator*)) gee_hash_map_node_iterator_next; iface->has_next = (gboolean (*) (GeeIterator*)) gee_hash_map_node_iterator_has_next; + iface->next = (gboolean (*) (GeeIterator*)) gee_hash_map_node_iterator_next; iface->get_valid = (gboolean (*) (GeeIterator *)) gee_hash_map_node_iterator_get_valid; iface->get_read_only = (gboolean (*) (GeeIterator *)) gee_hash_map_node_iterator_get_read_only; } @@ -4210,18 +3768,26 @@ } static GType +gee_hash_map_key_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapKeyIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_key_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapKeyIterator), 0, (GInstanceInitFunc) gee_hash_map_key_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_hash_map_key_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_hash_map_key_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_hash_map_key_iterator_type_id; + gee_hash_map_key_iterator_type_id = g_type_register_static (GEE_HASH_MAP_TYPE_NODE_ITERATOR, "GeeHashMapKeyIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_hash_map_key_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_hash_map_key_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeHashMapKeyIterator_private_offset = g_type_add_instance_private (gee_hash_map_key_iterator_type_id, sizeof (GeeHashMapKeyIteratorPrivate)); + return gee_hash_map_key_iterator_type_id; +} + +static GType gee_hash_map_key_iterator_get_type (void) { static volatile gsize gee_hash_map_key_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_map_key_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapKeyIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_key_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapKeyIterator), 0, (GInstanceInitFunc) gee_hash_map_key_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_hash_map_key_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_hash_map_key_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_hash_map_key_iterator_type_id; - gee_hash_map_key_iterator_type_id = g_type_register_static (GEE_HASH_MAP_TYPE_NODE_ITERATOR, "GeeHashMapKeyIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_hash_map_key_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_hash_map_key_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeHashMapKeyIterator_private_offset = g_type_add_instance_private (gee_hash_map_key_iterator_type_id, sizeof (GeeHashMapKeyIteratorPrivate)); + gee_hash_map_key_iterator_type_id = gee_hash_map_key_iterator_get_type_once (); g_once_init_leave (&gee_hash_map_key_iterator_type_id__volatile, gee_hash_map_key_iterator_type_id); } return gee_hash_map_key_iterator_type_id__volatile; @@ -4531,16 +4097,24 @@ } static GType +gee_hash_map_map_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapMapIterator), 0, (GInstanceInitFunc) gee_hash_map_map_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_hash_map_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_hash_map_map_iterator_type_id; + gee_hash_map_map_iterator_type_id = g_type_register_static (GEE_HASH_MAP_TYPE_NODE_ITERATOR, "GeeHashMapMapIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_hash_map_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info); + GeeHashMapMapIterator_private_offset = g_type_add_instance_private (gee_hash_map_map_iterator_type_id, sizeof (GeeHashMapMapIteratorPrivate)); + return gee_hash_map_map_iterator_type_id; +} + +static GType gee_hash_map_map_iterator_get_type (void) { static volatile gsize gee_hash_map_map_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_map_map_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapMapIterator), 0, (GInstanceInitFunc) gee_hash_map_map_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_hash_map_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_hash_map_map_iterator_type_id; - gee_hash_map_map_iterator_type_id = g_type_register_static (GEE_HASH_MAP_TYPE_NODE_ITERATOR, "GeeHashMapMapIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_hash_map_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info); - GeeHashMapMapIterator_private_offset = g_type_add_instance_private (gee_hash_map_map_iterator_type_id, sizeof (GeeHashMapMapIteratorPrivate)); + gee_hash_map_map_iterator_type_id = gee_hash_map_map_iterator_get_type_once (); g_once_init_leave (&gee_hash_map_map_iterator_type_id__volatile, gee_hash_map_map_iterator_type_id); } return gee_hash_map_map_iterator_type_id__volatile; @@ -4785,13 +4359,15 @@ GeeHashMap* _tmp15_; GeeHashMapNode** _tmp16_; gint _tmp16__length1; - GeeHashMapNode* _tmp17_; + gint _tmp17_; + GeeHashMapNode* _tmp18_; _tmp15_ = ((GeeHashMapNodeIterator*) self)->_map; _tmp16_ = _tmp15_->priv->_nodes; _tmp16__length1 = _tmp15_->priv->_nodes_length1; ((GeeHashMapNodeIterator*) self)->_index = ((GeeHashMapNodeIterator*) self)->_index + 1; - _tmp17_ = _tmp16_[((GeeHashMapNodeIterator*) self)->_index]; - ((GeeHashMapNodeIterator*) self)->_next = _tmp17_; + _tmp17_ = ((GeeHashMapNodeIterator*) self)->_index; + _tmp18_ = _tmp16_[_tmp17_]; + ((GeeHashMapNodeIterator*) self)->_next = _tmp18_; } else { result = TRUE; return result; @@ -4928,8 +4504,8 @@ gee_hash_map_value_iterator_gee_iterator_parent_iface = g_type_interface_peek_parent (iface); iface->get = (gpointer (*) (GeeIterator*)) gee_hash_map_value_iterator_real_get; iface->remove = (void (*) (GeeIterator*)) gee_hash_map_value_iterator_real_remove; - iface->next = (gboolean (*) (GeeIterator*)) gee_hash_map_node_iterator_next; iface->has_next = (gboolean (*) (GeeIterator*)) gee_hash_map_node_iterator_has_next; + iface->next = (gboolean (*) (GeeIterator*)) gee_hash_map_node_iterator_next; iface->get_valid = (gboolean (*) (GeeIterator *)) gee_hash_map_node_iterator_get_valid; iface->get_read_only = (gboolean (*) (GeeIterator *)) gee_hash_map_node_iterator_get_read_only; } @@ -4942,18 +4518,26 @@ } static GType +gee_hash_map_value_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapValueIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_value_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapValueIterator), 0, (GInstanceInitFunc) gee_hash_map_value_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_hash_map_value_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_hash_map_value_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_hash_map_value_iterator_type_id; + gee_hash_map_value_iterator_type_id = g_type_register_static (GEE_HASH_MAP_TYPE_NODE_ITERATOR, "GeeHashMapValueIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_hash_map_value_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_hash_map_value_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeHashMapValueIterator_private_offset = g_type_add_instance_private (gee_hash_map_value_iterator_type_id, sizeof (GeeHashMapValueIteratorPrivate)); + return gee_hash_map_value_iterator_type_id; +} + +static GType gee_hash_map_value_iterator_get_type (void) { static volatile gsize gee_hash_map_value_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_map_value_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapValueIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_value_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapValueIterator), 0, (GInstanceInitFunc) gee_hash_map_value_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_hash_map_value_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_hash_map_value_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_hash_map_value_iterator_type_id; - gee_hash_map_value_iterator_type_id = g_type_register_static (GEE_HASH_MAP_TYPE_NODE_ITERATOR, "GeeHashMapValueIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_hash_map_value_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_hash_map_value_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeHashMapValueIterator_private_offset = g_type_add_instance_private (gee_hash_map_value_iterator_type_id, sizeof (GeeHashMapValueIteratorPrivate)); + gee_hash_map_value_iterator_type_id = gee_hash_map_value_iterator_get_type_once (); g_once_init_leave (&gee_hash_map_value_iterator_type_id__volatile, gee_hash_map_value_iterator_type_id); } return gee_hash_map_value_iterator_type_id__volatile; @@ -5186,13 +4770,15 @@ GeeHashMap* _tmp13_; GeeHashMapNode** _tmp14_; gint _tmp14__length1; - GeeHashMapNode* _tmp15_; + gint _tmp15_; + GeeHashMapNode* _tmp16_; _tmp13_ = ((GeeHashMapNodeIterator*) self)->_map; _tmp14_ = _tmp13_->priv->_nodes; _tmp14__length1 = _tmp13_->priv->_nodes_length1; ((GeeHashMapNodeIterator*) self)->_index = ((GeeHashMapNodeIterator*) self)->_index + 1; - _tmp15_ = _tmp14_[((GeeHashMapNodeIterator*) self)->_index]; - ((GeeHashMapNodeIterator*) self)->_next = _tmp15_; + _tmp15_ = ((GeeHashMapNodeIterator*) self)->_index; + _tmp16_ = _tmp14_[_tmp15_]; + ((GeeHashMapNodeIterator*) self)->_next = _tmp16_; } else { result = TRUE; return result; @@ -5329,8 +4915,8 @@ gee_hash_map_entry_iterator_gee_iterator_parent_iface = g_type_interface_peek_parent (iface); iface->get = (gpointer (*) (GeeIterator*)) gee_hash_map_entry_iterator_real_get; iface->remove = (void (*) (GeeIterator*)) gee_hash_map_entry_iterator_real_remove; - iface->next = (gboolean (*) (GeeIterator*)) gee_hash_map_node_iterator_next; iface->has_next = (gboolean (*) (GeeIterator*)) gee_hash_map_node_iterator_has_next; + iface->next = (gboolean (*) (GeeIterator*)) gee_hash_map_node_iterator_next; iface->get_valid = (gboolean (*) (GeeIterator *)) gee_hash_map_node_iterator_get_valid; iface->get_read_only = (gboolean (*) (GeeIterator *)) gee_hash_map_node_iterator_get_read_only; } @@ -5343,18 +4929,26 @@ } static GType +gee_hash_map_entry_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapEntryIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_entry_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapEntryIterator), 0, (GInstanceInitFunc) gee_hash_map_entry_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_hash_map_entry_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_hash_map_entry_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_hash_map_entry_iterator_type_id; + gee_hash_map_entry_iterator_type_id = g_type_register_static (GEE_HASH_MAP_TYPE_NODE_ITERATOR, "GeeHashMapEntryIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_hash_map_entry_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_hash_map_entry_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeHashMapEntryIterator_private_offset = g_type_add_instance_private (gee_hash_map_entry_iterator_type_id, sizeof (GeeHashMapEntryIteratorPrivate)); + return gee_hash_map_entry_iterator_type_id; +} + +static GType gee_hash_map_entry_iterator_get_type (void) { static volatile gsize gee_hash_map_entry_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_map_entry_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapEntryIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_entry_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMapEntryIterator), 0, (GInstanceInitFunc) gee_hash_map_entry_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_hash_map_entry_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_hash_map_entry_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_hash_map_entry_iterator_type_id; - gee_hash_map_entry_iterator_type_id = g_type_register_static (GEE_HASH_MAP_TYPE_NODE_ITERATOR, "GeeHashMapEntryIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_hash_map_entry_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_hash_map_entry_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeHashMapEntryIterator_private_offset = g_type_add_instance_private (gee_hash_map_entry_iterator_type_id, sizeof (GeeHashMapEntryIteratorPrivate)); + gee_hash_map_entry_iterator_type_id = gee_hash_map_entry_iterator_get_type_once (); g_once_init_leave (&gee_hash_map_entry_iterator_type_id__volatile, gee_hash_map_entry_iterator_type_id); } return gee_hash_map_entry_iterator_type_id__volatile; @@ -5499,21 +5093,29 @@ /** * Hash table implementation of the {@link Map} interface. * - * This implementation is better fit for highly heterogenous key values. + * This implementation is better fit for highly heterogeneous key values. * In case of high key hashes redundancy or higher amount of data prefer using * tree implementation like {@link TreeMap}. * * @see TreeMap */ +static GType +gee_hash_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMap), 0, (GInstanceInitFunc) gee_hash_map_instance_init, NULL }; + GType gee_hash_map_type_id; + gee_hash_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_MAP, "GeeHashMap", &g_define_type_info, 0); + GeeHashMap_private_offset = g_type_add_instance_private (gee_hash_map_type_id, sizeof (GeeHashMapPrivate)); + return gee_hash_map_type_id; +} + GType gee_hash_map_get_type (void) { static volatile gsize gee_hash_map_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMap), 0, (GInstanceInitFunc) gee_hash_map_instance_init, NULL }; GType gee_hash_map_type_id; - gee_hash_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_MAP, "GeeHashMap", &g_define_type_info, 0); - GeeHashMap_private_offset = g_type_add_instance_private (gee_hash_map_type_id, sizeof (GeeHashMapPrivate)); + gee_hash_map_type_id = gee_hash_map_get_type_once (); g_once_init_leave (&gee_hash_map_type_id__volatile, gee_hash_map_type_id); } return gee_hash_map_type_id__volatile; @@ -5606,7 +5208,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/hashmap.vala libgee-0.8-0.20.4/gee/hashmap.vala --- libgee-0.8-0.20.3/gee/hashmap.vala 2019-07-14 06:18:01.000000000 +0000 +++ libgee-0.8-0.20.4/gee/hashmap.vala 2021-03-17 11:24:00.000000000 +0000 @@ -28,7 +28,7 @@ /** * Hash table implementation of the {@link Map} interface. * - * This implementation is better fit for highly heterogenous key values. + * This implementation is better fit for highly heterogeneous key values. * In case of high key hashes redundancy or higher amount of data prefer using * tree implementation like {@link TreeMap}. * diff -Nru libgee-0.8-0.20.3/gee/hashmultimap.c libgee-0.8-0.20.4/gee/hashmultimap.c --- libgee-0.8-0.20.3/gee/hashmultimap.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/hashmultimap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* hashmultimap.c generated by valac 0.46.6, the Vala compiler +/* hashmultimap.c generated by valac 0.52.0, the Vala compiler * generated from hashmultimap.vala, do not modify */ /* hashmultimap.vala @@ -23,140 +23,10 @@ * Ali Sabil */ +#include "gee.h" #include #include -#define GEE_TYPE_MULTI_MAP (gee_multi_map_get_type ()) -#define GEE_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMap)) -#define GEE_IS_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_MAP)) -#define GEE_MULTI_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMapIface)) - -typedef struct _GeeMultiMap GeeMultiMap; -typedef struct _GeeMultiMapIface GeeMultiMapIface; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_MULTI_SET (gee_multi_set_get_type ()) -#define GEE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_SET, GeeMultiSet)) -#define GEE_IS_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_SET)) -#define GEE_MULTI_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface)) - -typedef struct _GeeMultiSet GeeMultiSet; -typedef struct _GeeMultiSetIface GeeMultiSetIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_MULTI_MAP (gee_abstract_multi_map_get_type ()) -#define GEE_ABSTRACT_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMap)) -#define GEE_ABSTRACT_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMapClass)) -#define GEE_IS_ABSTRACT_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MULTI_MAP)) -#define GEE_IS_ABSTRACT_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MULTI_MAP)) -#define GEE_ABSTRACT_MULTI_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMapClass)) - -typedef struct _GeeAbstractMultiMap GeeAbstractMultiMap; -typedef struct _GeeAbstractMultiMapClass GeeAbstractMultiMapClass; -typedef struct _GeeAbstractMultiMapPrivate GeeAbstractMultiMapPrivate; -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - -#define GEE_TYPE_HASH_MULTI_MAP (gee_hash_multi_map_get_type ()) -#define GEE_HASH_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_MULTI_MAP, GeeHashMultiMap)) -#define GEE_HASH_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_MULTI_MAP, GeeHashMultiMapClass)) -#define GEE_IS_HASH_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_MULTI_MAP)) -#define GEE_IS_HASH_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_MULTI_MAP)) -#define GEE_HASH_MULTI_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_MULTI_MAP, GeeHashMultiMapClass)) - -typedef struct _GeeHashMultiMap GeeHashMultiMap; -typedef struct _GeeHashMultiMapClass GeeHashMultiMapClass; -typedef struct _GeeHashMultiMapPrivate GeeHashMultiMapPrivate; - #define GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE (gee_functions_hash_data_func_closure_get_type ()) #define GEE_FUNCTIONS_HASH_DATA_FUNC_CLOSURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE, GeeFunctionsHashDataFuncClosure)) #define GEE_FUNCTIONS_HASH_DATA_FUNC_CLOSURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE, GeeFunctionsHashDataFuncClosureClass)) @@ -189,268 +59,10 @@ static GParamSpec* gee_hash_multi_map_properties[GEE_HASH_MULTI_MAP_NUM_PROPERTIES]; #define _gee_functions_hash_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_hash_data_func_closure_unref (var), NULL))) #define _gee_functions_equal_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_equal_data_func_closure_unref (var), NULL))) -typedef guint (*GeeHashDataFunc) (gconstpointer v, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type ()) -#define GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)) -#define GEE_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) -#define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) - -typedef struct _GeeAbstractMap GeeAbstractMap; -typedef struct _GeeAbstractMapClass GeeAbstractMapClass; - -#define GEE_TYPE_HASH_MAP (gee_hash_map_get_type ()) -#define GEE_HASH_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_MAP, GeeHashMap)) -#define GEE_HASH_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_MAP, GeeHashMapClass)) -#define GEE_IS_HASH_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_MAP)) -#define GEE_IS_HASH_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_MAP)) -#define GEE_HASH_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_MAP, GeeHashMapClass)) - -typedef struct _GeeHashMap GeeHashMap; -typedef struct _GeeHashMapClass GeeHashMapClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; - -#define GEE_TYPE_HASH_SET (gee_hash_set_get_type ()) -#define GEE_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_SET, GeeHashSet)) -#define GEE_HASH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_SET, GeeHashSetClass)) -#define GEE_IS_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_SET)) -#define GEE_IS_HASH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_SET)) -#define GEE_HASH_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_SET, GeeHashSetClass)) - -typedef struct _GeeHashSet GeeHashSet; -typedef struct _GeeHashSetClass GeeHashSetClass; - -#define GEE_TYPE_ABSTRACT_MULTI_SET (gee_abstract_multi_set_get_type ()) -#define GEE_ABSTRACT_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSet)) -#define GEE_ABSTRACT_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSetClass)) -#define GEE_IS_ABSTRACT_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MULTI_SET)) -#define GEE_IS_ABSTRACT_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MULTI_SET)) -#define GEE_ABSTRACT_MULTI_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSetClass)) - -typedef struct _GeeAbstractMultiSet GeeAbstractMultiSet; -typedef struct _GeeAbstractMultiSetClass GeeAbstractMultiSetClass; - -#define GEE_TYPE_HASH_MULTI_SET (gee_hash_multi_set_get_type ()) -#define GEE_HASH_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_MULTI_SET, GeeHashMultiSet)) -#define GEE_HASH_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_MULTI_SET, GeeHashMultiSetClass)) -#define GEE_IS_HASH_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_MULTI_SET)) -#define GEE_IS_HASH_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_MULTI_SET)) -#define GEE_HASH_MULTI_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_MULTI_SET, GeeHashMultiSetClass)) - -typedef struct _GeeHashMultiSet GeeHashMultiSet; -typedef struct _GeeHashMultiSetClass GeeHashMultiSetClass; typedef struct _GeeFunctionsHashDataFuncClosurePrivate GeeFunctionsHashDataFuncClosurePrivate; typedef struct _GeeFunctionsEqualDataFuncClosurePrivate GeeFunctionsEqualDataFuncClosurePrivate; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMultiSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeMultiSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeMultiSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeMultiSet* self); - gint (*count) (GeeMultiSet* self, gconstpointer item); - GeeMultiSet* (*get_read_only_view) (GeeMultiSet* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeMultiMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMultiMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMultiMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMultiMap* self); - GType (*get_v_type) (GeeMultiMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMultiMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMultiMap* self); - GeeSet* (*get_keys) (GeeMultiMap* self); - GeeMultiSet* (*get_all_keys) (GeeMultiMap* self); - GeeCollection* (*get_values) (GeeMultiMap* self); - gboolean (*contains) (GeeMultiMap* self, gconstpointer key); - GeeCollection* (*get) (GeeMultiMap* self, gconstpointer key); - void (*set) (GeeMultiMap* self, gconstpointer key, gconstpointer value); - gboolean (*remove) (GeeMultiMap* self, gconstpointer key, gconstpointer value); - gboolean (*remove_all) (GeeMultiMap* self, gconstpointer key); - void (*clear) (GeeMultiMap* self); - GeeMapIterator* (*map_iterator) (GeeMultiMap* self); - gint (*get_size) (GeeMultiMap* self); - gboolean (*get_read_only) (GeeMultiMap* self); - GeeMultiMap* (*get_read_only_view) (GeeMultiMap* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeAbstractMultiMap { - GObject parent_instance; - GeeAbstractMultiMapPrivate * priv; - GeeMap* _storage_map; -}; - -struct _GeeAbstractMultiMapClass { - GObjectClass parent_class; - GeeCollection* (*create_value_storage) (GeeAbstractMultiMap* self); - GeeMultiSet* (*create_multi_key_set) (GeeAbstractMultiMap* self); - GeeEqualDataFunc (*get_value_equal_func) (GeeAbstractMultiMap* self, gpointer* result_target, GDestroyNotify* result_target_destroy_notify); - void (*reserved0) (GeeAbstractMultiMap* self); - void (*reserved1) (GeeAbstractMultiMap* self); - void (*reserved2) (GeeAbstractMultiMap* self); - void (*reserved3) (GeeAbstractMultiMap* self); - void (*reserved4) (GeeAbstractMultiMap* self); - void (*reserved5) (GeeAbstractMultiMap* self); - void (*reserved6) (GeeAbstractMultiMap* self); - void (*reserved7) (GeeAbstractMultiMap* self); - void (*reserved8) (GeeAbstractMultiMap* self); - GeeMultiMap* (*get_read_only_view) (GeeAbstractMultiMap* self); -}; - -struct _GeeHashMultiMap { - GeeAbstractMultiMap parent_instance; - GeeHashMultiMapPrivate * priv; -}; - -struct _GeeHashMultiMapClass { - GeeAbstractMultiMapClass parent_class; -}; - struct _GeeHashMultiMapPrivate { GType k_type; GBoxedCopyFunc k_dup_func; @@ -493,170 +105,52 @@ static gint GeeHashMultiMap_private_offset; static gpointer gee_hash_multi_map_parent_class = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_multi_set_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_multi_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_multi_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiMap, g_object_unref) -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GType gee_hash_multi_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMultiMap, g_object_unref) -G_GNUC_INTERNAL gpointer gee_functions_hash_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_hash_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_hash_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_hash_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_hash_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_hash_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_hash_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_hash_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_hash_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_hash_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_hash_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_hash_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsHashDataFuncClosure, gee_functions_hash_data_func_closure_unref) -G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_value_get_hash_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_hash_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsEqualDataFuncClosure, gee_functions_equal_data_func_closure_unref) -GeeHashMultiMap* gee_hash_multi_map_new (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GeeHashDataFunc key_hash_func, - gpointer key_hash_func_target, - GDestroyNotify key_hash_func_target_destroy_notify, - GeeEqualDataFunc key_equal_func, - gpointer key_equal_func_target, - GDestroyNotify key_equal_func_target_destroy_notify, - GeeHashDataFunc value_hash_func, - gpointer value_hash_func_target, - GDestroyNotify value_hash_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GeeHashMultiMap* gee_hash_multi_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GeeHashDataFunc key_hash_func, - gpointer key_hash_func_target, - GDestroyNotify key_hash_func_target_destroy_notify, - GeeEqualDataFunc key_equal_func, - gpointer key_equal_func_target, - GDestroyNotify key_equal_func_target_destroy_notify, - GeeHashDataFunc value_hash_func, - gpointer value_hash_func_target, - GDestroyNotify value_hash_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -GeeHashMap* gee_hash_map_new (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GeeHashDataFunc key_hash_func, - gpointer key_hash_func_target, - GDestroyNotify key_hash_func_target_destroy_notify, - GeeEqualDataFunc key_equal_func, - gpointer key_equal_func_target, - GDestroyNotify key_equal_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GeeHashMap* gee_hash_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GeeHashDataFunc key_hash_func, - gpointer key_hash_func_target, - GDestroyNotify key_hash_func_target_destroy_notify, - GeeEqualDataFunc key_equal_func, - gpointer key_equal_func_target, - GDestroyNotify key_equal_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GType gee_abstract_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMap, g_object_unref) -GType gee_hash_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMap, g_object_unref) -GeeAbstractMultiMap* gee_abstract_multi_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GeeMap* storage_map); -GeeHashDataFunc gee_functions_get_hash_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -664,66 +158,45 @@ gpointer func_target, GDestroyNotify func_target_destroy_notify); static GeeCollection* gee_hash_multi_map_real_create_value_storage (GeeAbstractMultiMap* base); -G_GNUC_INTERNAL GeeHashSet* gee_hash_set_new_with_closures (GType g_type, + G_GNUC_INTERNAL GeeHashSet* gee_hash_set_new_with_closures (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsHashDataFuncClosure* hash_func, GeeFunctionsEqualDataFuncClosure* equal_func); -G_GNUC_INTERNAL GeeHashSet* gee_hash_set_construct_with_closures (GType object_type, + G_GNUC_INTERNAL GeeHashSet* gee_hash_set_construct_with_closures (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsHashDataFuncClosure* hash_func, GeeFunctionsEqualDataFuncClosure* equal_func); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_hash_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashSet, g_object_unref) static GeeMultiSet* gee_hash_multi_map_real_create_multi_key_set (GeeAbstractMultiMap* base); -G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_hash_map_get_key_hash_func_closure (GeeHashMap* self); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_hash_map_get_key_equal_func_closure (GeeHashMap* self); -G_GNUC_INTERNAL GeeHashMultiSet* gee_hash_multi_set_new_with_closures (GType g_type, + G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_hash_map_get_key_hash_func_closure (GeeHashMap* self); + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_hash_map_get_key_equal_func_closure (GeeHashMap* self); + G_GNUC_INTERNAL GeeHashMultiSet* gee_hash_multi_set_new_with_closures (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsHashDataFuncClosure* hash_func, GeeFunctionsEqualDataFuncClosure* equal_func); -G_GNUC_INTERNAL GeeHashMultiSet* gee_hash_multi_set_construct_with_closures (GType object_type, + G_GNUC_INTERNAL GeeHashMultiSet* gee_hash_multi_set_construct_with_closures (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsHashDataFuncClosure* hash_func, GeeFunctionsEqualDataFuncClosure* equal_func); -GType gee_abstract_multi_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiSet, g_object_unref) -GType gee_hash_multi_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMultiSet, g_object_unref) static GeeEqualDataFunc gee_hash_multi_map_real_get_value_equal_func (GeeAbstractMultiMap* base, gpointer* result_target, GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL GeeEqualDataFunc gee_functions_equal_data_func_closure_clone_func (GeeFunctionsEqualDataFuncClosure* self, + G_GNUC_INTERNAL GeeEqualDataFunc gee_functions_equal_data_func_closure_clone_func (GeeFunctionsEqualDataFuncClosure* self, gpointer* result_target, GDestroyNotify* result_target_destroy_notify); -GeeHashDataFunc gee_hash_multi_map_get_key_hash_func (GeeHashMultiMap* self, - gpointer* result_target); -GeeHashDataFunc gee_hash_map_get_key_hash_func (GeeHashMap* self, - gpointer* result_target); -GeeEqualDataFunc gee_hash_multi_map_get_key_equal_func (GeeHashMultiMap* self, - gpointer* result_target); -GeeEqualDataFunc gee_hash_map_get_key_equal_func (GeeHashMap* self, - gpointer* result_target); -GeeHashDataFunc gee_hash_multi_map_get_value_hash_func (GeeHashMultiMap* self, - gpointer* result_target); static void gee_hash_multi_map_set_value_hash_func (GeeHashMultiMap* self, GeeHashDataFunc value, gpointer value_target); -GeeEqualDataFunc gee_hash_multi_map_get_value_equal_func (GeeHashMultiMap* self, - gpointer* result_target); static void gee_hash_multi_map_set_value_equal_func (GeeHashMultiMap* self, GeeEqualDataFunc value, gpointer value_target); static void gee_hash_multi_map_finalize (GObject * obj); +static GType gee_hash_multi_map_get_type_once (void); static void _vala_gee_hash_multi_map_get_property (GObject * object, guint property_id, GValue * value, @@ -778,7 +251,7 @@ GeeEqualDataFunc _tmp1_; gpointer _tmp1__target; GDestroyNotify _tmp1__target_destroy_notify; - void* _tmp2_ = NULL; + gpointer _tmp2_ = NULL; GDestroyNotify _tmp3_ = NULL; GeeEqualDataFunc _tmp4_; GeeHashMap* _tmp5_; @@ -815,7 +288,7 @@ self->priv->v_destroy_func = v_destroy_func; _g_object_unref0 (_tmp6_); if (value_hash_func == NULL) { - void* _tmp7_ = NULL; + gpointer _tmp7_ = NULL; GDestroyNotify _tmp8_ = NULL; GeeHashDataFunc _tmp9_; _tmp9_ = gee_functions_get_hash_func_for (v_type, &_tmp7_, &_tmp8_); @@ -828,7 +301,7 @@ value_hash_func_target_destroy_notify = _tmp8_; } if (value_equal_func == NULL) { - void* _tmp10_ = NULL; + gpointer _tmp10_ = NULL; GDestroyNotify _tmp11_ = NULL; GeeEqualDataFunc _tmp12_; _tmp12_ = gee_functions_get_equal_func_for (v_type, &_tmp10_, &_tmp11_); @@ -959,7 +432,7 @@ { GeeHashMultiMap * self; GeeFunctionsEqualDataFuncClosure* _tmp0_; - void* _tmp1_ = NULL; + gpointer _tmp1_ = NULL; GDestroyNotify _tmp2_ = NULL; GeeEqualDataFunc _tmp3_; GeeEqualDataFunc _tmp4_; @@ -1124,15 +597,23 @@ /** * Hash table implementation of the {@link MultiMap} interface. */ +static GType +gee_hash_multi_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashMultiMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_multi_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMultiMap), 0, (GInstanceInitFunc) gee_hash_multi_map_instance_init, NULL }; + GType gee_hash_multi_map_type_id; + gee_hash_multi_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_MULTI_MAP, "GeeHashMultiMap", &g_define_type_info, 0); + GeeHashMultiMap_private_offset = g_type_add_instance_private (gee_hash_multi_map_type_id, sizeof (GeeHashMultiMapPrivate)); + return gee_hash_multi_map_type_id; +} + GType gee_hash_multi_map_get_type (void) { static volatile gsize gee_hash_multi_map_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_multi_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashMultiMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_multi_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMultiMap), 0, (GInstanceInitFunc) gee_hash_multi_map_instance_init, NULL }; GType gee_hash_multi_map_type_id; - gee_hash_multi_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_MULTI_MAP, "GeeHashMultiMap", &g_define_type_info, 0); - GeeHashMultiMap_private_offset = g_type_add_instance_private (gee_hash_multi_map_type_id, sizeof (GeeHashMultiMapPrivate)); + gee_hash_multi_map_type_id = gee_hash_multi_map_get_type_once (); g_once_init_leave (&gee_hash_multi_map_type_id__volatile, gee_hash_multi_map_type_id); } return gee_hash_multi_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/hashmultiset.c libgee-0.8-0.20.4/gee/hashmultiset.c --- libgee-0.8-0.20.3/gee/hashmultiset.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/hashmultiset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* hashmultiset.c generated by valac 0.46.6, the Vala compiler +/* hashmultiset.c generated by valac 0.52.0, the Vala compiler * generated from hashmultiset.vala, do not modify */ /* hashmultiset.vala @@ -23,141 +23,10 @@ * Ali Sabil */ -#include +#include "gee.h" #include +#include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_MULTI_SET (gee_multi_set_get_type ()) -#define GEE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_SET, GeeMultiSet)) -#define GEE_IS_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_SET)) -#define GEE_MULTI_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface)) - -typedef struct _GeeMultiSet GeeMultiSet; -typedef struct _GeeMultiSetIface GeeMultiSetIface; - -#define GEE_TYPE_ABSTRACT_MULTI_SET (gee_abstract_multi_set_get_type ()) -#define GEE_ABSTRACT_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSet)) -#define GEE_ABSTRACT_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSetClass)) -#define GEE_IS_ABSTRACT_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MULTI_SET)) -#define GEE_IS_ABSTRACT_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MULTI_SET)) -#define GEE_ABSTRACT_MULTI_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSetClass)) - -typedef struct _GeeAbstractMultiSet GeeAbstractMultiSet; -typedef struct _GeeAbstractMultiSetClass GeeAbstractMultiSetClass; -typedef struct _GeeAbstractMultiSetPrivate GeeAbstractMultiSetPrivate; - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - -#define GEE_TYPE_HASH_MULTI_SET (gee_hash_multi_set_get_type ()) -#define GEE_HASH_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_MULTI_SET, GeeHashMultiSet)) -#define GEE_HASH_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_MULTI_SET, GeeHashMultiSetClass)) -#define GEE_IS_HASH_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_MULTI_SET)) -#define GEE_IS_HASH_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_MULTI_SET)) -#define GEE_HASH_MULTI_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_MULTI_SET, GeeHashMultiSetClass)) - -typedef struct _GeeHashMultiSet GeeHashMultiSet; -typedef struct _GeeHashMultiSetClass GeeHashMultiSetClass; -typedef struct _GeeHashMultiSetPrivate GeeHashMultiSetPrivate; enum { GEE_HASH_MULTI_SET_0_PROPERTY, GEE_HASH_MULTI_SET_G_TYPE, @@ -166,28 +35,6 @@ GEE_HASH_MULTI_SET_NUM_PROPERTIES }; static GParamSpec* gee_hash_multi_set_properties[GEE_HASH_MULTI_SET_NUM_PROPERTIES]; -typedef guint (*GeeHashDataFunc) (gconstpointer v, gpointer user_data); -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type ()) -#define GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)) -#define GEE_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) -#define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) - -typedef struct _GeeAbstractMap GeeAbstractMap; -typedef struct _GeeAbstractMapClass GeeAbstractMapClass; - -#define GEE_TYPE_HASH_MAP (gee_hash_map_get_type ()) -#define GEE_HASH_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_MAP, GeeHashMap)) -#define GEE_HASH_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_MAP, GeeHashMapClass)) -#define GEE_IS_HASH_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_MAP)) -#define GEE_IS_HASH_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_MAP)) -#define GEE_HASH_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_MAP, GeeHashMapClass)) - -typedef struct _GeeHashMap GeeHashMap; -typedef struct _GeeHashMapClass GeeHashMapClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE (gee_functions_hash_data_func_closure_get_type ()) @@ -212,195 +59,6 @@ #define _gee_functions_hash_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_hash_data_func_closure_unref (var), NULL))) #define _gee_functions_equal_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_equal_data_func_closure_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeMultiSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeMultiSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeMultiSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeMultiSet* self); - gint (*count) (GeeMultiSet* self, gconstpointer item); - GeeMultiSet* (*get_read_only_view) (GeeMultiSet* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeAbstractMultiSet { - GeeAbstractCollection parent_instance; - GeeAbstractMultiSetPrivate * priv; - GeeMap* _storage_map; -}; - -struct _GeeAbstractMultiSetClass { - GeeAbstractCollectionClass parent_class; - void (*reserved0) (GeeAbstractMultiSet* self); - void (*reserved1) (GeeAbstractMultiSet* self); - void (*reserved2) (GeeAbstractMultiSet* self); - void (*reserved3) (GeeAbstractMultiSet* self); - void (*reserved4) (GeeAbstractMultiSet* self); - void (*reserved5) (GeeAbstractMultiSet* self); - void (*reserved6) (GeeAbstractMultiSet* self); - void (*reserved7) (GeeAbstractMultiSet* self); - void (*reserved8) (GeeAbstractMultiSet* self); - GeeMultiSet* (*get_read_only_view) (GeeAbstractMultiSet* self); -}; - -struct _GeeHashMultiSet { - GeeAbstractMultiSet parent_instance; - GeeHashMultiSetPrivate * priv; -}; - -struct _GeeHashMultiSetClass { - GeeAbstractMultiSetClass parent_class; -}; - struct _GeeHashMultiSetPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -410,167 +68,57 @@ static gint GeeHashMultiSet_private_offset; static gpointer gee_hash_multi_set_parent_class = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_multi_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_multi_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiSet, g_object_unref) -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GType gee_hash_multi_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMultiSet, g_object_unref) -GeeHashMultiSet* gee_hash_multi_set_new_fixed (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GDestroyNotify hash_func_target_destroy_notify, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeHashMultiSet* gee_hash_multi_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GDestroyNotify hash_func_target_destroy_notify, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeHashMap* gee_hash_map_new (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GeeHashDataFunc key_hash_func, - gpointer key_hash_func_target, - GDestroyNotify key_hash_func_target_destroy_notify, - GeeEqualDataFunc key_equal_func, - gpointer key_equal_func_target, - GDestroyNotify key_equal_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GeeHashMap* gee_hash_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GeeHashDataFunc key_hash_func, - gpointer key_hash_func_target, - GDestroyNotify key_hash_func_target_destroy_notify, - GeeEqualDataFunc key_equal_func, - gpointer key_equal_func_target, - GDestroyNotify key_equal_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GType gee_abstract_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMap, g_object_unref) -GType gee_hash_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMap, g_object_unref) -GeeAbstractMultiSet* gee_abstract_multi_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeMap* storage_map); -GeeHashMultiSet* gee_hash_multi_set_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GeeEqualDataFunc equal_func, - gpointer equal_func_target) G_GNUC_DEPRECATED; -GeeHashMultiSet* gee_hash_multi_set_construct_broken (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GeeEqualDataFunc equal_func, - gpointer equal_func_target) G_GNUC_DEPRECATED; -G_GNUC_INTERNAL gpointer gee_functions_hash_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_hash_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_hash_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_hash_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_hash_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_hash_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_hash_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_hash_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_hash_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_hash_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_hash_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_hash_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsHashDataFuncClosure, gee_functions_hash_data_func_closure_unref) -G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_value_get_hash_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_hash_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsEqualDataFuncClosure, gee_functions_equal_data_func_closure_unref) -G_GNUC_INTERNAL GeeHashMultiSet* gee_hash_multi_set_new_with_closures (GType g_type, + G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeHashMultiSet* gee_hash_multi_set_new_with_closures (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsHashDataFuncClosure* hash_func, GeeFunctionsEqualDataFuncClosure* equal_func); -G_GNUC_INTERNAL GeeHashMultiSet* gee_hash_multi_set_construct_with_closures (GType object_type, + G_GNUC_INTERNAL GeeHashMultiSet* gee_hash_multi_set_construct_with_closures (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsHashDataFuncClosure* hash_func, GeeFunctionsEqualDataFuncClosure* equal_func); -GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeHashMap* gee_hash_map_new_with_closures (GType k_type, + G_GNUC_INTERNAL GeeHashMap* gee_hash_map_new_with_closures (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, @@ -579,7 +127,7 @@ GeeFunctionsHashDataFuncClosure* key_hash_func, GeeFunctionsEqualDataFuncClosure* key_equal_func, GeeFunctionsEqualDataFuncClosure* value_equal_func); -G_GNUC_INTERNAL GeeHashMap* gee_hash_map_construct_with_closures (GType object_type, + G_GNUC_INTERNAL GeeHashMap* gee_hash_map_construct_with_closures (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -589,14 +137,7 @@ GeeFunctionsHashDataFuncClosure* key_hash_func, GeeFunctionsEqualDataFuncClosure* key_equal_func, GeeFunctionsEqualDataFuncClosure* value_equal_func); -GeeHashDataFunc gee_hash_multi_set_get_hash_func (GeeHashMultiSet* self, - gpointer* result_target); -GeeHashDataFunc gee_hash_map_get_key_hash_func (GeeHashMap* self, - gpointer* result_target); -GeeEqualDataFunc gee_hash_multi_set_get_equal_func (GeeHashMultiSet* self, - gpointer* result_target); -GeeEqualDataFunc gee_hash_map_get_key_equal_func (GeeHashMap* self, - gpointer* result_target); +static GType gee_hash_multi_set_get_type_once (void); static void _vala_gee_hash_multi_set_get_property (GObject * object, guint property_id, GValue * value, @@ -734,7 +275,7 @@ return gee_hash_multi_set_construct_broken (GEE_TYPE_HASH_MULTI_SET, g_type, g_dup_func, g_destroy_func, hash_func, hash_func_target, equal_func, equal_func_target); } -G_GNUC_INTERNAL GeeHashMultiSet* + G_GNUC_INTERNAL GeeHashMultiSet* gee_hash_multi_set_construct_with_closures (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -745,7 +286,7 @@ GeeHashMultiSet * self = NULL; GeeFunctionsHashDataFuncClosure* _tmp0_; GeeFunctionsEqualDataFuncClosure* _tmp1_; - void* _tmp2_ = NULL; + gpointer _tmp2_ = NULL; GDestroyNotify _tmp3_ = NULL; GeeEqualDataFunc _tmp4_; GeeFunctionsEqualDataFuncClosure* _tmp5_; @@ -771,7 +312,7 @@ return self; } -G_GNUC_INTERNAL GeeHashMultiSet* + G_GNUC_INTERNAL GeeHashMultiSet* gee_hash_multi_set_new_with_closures (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -852,15 +393,23 @@ /** * Hash table implementation of the {@link MultiSet} interface. */ +static GType +gee_hash_multi_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashMultiSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_multi_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMultiSet), 0, (GInstanceInitFunc) gee_hash_multi_set_instance_init, NULL }; + GType gee_hash_multi_set_type_id; + gee_hash_multi_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_MULTI_SET, "GeeHashMultiSet", &g_define_type_info, 0); + GeeHashMultiSet_private_offset = g_type_add_instance_private (gee_hash_multi_set_type_id, sizeof (GeeHashMultiSetPrivate)); + return gee_hash_multi_set_type_id; +} + GType gee_hash_multi_set_get_type (void) { static volatile gsize gee_hash_multi_set_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_multi_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashMultiSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_multi_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashMultiSet), 0, (GInstanceInitFunc) gee_hash_multi_set_instance_init, NULL }; GType gee_hash_multi_set_type_id; - gee_hash_multi_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_MULTI_SET, "GeeHashMultiSet", &g_define_type_info, 0); - GeeHashMultiSet_private_offset = g_type_add_instance_private (gee_hash_multi_set_type_id, sizeof (GeeHashMultiSetPrivate)); + gee_hash_multi_set_type_id = gee_hash_multi_set_get_type_once (); g_once_init_leave (&gee_hash_multi_set_type_id__volatile, gee_hash_multi_set_type_id); } return gee_hash_multi_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/hashset.c libgee-0.8-0.20.4/gee/hashset.c --- libgee-0.8-0.20.3/gee/hashset.c 2020-02-09 19:03:20.000000000 +0000 +++ libgee-0.8-0.20.4/gee/hashset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* hashset.c generated by valac 0.46.6, the Vala compiler +/* hashset.c generated by valac 0.52.0, the Vala compiler * generated from hashset.vala, do not modify */ /* hashset.vala @@ -26,108 +26,10 @@ * Jürg Billeter */ +#include "gee.h" #include #include -typedef guint (*GeeHashDataFunc) (gconstpointer v, gpointer user_data); -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; -typedef struct _GeeAbstractSetPrivate GeeAbstractSetPrivate; - -#define GEE_TYPE_HASH_SET (gee_hash_set_get_type ()) -#define GEE_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_SET, GeeHashSet)) -#define GEE_HASH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_SET, GeeHashSetClass)) -#define GEE_IS_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_SET)) -#define GEE_IS_HASH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_SET)) -#define GEE_HASH_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_SET, GeeHashSetClass)) - -typedef struct _GeeHashSet GeeHashSet; -typedef struct _GeeHashSetClass GeeHashSetClass; -typedef struct _GeeHashSetPrivate GeeHashSetPrivate; typedef struct _GeeHashSetNode GeeHashSetNode; #define GEE_FUNCTIONS_TYPE_HASH_DATA_FUNC_CLOSURE (gee_functions_hash_data_func_closure_get_type ()) @@ -191,138 +93,6 @@ #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeAbstractSet { - GeeAbstractCollection parent_instance; - GeeAbstractSetPrivate * priv; -}; - -struct _GeeAbstractSetClass { - GeeAbstractCollectionClass parent_class; - void (*reserved0) (GeeAbstractSet* self); - void (*reserved1) (GeeAbstractSet* self); - void (*reserved2) (GeeAbstractSet* self); - void (*reserved3) (GeeAbstractSet* self); - void (*reserved4) (GeeAbstractSet* self); - void (*reserved5) (GeeAbstractSet* self); - void (*reserved6) (GeeAbstractSet* self); - void (*reserved7) (GeeAbstractSet* self); - void (*reserved8) (GeeAbstractSet* self); - void (*reserved9) (GeeAbstractSet* self); - GeeSet* (*get_read_only_view) (GeeAbstractSet* self); -}; - -struct _GeeHashSet { - GeeAbstractSet parent_instance; - GeeHashSetPrivate * priv; -}; - -struct _GeeHashSetClass { - GeeAbstractSetClass parent_class; -}; - struct _GeeHashSetPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -398,126 +168,67 @@ static GeeTraversableIface * gee_hash_set_iterator_gee_traversable_parent_iface = NULL; static GeeIteratorIface * gee_hash_set_iterator_gee_iterator_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_hash_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashSet, g_object_unref) static void gee_hash_set_node_free (GeeHashSetNode * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashSetNode, gee_hash_set_node_free) -G_GNUC_INTERNAL gpointer gee_functions_hash_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_hash_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_hash_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_hash_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_hash_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_hash_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_hash_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_hash_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_hash_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_hash_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_hash_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_hash_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsHashDataFuncClosure, gee_functions_hash_data_func_closure_unref) -G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_value_get_hash_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_hash_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsEqualDataFuncClosure, gee_functions_equal_data_func_closure_unref) -void gee_abstract_collection_clear (GeeAbstractCollection* self); + G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; #define GEE_HASH_SET_MIN_SIZE 11 #define GEE_HASH_SET_MAX_SIZE 13845163 -GeeHashSet* gee_hash_set_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GDestroyNotify hash_func_target_destroy_notify, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeHashSet* gee_hash_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GDestroyNotify hash_func_target_destroy_notify, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeAbstractSet* gee_abstract_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeHashDataFunc gee_functions_get_hash_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsHashDataFuncClosure* gee_functions_hash_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeHashSet* gee_hash_set_new_with_closures (GType g_type, + G_GNUC_INTERNAL GeeHashSet* gee_hash_set_new_with_closures (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsHashDataFuncClosure* hash_func, GeeFunctionsEqualDataFuncClosure* equal_func); -G_GNUC_INTERNAL GeeHashSet* gee_hash_set_construct_with_closures (GType object_type, + G_GNUC_INTERNAL GeeHashSet* gee_hash_set_construct_with_closures (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -525,10 +236,6 @@ GeeFunctionsEqualDataFuncClosure* equal_func); static GeeHashSetNode** gee_hash_set_lookup_node (GeeHashSet* self, gconstpointer key); -GeeHashDataFunc gee_hash_set_get_hash_func (GeeHashSet* self, - gpointer* result_target); -GeeEqualDataFunc gee_hash_set_get_equal_func (GeeHashSet* self, - gpointer* result_target); static gboolean gee_hash_set_real_contains (GeeAbstractCollection* base, gconstpointer key); static GeeIterator* gee_hash_set_real_iterator (GeeAbstractCollection* base); @@ -541,8 +248,7 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashSet* set); -static GType gee_hash_set_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashSetIterator, g_object_unref) +static GType gee_hash_set_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_hash_set_real_add (GeeAbstractCollection* base, gconstpointer key); static GeeHashSetNode* gee_hash_set_node_new (gpointer k, @@ -573,7 +279,6 @@ GDestroyNotify g_destroy_func, GeeHashSetIterator* iter); static gboolean gee_hash_set_iterator_real_next (GeeIterator* base); -gboolean gee_iterator_has_next (GeeIterator* self); static gboolean gee_hash_set_iterator_real_has_next (GeeIterator* base); static gpointer gee_hash_set_iterator_real_get (GeeIterator* base); static void gee_hash_set_iterator_real_remove (GeeIterator* base); @@ -584,8 +289,7 @@ guint forks, gint* result_length1); static void gee_hash_set_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_read_only (GeeIterator* self); -gboolean gee_iterator_get_valid (GeeIterator* self); +static GType gee_hash_set_iterator_get_type_once (void); static void _vala_gee_hash_set_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -595,8 +299,7 @@ const GValue * value, GParamSpec * pspec); static void gee_hash_set_finalize (GObject * obj); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); +static GType gee_hash_set_get_type_once (void); static void _vala_gee_hash_set_get_property (GObject * object, guint property_id, GValue * value, @@ -654,7 +357,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; if (hash_func == NULL) { - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GeeHashDataFunc _tmp2_; _tmp2_ = gee_functions_get_hash_func_for (g_type, &_tmp0_, &_tmp1_); @@ -667,7 +370,7 @@ hash_func_target_destroy_notify = _tmp1_; } if (equal_func == NULL) { - void* _tmp3_ = NULL; + gpointer _tmp3_ = NULL; GDestroyNotify _tmp4_ = NULL; GeeEqualDataFunc _tmp5_; _tmp5_ = gee_functions_get_equal_func_for (g_type, &_tmp3_, &_tmp4_); @@ -740,7 +443,7 @@ return self ? gee_functions_equal_data_func_closure_ref (self) : NULL; } -G_GNUC_INTERNAL GeeHashSet* + G_GNUC_INTERNAL GeeHashSet* gee_hash_set_construct_with_closures (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -775,7 +478,7 @@ return self; } -G_GNUC_INTERNAL GeeHashSet* + G_GNUC_INTERNAL GeeHashSet* gee_hash_set_new_with_closures (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -1907,18 +1610,26 @@ } static GType +gee_hash_set_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashSetIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_set_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashSetIterator), 0, (GInstanceInitFunc) gee_hash_set_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_hash_set_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_hash_set_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_hash_set_iterator_type_id; + gee_hash_set_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeHashSetIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_hash_set_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_hash_set_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeHashSetIterator_private_offset = g_type_add_instance_private (gee_hash_set_iterator_type_id, sizeof (GeeHashSetIteratorPrivate)); + return gee_hash_set_iterator_type_id; +} + +static GType gee_hash_set_iterator_get_type (void) { static volatile gsize gee_hash_set_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_set_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashSetIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_set_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashSetIterator), 0, (GInstanceInitFunc) gee_hash_set_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_hash_set_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_hash_set_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_hash_set_iterator_type_id; - gee_hash_set_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeHashSetIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_hash_set_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_hash_set_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeHashSetIterator_private_offset = g_type_add_instance_private (gee_hash_set_iterator_type_id, sizeof (GeeHashSetIteratorPrivate)); + gee_hash_set_iterator_type_id = gee_hash_set_iterator_get_type_once (); g_once_init_leave (&gee_hash_set_iterator_type_id__volatile, gee_hash_set_iterator_type_id); } return gee_hash_set_iterator_type_id__volatile; @@ -2031,21 +1742,29 @@ /** * Hash table implementation of the {@link Set} interface. * - * This implementation is better fit for highly heterogenous values. + * This implementation is better fit for highly heterogeneous values. * In case of high value hashes redundancy or higher amount of data prefer using * tree implementation like {@link TreeSet}. * * @see TreeSet */ +static GType +gee_hash_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeHashSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashSet), 0, (GInstanceInitFunc) gee_hash_set_instance_init, NULL }; + GType gee_hash_set_type_id; + gee_hash_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SET, "GeeHashSet", &g_define_type_info, 0); + GeeHashSet_private_offset = g_type_add_instance_private (gee_hash_set_type_id, sizeof (GeeHashSetPrivate)); + return gee_hash_set_type_id; +} + GType gee_hash_set_get_type (void) { static volatile gsize gee_hash_set_type_id__volatile = 0; if (g_once_init_enter (&gee_hash_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeHashSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_hash_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeHashSet), 0, (GInstanceInitFunc) gee_hash_set_instance_init, NULL }; GType gee_hash_set_type_id; - gee_hash_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_SET, "GeeHashSet", &g_define_type_info, 0); - GeeHashSet_private_offset = g_type_add_instance_private (gee_hash_set_type_id, sizeof (GeeHashSetPrivate)); + gee_hash_set_type_id = gee_hash_set_get_type_once (); g_once_init_leave (&gee_hash_set_type_id__volatile, gee_hash_set_type_id); } return gee_hash_set_type_id__volatile; @@ -2111,7 +1830,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/hashset.vala libgee-0.8-0.20.4/gee/hashset.vala --- libgee-0.8-0.20.3/gee/hashset.vala 2016-09-29 13:30:01.000000000 +0000 +++ libgee-0.8-0.20.4/gee/hashset.vala 2021-03-17 11:24:00.000000000 +0000 @@ -67,7 +67,7 @@ /** * Hash table implementation of the {@link Set} interface. * - * This implementation is better fit for highly heterogenous values. + * This implementation is better fit for highly heterogeneous values. * In case of high value hashes redundancy or higher amount of data prefer using * tree implementation like {@link TreeSet}. * diff -Nru libgee-0.8-0.20.3/gee/hazardpointer.c libgee-0.8-0.20.4/gee/hazardpointer.c --- libgee-0.8-0.20.3/gee/hazardpointer.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/hazardpointer.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* hazardpointer.c generated by valac 0.46.6, the Vala compiler +/* hazardpointer.c generated by valac 0.52.0, the Vala compiler * generated from hazardpointer.vala, do not modify */ /* hazardpointer.vala @@ -23,271 +23,25 @@ * Maciej Piechotka */ -#include +#include "gee.h" #include +#include #include #include -typedef struct _GeeHazardPointer GeeHazardPointer; typedef struct _GeeHazardPointerNode GeeHazardPointerNode; -typedef enum { - GEE_HAZARD_POINTER_POLICY_DEFAULT, - GEE_HAZARD_POINTER_POLICY_THREAD_EXIT, - GEE_HAZARD_POINTER_POLICY_TRY_FREE, - GEE_HAZARD_POINTER_POLICY_FREE, - GEE_HAZARD_POINTER_POLICY_TRY_RELEASE, - GEE_HAZARD_POINTER_POLICY_RELEASE -} GeeHazardPointerPolicy; - -#define GEE_HAZARD_POINTER_TYPE_POLICY (gee_hazard_pointer_policy_get_type ()) - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - -#define GEE_TYPE_ABSTRACT_LIST (gee_abstract_list_get_type ()) -#define GEE_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractList)) -#define GEE_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) -#define GEE_IS_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_IS_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_ABSTRACT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) - -typedef struct _GeeAbstractList GeeAbstractList; -typedef struct _GeeAbstractListClass GeeAbstractListClass; - -#define GEE_TYPE_ABSTRACT_BIDIR_LIST (gee_abstract_bidir_list_get_type ()) -#define GEE_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirList)) -#define GEE_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) -#define GEE_IS_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_IS_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_ABSTRACT_BIDIR_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) - -typedef struct _GeeAbstractBidirList GeeAbstractBidirList; -typedef struct _GeeAbstractBidirListClass GeeAbstractBidirListClass; - -#define GEE_TYPE_ARRAY_LIST (gee_array_list_get_type ()) -#define GEE_ARRAY_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ARRAY_LIST, GeeArrayList)) -#define GEE_ARRAY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ARRAY_LIST, GeeArrayListClass)) -#define GEE_IS_ARRAY_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ARRAY_LIST)) -#define GEE_IS_ARRAY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ARRAY_LIST)) -#define GEE_ARRAY_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ARRAY_LIST, GeeArrayListClass)) - -typedef struct _GeeArrayList GeeArrayList; -typedef struct _GeeArrayListClass GeeArrayListClass; typedef struct _GeeHazardPointerFreeNode GeeHazardPointerFreeNode; - -#define GEE_TYPE_QUEUE (gee_queue_get_type ()) -#define GEE_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_QUEUE, GeeQueue)) -#define GEE_IS_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_QUEUE)) -#define GEE_QUEUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_QUEUE, GeeQueueIface)) - -typedef struct _GeeQueue GeeQueue; -typedef struct _GeeQueueIface GeeQueueIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -typedef enum { - GEE_HAZARD_POINTER_RELEASE_POLICY_HELPER_THREAD, - GEE_HAZARD_POINTER_RELEASE_POLICY_MAIN_LOOP -} GeeHazardPointerReleasePolicy; - -#define GEE_HAZARD_POINTER_TYPE_RELEASE_POLICY (gee_hazard_pointer_release_policy_get_type ()) -typedef struct _GeeHazardPointerContext GeeHazardPointerContext; -#define _gee_hazard_pointer_context_free0(var) ((var == NULL) ? NULL : (var = (gee_hazard_pointer_context_free (var), NULL))) #define _g_thread_unref0(var) ((var == NULL) ? NULL : (var = (g_thread_unref (var), NULL))) -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); -#define _t_destroy_func0(var) (((var == NULL) || (t_destroy_func == NULL)) ? NULL : (var = (t_destroy_func (var), NULL))) - -#define GEE_TYPE_LINKED_LIST (gee_linked_list_get_type ()) -#define GEE_LINKED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LINKED_LIST, GeeLinkedList)) -#define GEE_LINKED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LINKED_LIST, GeeLinkedListClass)) -#define GEE_IS_LINKED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LINKED_LIST)) -#define GEE_IS_LINKED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LINKED_LIST)) -#define GEE_LINKED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LINKED_LIST, GeeLinkedListClass)) - -typedef struct _GeeLinkedList GeeLinkedList; -typedef struct _GeeLinkedListClass GeeLinkedListClass; +#define _gee_hazard_pointer_context_free0(var) ((var == NULL) ? NULL : (var = (gee_hazard_pointer_context_free (var), NULL))) typedef struct _Block10Data Block10Data; -#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL))) #define _gee_hazard_pointer_free0(var) ((var == NULL) ? NULL : (var = (gee_hazard_pointer_free (var), NULL))) -typedef guint (*GeeHashDataFunc) (gconstpointer v, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; - -#define GEE_TYPE_HASH_SET (gee_hash_set_get_type ()) -#define GEE_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_SET, GeeHashSet)) -#define GEE_HASH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_SET, GeeHashSetClass)) -#define GEE_IS_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_SET)) -#define GEE_IS_HASH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_SET)) -#define GEE_HASH_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_SET, GeeHashSetClass)) - -typedef struct _GeeHashSet GeeHashSet; -typedef struct _GeeHashSetClass GeeHashSetClass; #define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL))) #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeHazardPointer { - GeeHazardPointerNode* _node; -}; - -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeQueueIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeQueue* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeQueue* self); - GDestroyNotify (*get_g_destroy_func) (GeeQueue* self); - gboolean (*offer) (GeeQueue* self, gconstpointer element); - gpointer (*peek) (GeeQueue* self); - gpointer (*poll) (GeeQueue* self); - gint (*drain) (GeeQueue* self, GeeCollection* recipient, gint amount); - gint (*get_capacity) (GeeQueue* self); - gint (*get_remaining_capacity) (GeeQueue* self); - gboolean (*get_is_full) (GeeQueue* self); -}; - -struct _GeeHazardPointerContext { - GeeHazardPointerContext* _parent; - GeeArrayList* _to_free; - GeeHazardPointerPolicy* _policy; -}; - struct _Block10Data { int _ref_count_; GeeCollection* to_free; @@ -325,77 +79,19 @@ GStaticPrivate gee_hazard_pointer_context__root_context = G_STATIC_PRIVATE_INIT; static guint gee_hazard_pointer_context_THRESHOLD = (guint) 10; -void gee_hazard_pointer_free (GeeHazardPointer * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHazardPointer, gee_hazard_pointer_free) -G_GNUC_INTERNAL void gee_hazard_pointer_node_free (GeeHazardPointerNode * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHazardPointerNode, gee_hazard_pointer_node_free) static void gee_hazard_pointer_instance_init (GeeHazardPointer * self); -G_GNUC_INTERNAL void gee_hazard_pointer_node_release (GeeHazardPointerNode* self); -GType gee_hazard_pointer_policy_get_type (void) G_GNUC_CONST; -gboolean gee_hazard_pointer_policy_is_concrete (GeeHazardPointerPolicy self); -gboolean gee_hazard_pointer_policy_is_blocking (GeeHazardPointerPolicy self); -gboolean gee_hazard_pointer_policy_is_safe (GeeHazardPointerPolicy self); -GeeHazardPointerPolicy gee_hazard_pointer_policy_to_concrete (GeeHazardPointerPolicy self); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_abstract_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractList, g_object_unref) -GType gee_abstract_bidir_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirList, g_object_unref) -GType gee_array_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeArrayList, g_object_unref) -G_GNUC_INTERNAL void gee_hazard_pointer_free_node_free (GeeHazardPointerFreeNode * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHazardPointerFreeNode, gee_hazard_pointer_free_node_free) -G_GNUC_INTERNAL gboolean gee_hazard_pointer_policy_perform (GeeHazardPointerPolicy self, + G_GNUC_INTERNAL void gee_hazard_pointer_node_free (GeeHazardPointerNode * self); + G_GNUC_INTERNAL void gee_hazard_pointer_node_release (GeeHazardPointerNode* self); + G_GNUC_INTERNAL void gee_hazard_pointer_free_node_free (GeeHazardPointerFreeNode * self); + G_GNUC_INTERNAL gboolean gee_hazard_pointer_policy_perform (GeeHazardPointerPolicy self, GeeArrayList* * to_free); -G_GNUC_INTERNAL gboolean gee_hazard_pointer_try_free (GeeArrayList* to_free); -G_GNUC_INTERNAL void gee_hazard_pointer_release_policy_ensure_start (void); -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_queue_get_type (void) G_GNUC_CONST; -gboolean gee_queue_offer (GeeQueue* self, - gconstpointer element); -GType gee_hazard_pointer_release_policy_get_type (void) G_GNUC_CONST; + G_GNUC_INTERNAL gboolean gee_hazard_pointer_try_free (GeeArrayList* to_free); + G_GNUC_INTERNAL void gee_hazard_pointer_release_policy_ensure_start (void); static void gee_hazard_pointer_release_policy_start (GeeHazardPointerReleasePolicy _self_); static gboolean ___lambda54_ (void); -void gee_hazard_pointer_context_free (GeeHazardPointerContext * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHazardPointerContext, gee_hazard_pointer_context_free) -GeeHazardPointerContext* gee_hazard_pointer_context_new (GeeHazardPointerPolicy* policy); static inline void gee_hazard_pointer_release_policy_pull_from_queue (GeeCollection* to_free, gboolean do_lock); -gboolean gee_collection_get_is_empty (GeeCollection* self); -void gee_hazard_pointer_context_try_free (GeeHazardPointerContext* self); static gpointer ____lambda54__gthread_func (gpointer self); -GeeArrayList* gee_array_list_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeArrayList* gee_array_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); static gboolean ___lambda56_ (void); static void gee_hazard_pointer_release_policy_swap (GType t_type, GBoxedCopyFunc t_dup_func, @@ -403,151 +99,34 @@ gpointer* a, gpointer* b); static gboolean ____lambda56__gsource_func (gpointer self); -GeeLinkedList* gee_linked_list_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeLinkedList* gee_linked_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GType gee_linked_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLinkedList, g_object_unref) static Block10Data* block10_data_ref (Block10Data* _data10_); static void block10_data_unref (void * _userdata_); -gint gee_queue_drain (GeeQueue* self, - GeeCollection* recipient, - gint amount); -gboolean gee_traversable_foreach (GeeTraversable* self, - GeeForallFunc f, - gpointer f_target); static gboolean ___lambda55_ (Block10Data* _data10_, GeeArrayList* x); -gboolean gee_collection_add_all (GeeCollection* self, - GeeCollection* collection); static gboolean ____lambda55__gee_forall_func (gpointer g, gpointer self); -GeeHazardPointer* gee_hazard_pointer_new (gconstpointer* ptr); -G_GNUC_INTERNAL GeeHazardPointerNode* gee_hazard_pointer_acquire (void); -G_GNUC_INTERNAL void gee_hazard_pointer_node_set (GeeHazardPointerNode* self, + G_GNUC_INTERNAL GeeHazardPointerNode* gee_hazard_pointer_acquire (void); + G_GNUC_INTERNAL void gee_hazard_pointer_node_set (GeeHazardPointerNode* self, void* ptr); -G_GNUC_INTERNAL GeeHazardPointer* gee_hazard_pointer_new_from_node (GeeHazardPointerNode* node); -GeeHazardPointer* gee_hazard_pointer_get_hazard_pointer (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer** aptr, - gsize mask, - gsize* mask_out); -gpointer gee_hazard_pointer_get_pointer (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer** aptr, - gsize mask, - gsize* mask_out); -GeeHazardPointer* gee_hazard_pointer_exchange_hazard_pointer (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer** aptr, - gpointer new_ptr, - gsize mask, - gsize new_mask, - gsize* old_mask); -void gee_hazard_pointer_set_pointer (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer** aptr, - gpointer new_ptr, - gsize mask, - gsize new_mask); -void gee_hazard_pointer_release (GeeHazardPointer* self, - GDestroyNotify notify); -gpointer gee_hazard_pointer_exchange_pointer (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer** aptr, - gpointer new_ptr, - gsize mask, - gsize new_mask, - gsize* old_mask); -gconstpointer gee_hazard_pointer_get (GeeHazardPointer* self, - gboolean other_thread); -gboolean gee_hazard_pointer_compare_and_exchange_pointer (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer** aptr, - gconstpointer old_ptr, - gpointer _new_ptr, - gsize mask, - gsize old_mask, - gsize new_mask); -G_GNUC_INTERNAL GeeHazardPointerContext* gee_hazard_pointer_context_get_current_context (void); -G_GNUC_INTERNAL void gee_hazard_pointer_context_release_ptr (GeeHazardPointerContext* self, + G_GNUC_INTERNAL GeeHazardPointer* gee_hazard_pointer_new_from_node (GeeHazardPointerNode* node); + G_GNUC_INTERNAL GeeHazardPointerContext* gee_hazard_pointer_context_get_current_context (void); + G_GNUC_INTERNAL void gee_hazard_pointer_context_release_ptr (GeeHazardPointerContext* self, void* ptr, GDestroyNotify notify); -G_GNUC_INTERNAL void* gee_hazard_pointer_node_get (GeeHazardPointerNode* self, + G_GNUC_INTERNAL void* gee_hazard_pointer_node_get (GeeHazardPointerNode* self, gboolean safe); -void gee_hazard_pointer_set_default_policy (GeeHazardPointerPolicy policy); -void gee_hazard_pointer_set_thread_exit_policy (GeeHazardPointerPolicy policy); -gboolean gee_hazard_pointer_set_release_policy (GeeHazardPointerReleasePolicy policy); -G_GNUC_INTERNAL GeeHazardPointerNode* gee_hazard_pointer_get_head (void); -G_GNUC_INTERNAL GeeHazardPointerNode* gee_hazard_pointer_node_get_next (GeeHazardPointerNode* self); -G_GNUC_INTERNAL gboolean gee_hazard_pointer_node_activate (GeeHazardPointerNode* self); -G_GNUC_INTERNAL GeeHazardPointerNode* gee_hazard_pointer_node_new (void); -G_GNUC_INTERNAL void gee_hazard_pointer_node_set_next (GeeHazardPointerNode* self, + G_GNUC_INTERNAL GeeHazardPointerNode* gee_hazard_pointer_get_head (void); + G_GNUC_INTERNAL GeeHazardPointerNode* gee_hazard_pointer_node_get_next (GeeHazardPointerNode* self); + G_GNUC_INTERNAL gboolean gee_hazard_pointer_node_activate (GeeHazardPointerNode* self); + G_GNUC_INTERNAL GeeHazardPointerNode* gee_hazard_pointer_node_new (void); + G_GNUC_INTERNAL void gee_hazard_pointer_node_set_next (GeeHazardPointerNode* self, GeeHazardPointerNode* next); -GeeHashSet* gee_hash_set_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GDestroyNotify hash_func_target_destroy_notify, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeHashSet* gee_hash_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GDestroyNotify hash_func_target_destroy_notify, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_hash_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashSet, g_object_unref) -gboolean gee_collection_add (GeeCollection* self, - gconstpointer item); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); -gpointer gee_abstract_list_get (GeeAbstractList* self, - gint index); -gboolean gee_collection_contains (GeeCollection* self, - gconstpointer item); -gpointer gee_abstract_list_remove_at (GeeAbstractList* self, - gint index); -void gee_abstract_list_set (GeeAbstractList* self, - gint index, - gconstpointer item); static void gee_hazard_pointer_context_instance_init (GeeHazardPointerContext * self); -gboolean gee_array_list_add_all (GeeArrayList* self, - GeeCollection* collection); static GeeHazardPointerPolicy* _gee_hazard_pointer_policy_dup (GeeHazardPointerPolicy* self); -void gee_hazard_pointer_context_free_all (GeeHazardPointerContext* self); -void gee_hazard_pointer_context_try_release (GeeHazardPointerContext* self); -void gee_hazard_pointer_context_release (GeeHazardPointerContext* self); -G_GNUC_INTERNAL GeeHazardPointerFreeNode* gee_hazard_pointer_free_node_new (void); -gboolean gee_abstract_collection_add (GeeAbstractCollection* self, - gconstpointer item); + G_GNUC_INTERNAL GeeHazardPointerFreeNode* gee_hazard_pointer_free_node_new (void); static void gee_hazard_pointer_free_node_instance_init (GeeHazardPointerFreeNode * self); static void gee_hazard_pointer_node_instance_init (GeeHazardPointerNode * self); -G_GNUC_INTERNAL gboolean gee_hazard_pointer_node_is_active (GeeHazardPointerNode* self); + G_GNUC_INTERNAL gboolean gee_hazard_pointer_node_is_active (GeeHazardPointerNode* self); /** * Policy determines what happens on exit from Context. @@ -653,7 +232,6 @@ GeeHazardPointerPolicy gee_hazard_pointer_policy_to_concrete (GeeHazardPointerPolicy self) { - GeeHazardPointerPolicy _tmp5_; GeeHazardPointerPolicy result = 0; switch (self) { case GEE_HAZARD_POINTER_POLICY_TRY_FREE: @@ -692,8 +270,6 @@ g_assert_not_reached (); } } - _tmp5_ = result; - _vala_warn_if_fail (gee_hazard_pointer_policy_is_concrete (_tmp5_), "result.is_concrete ()"); } /** @@ -701,7 +277,7 @@ * @param to_free List containing elements to free. * @return Non-empty list of not freed elements or ``null`` if all elements have been disposed. */ -G_GNUC_INTERNAL gboolean + G_GNUC_INTERNAL gboolean gee_hazard_pointer_policy_perform (GeeHazardPointerPolicy self, GeeArrayList* * to_free) { @@ -770,14 +346,22 @@ return result; } +static GType +gee_hazard_pointer_policy_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_HAZARD_POINTER_POLICY_DEFAULT, "GEE_HAZARD_POINTER_POLICY_DEFAULT", "default"}, {GEE_HAZARD_POINTER_POLICY_THREAD_EXIT, "GEE_HAZARD_POINTER_POLICY_THREAD_EXIT", "thread-exit"}, {GEE_HAZARD_POINTER_POLICY_TRY_FREE, "GEE_HAZARD_POINTER_POLICY_TRY_FREE", "try-free"}, {GEE_HAZARD_POINTER_POLICY_FREE, "GEE_HAZARD_POINTER_POLICY_FREE", "free"}, {GEE_HAZARD_POINTER_POLICY_TRY_RELEASE, "GEE_HAZARD_POINTER_POLICY_TRY_RELEASE", "try-release"}, {GEE_HAZARD_POINTER_POLICY_RELEASE, "GEE_HAZARD_POINTER_POLICY_RELEASE", "release"}, {0, NULL, NULL}}; + GType gee_hazard_pointer_policy_type_id; + gee_hazard_pointer_policy_type_id = g_enum_register_static ("GeeHazardPointerPolicy", values); + return gee_hazard_pointer_policy_type_id; +} + GType gee_hazard_pointer_policy_get_type (void) { static volatile gsize gee_hazard_pointer_policy_type_id__volatile = 0; if (g_once_init_enter (&gee_hazard_pointer_policy_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_HAZARD_POINTER_POLICY_DEFAULT, "GEE_HAZARD_POINTER_POLICY_DEFAULT", "default"}, {GEE_HAZARD_POINTER_POLICY_THREAD_EXIT, "GEE_HAZARD_POINTER_POLICY_THREAD_EXIT", "thread-exit"}, {GEE_HAZARD_POINTER_POLICY_TRY_FREE, "GEE_HAZARD_POINTER_POLICY_TRY_FREE", "try-free"}, {GEE_HAZARD_POINTER_POLICY_FREE, "GEE_HAZARD_POINTER_POLICY_FREE", "free"}, {GEE_HAZARD_POINTER_POLICY_TRY_RELEASE, "GEE_HAZARD_POINTER_POLICY_TRY_RELEASE", "try-release"}, {GEE_HAZARD_POINTER_POLICY_RELEASE, "GEE_HAZARD_POINTER_POLICY_RELEASE", "release"}, {0, NULL, NULL}}; GType gee_hazard_pointer_policy_type_id; - gee_hazard_pointer_policy_type_id = g_enum_register_static ("GeeHazardPointerPolicy", values); + gee_hazard_pointer_policy_type_id = gee_hazard_pointer_policy_get_type_once (); g_once_init_leave (&gee_hazard_pointer_policy_type_id__volatile, gee_hazard_pointer_policy_type_id); } return gee_hazard_pointer_policy_type_id__volatile; @@ -826,7 +410,6 @@ g_usleep ((gulong) 100000); } } - _gee_hazard_pointer_context_free0 (ctx); } static gpointer @@ -911,19 +494,19 @@ tmp = _tmp0_; _tmp1_ = *b; *b = NULL; - _t_destroy_func0 (*a); + (((*a) == NULL) || (t_destroy_func == NULL)) ? NULL : (*a = (t_destroy_func (*a), NULL)); *a = _tmp1_; _tmp2_ = tmp; tmp = NULL; - _t_destroy_func0 (*b); + (((*b) == NULL) || (t_destroy_func == NULL)) ? NULL : (*b = (t_destroy_func (*b), NULL)); *b = _tmp2_; - _t_destroy_func0 (tmp); + ((tmp == NULL) || (t_destroy_func == NULL)) ? NULL : (tmp = (t_destroy_func (tmp), NULL)); } /** * Ensures that helper methods are started. */ -G_GNUC_INTERNAL inline void + G_GNUC_INTERNAL inline void gee_hazard_pointer_release_policy_ensure_start (void) { gint policy = 0; @@ -1035,14 +618,22 @@ _data10_ = NULL; } +static GType +gee_hazard_pointer_release_policy_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_HAZARD_POINTER_RELEASE_POLICY_HELPER_THREAD, "GEE_HAZARD_POINTER_RELEASE_POLICY_HELPER_THREAD", "helper-thread"}, {GEE_HAZARD_POINTER_RELEASE_POLICY_MAIN_LOOP, "GEE_HAZARD_POINTER_RELEASE_POLICY_MAIN_LOOP", "main-loop"}, {0, NULL, NULL}}; + GType gee_hazard_pointer_release_policy_type_id; + gee_hazard_pointer_release_policy_type_id = g_enum_register_static ("GeeHazardPointerReleasePolicy", values); + return gee_hazard_pointer_release_policy_type_id; +} + GType gee_hazard_pointer_release_policy_get_type (void) { static volatile gsize gee_hazard_pointer_release_policy_type_id__volatile = 0; if (g_once_init_enter (&gee_hazard_pointer_release_policy_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_HAZARD_POINTER_RELEASE_POLICY_HELPER_THREAD, "GEE_HAZARD_POINTER_RELEASE_POLICY_HELPER_THREAD", "helper-thread"}, {GEE_HAZARD_POINTER_RELEASE_POLICY_MAIN_LOOP, "GEE_HAZARD_POINTER_RELEASE_POLICY_MAIN_LOOP", "main-loop"}, {0, NULL, NULL}}; GType gee_hazard_pointer_release_policy_type_id; - gee_hazard_pointer_release_policy_type_id = g_enum_register_static ("GeeHazardPointerReleasePolicy", values); + gee_hazard_pointer_release_policy_type_id = gee_hazard_pointer_release_policy_get_type_once (); g_once_init_leave (&gee_hazard_pointer_release_policy_type_id__volatile, gee_hazard_pointer_release_policy_type_id); } return gee_hazard_pointer_release_policy_type_id__volatile; @@ -1071,7 +662,7 @@ /** * Create a hazard pointer from Node. */ -G_GNUC_INTERNAL GeeHazardPointer* + G_GNUC_INTERNAL GeeHazardPointer* gee_hazard_pointer_new_from_node (GeeHazardPointerNode* node) { GeeHazardPointer* self; @@ -1161,9 +752,6 @@ } return result; } - if (mask_out) { - *mask_out = _vala_mask_out; - } } /** @@ -1240,7 +828,7 @@ } /** - * Exchange objects safly. + * Exchange objects safely. * * @param aptr Atomic pointer. * @param new_ptr New value @@ -1330,7 +918,7 @@ _tmp15_ = node; _tmp16_ = gee_hazard_pointer_new_from_node (_tmp15_); result = _tmp16_; - _g_destroy_func0 (new_ptr); + ((new_ptr == NULL) || (g_destroy_func == NULL)) ? NULL : (new_ptr = (g_destroy_func (new_ptr), NULL)); if (old_mask) { *old_mask = _vala_old_mask; } @@ -1340,16 +928,12 @@ _tmp17_ = node; gee_hazard_pointer_node_release (_tmp17_); result = NULL; - _g_destroy_func0 (new_ptr); + ((new_ptr == NULL) || (g_destroy_func == NULL)) ? NULL : (new_ptr = (g_destroy_func (new_ptr), NULL)); if (old_mask) { *old_mask = _vala_old_mask; } return result; } - _g_destroy_func0 (new_ptr); - if (old_mask) { - *old_mask = _vala_old_mask; - } } /** @@ -1394,11 +978,11 @@ } } _gee_hazard_pointer_free0 (ptr); - _g_destroy_func0 (new_ptr); + ((new_ptr == NULL) || (g_destroy_func == NULL)) ? NULL : (new_ptr = (g_destroy_func (new_ptr), NULL)); } /** - * Exchange objects safly. + * Exchange objects safely. * * @param aptr Atomic pointer. * @param new_ptr New value @@ -1445,7 +1029,7 @@ rptr = _tmp7_; result = rptr; _gee_hazard_pointer_free0 (ptr); - _g_destroy_func0 (new_ptr); + ((new_ptr == NULL) || (g_destroy_func == NULL)) ? NULL : (new_ptr = (g_destroy_func (new_ptr), NULL)); if (old_mask) { *old_mask = _vala_old_mask; } @@ -1519,12 +1103,12 @@ gconstpointer* _tmp10_; _tmp10_ = new_ptr; new_ptr = NULL; - _g_destroy_func0 (_new_ptr); + ((_new_ptr == NULL) || (g_destroy_func == NULL)) ? NULL : (_new_ptr = (g_destroy_func (_new_ptr), NULL)); _new_ptr = _tmp10_; } } result = success; - _g_destroy_func0 (_new_ptr); + ((_new_ptr == NULL) || (g_destroy_func == NULL)) ? NULL : (_new_ptr = (g_destroy_func (_new_ptr), NULL)); return result; } @@ -1592,7 +1176,7 @@ { _vala_return_if_fail (gee_hazard_pointer_policy_is_concrete (policy), "policy.is_concrete ()"); if (gee_hazard_pointer_policy_is_blocking (policy)) { - g_warning ("hazardpointer.vala:252: Setting blocking defautl Gee.HazardPointer.Pol" \ + g_warning ("hazardpointer.vala:252: Setting blocking default Gee.HazardPointer.Pol" \ "icy (there may be a deadlock).\n"); } g_atomic_int_set ((volatile gint *) (&gee_hazard_pointer__default_policy), (gint) policy); @@ -1653,7 +1237,7 @@ * * @return new hazard pointer node. */ -G_GNUC_INTERNAL inline GeeHazardPointerNode* + G_GNUC_INTERNAL inline GeeHazardPointerNode* gee_hazard_pointer_acquire (void) { GeeHazardPointerNode* node = NULL; @@ -1731,7 +1315,7 @@ * * @return ``true`` if list is empty. */ -G_GNUC_INTERNAL gboolean + G_GNUC_INTERNAL gboolean gee_hazard_pointer_try_free (GeeArrayList* to_free) { GeeCollection* used = NULL; @@ -1857,7 +1441,7 @@ * Gets head of hazard pointers. * @return Hazard pointer head. */ -G_GNUC_INTERNAL GeeHazardPointerNode* + G_GNUC_INTERNAL GeeHazardPointerNode* gee_hazard_pointer_get_head (void) { void* _tmp0_; @@ -1942,7 +1526,7 @@ } /** - * Ensure that whole context is freed. Plase note that it might block. + * Ensure that whole context is freed. Please note that it might block. */ void gee_hazard_pointer_context_free_all (GeeHazardPointerContext* self) @@ -1984,7 +1568,7 @@ } /** - * Pushes the current context to releaser. Plase note that it might block. + * Pushes the current context to releaser. Please note that it might block. */ void gee_hazard_pointer_context_release (GeeHazardPointerContext* self) @@ -2010,7 +1594,7 @@ /** * Add pointer to freed array. */ -G_GNUC_INTERNAL inline void + G_GNUC_INTERNAL inline void gee_hazard_pointer_context_release_ptr (GeeHazardPointerContext* self, void* ptr, GDestroyNotify notify) @@ -2050,7 +1634,7 @@ /** * Gets current context. */ -G_GNUC_INTERNAL inline GeeHazardPointerContext* + G_GNUC_INTERNAL inline GeeHazardPointerContext* gee_hazard_pointer_context_get_current_context (void) { void* _tmp0_; @@ -2130,7 +1714,7 @@ g_slice_free (GeeHazardPointerContext, self); } -G_GNUC_INTERNAL GeeHazardPointerFreeNode* + G_GNUC_INTERNAL GeeHazardPointerFreeNode* gee_hazard_pointer_free_node_new (void) { GeeHazardPointerFreeNode* self; @@ -2144,13 +1728,13 @@ { } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_hazard_pointer_free_node_free (GeeHazardPointerFreeNode * self) { g_slice_free (GeeHazardPointerFreeNode, self); } -G_GNUC_INTERNAL GeeHazardPointerNode* + G_GNUC_INTERNAL GeeHazardPointerNode* gee_hazard_pointer_node_new (void) { GeeHazardPointerNode* self; @@ -2161,7 +1745,7 @@ return self; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_hazard_pointer_node_release (GeeHazardPointerNode* self) { g_return_if_fail (self != NULL); @@ -2169,7 +1753,7 @@ g_atomic_int_set ((volatile gint *) (&self->_active), 0); } -G_GNUC_INTERNAL inline gboolean + G_GNUC_INTERNAL inline gboolean gee_hazard_pointer_node_is_active (GeeHazardPointerNode* self) { gint _tmp0_; @@ -2180,7 +1764,7 @@ return result; } -G_GNUC_INTERNAL inline gboolean + G_GNUC_INTERNAL inline gboolean gee_hazard_pointer_node_activate (GeeHazardPointerNode* self) { gboolean _tmp0_; @@ -2191,7 +1775,7 @@ return result; } -G_GNUC_INTERNAL inline void + G_GNUC_INTERNAL inline void gee_hazard_pointer_node_set (GeeHazardPointerNode* self, void* ptr) { @@ -2199,7 +1783,7 @@ g_atomic_pointer_set ((volatile gpointer *) (&self->_hazard), ptr); } -G_GNUC_INTERNAL inline void* + G_GNUC_INTERNAL inline void* gee_hazard_pointer_node_get (GeeHazardPointerNode* self, gboolean safe) { @@ -2218,7 +1802,7 @@ } } -G_GNUC_INTERNAL inline GeeHazardPointerNode* + G_GNUC_INTERNAL inline GeeHazardPointerNode* gee_hazard_pointer_node_get_next (GeeHazardPointerNode* self) { void* _tmp0_; @@ -2229,7 +1813,7 @@ return result; } -G_GNUC_INTERNAL inline void + G_GNUC_INTERNAL inline void gee_hazard_pointer_node_set_next (GeeHazardPointerNode* self, GeeHazardPointerNode* next) { @@ -2242,7 +1826,7 @@ { } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_hazard_pointer_node_free (GeeHazardPointerNode * self) { GeeHazardPointerNode* _tmp0_; diff -Nru libgee-0.8-0.20.3/gee/hazardpointer.vala libgee-0.8-0.20.4/gee/hazardpointer.vala --- libgee-0.8-0.20.3/gee/hazardpointer.vala 2014-10-13 09:30:04.000000000 +0000 +++ libgee-0.8-0.20.4/gee/hazardpointer.vala 2021-03-17 11:24:00.000000000 +0000 @@ -118,7 +118,7 @@ } /** - * Exchange objects safly. + * Exchange objects safely. * * @param aptr Atomic pointer. * @param new_ptr New value @@ -173,7 +173,7 @@ } /** - * Exchange objects safly. + * Exchange objects safely. * * @param aptr Atomic pointer. * @param new_ptr New value @@ -249,7 +249,7 @@ */ public static void set_default_policy (Policy policy) requires (policy.is_concrete ()) { if (policy.is_blocking ()) - warning ("Setting blocking defautl Gee.HazardPointer.Policy (there may be a deadlock).\n"); + warning ("Setting blocking default Gee.HazardPointer.Policy (there may be a deadlock).\n"); AtomicInt.set(ref _default_policy, (int)policy); } @@ -303,7 +303,7 @@ TRY_FREE, /** * Goes through the free list and attempts to free un-freed elements - * untill all elements are freed. + * until all elements are freed. */ FREE, /** @@ -497,7 +497,7 @@ policy = AtomicInt.get (ref release_policy); if ((policy & (1 << (sizeof(int) * 8 - 1))) == 0) { _queue = new LinkedList> (); - // Hack to not lie about successfull setting policy + // Hack to not lie about successful setting policy policy = AtomicInt.add (ref release_policy, (int)(1 << (sizeof(int) * 8 - 1))); start ((ReleasePolicy) policy); } @@ -589,7 +589,7 @@ } /** - * Ensure that whole context is freed. Plase note that it might block. + * Ensure that whole context is freed. Please note that it might block. */ public void free_all () { while (HazardPointer.try_free (_to_free)) @@ -608,7 +608,7 @@ } /** - * Pushes the current context to releaser. Plase note that it might block. + * Pushes the current context to releaser. Please note that it might block. */ public void release () { _queue_mutex.lock (); diff -Nru libgee-0.8-0.20.3/gee/iterable.c libgee-0.8-0.20.4/gee/iterable.c --- libgee-0.8-0.20.3/gee/iterable.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/iterable.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* iterable.c generated by valac 0.46.6, the Vala compiler +/* iterable.c generated by valac 0.52.0, the Vala compiler * generated from iterable.vala, do not modify */ /* iterable.vala @@ -23,117 +23,11 @@ * Jürg Billeter */ +#include "gee.h" #include #include -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GeeIterator* gee_iterable_iterator (GeeIterable* self); +static GType gee_iterable_get_type_once (void); /** * Returns a {@link Iterator} that can be used for simple iteration over a @@ -145,8 +39,13 @@ GeeIterator* gee_iterable_iterator (GeeIterable* self) { + GeeIterableIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ITERABLE_GET_INTERFACE (self)->iterator (self); + _iface_ = GEE_ITERABLE_GET_INTERFACE (self); + if (_iface_->iterator) { + return _iface_->iterator (self); + } + return NULL; } static void @@ -158,16 +57,24 @@ /** * An object that can provide an {@link Iterator}. */ +static GType +gee_iterable_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeIterableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_iterable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_iterable_type_id; + gee_iterable_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeIterable", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_iterable_type_id, G_TYPE_OBJECT); + g_type_interface_add_prerequisite (gee_iterable_type_id, GEE_TYPE_TRAVERSABLE); + return gee_iterable_type_id; +} + GType gee_iterable_get_type (void) { static volatile gsize gee_iterable_type_id__volatile = 0; if (g_once_init_enter (&gee_iterable_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeIterableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_iterable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_iterable_type_id; - gee_iterable_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeIterable", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_iterable_type_id, G_TYPE_OBJECT); - g_type_interface_add_prerequisite (gee_iterable_type_id, GEE_TYPE_TRAVERSABLE); + gee_iterable_type_id = gee_iterable_get_type_once (); g_once_init_leave (&gee_iterable_type_id__volatile, gee_iterable_type_id); } return gee_iterable_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/iterator.c libgee-0.8-0.20.4/gee/iterator.c --- libgee-0.8-0.20.3/gee/iterator.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/iterator.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* iterator.c generated by valac 0.46.6, the Vala compiler +/* iterator.c generated by valac 0.52.0, the Vala compiler * generated from iterator.vala, do not modify */ /* iterator.vala @@ -27,50 +27,10 @@ * Didier 'Ptitjes Villevalois */ +#include "gee.h" #include #include -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); -typedef GeeLazy* (*GeeUnfoldFunc) (gpointer user_data); - #define GEE_TYPE_UNFOLD_ITERATOR (gee_unfold_iterator_get_type ()) #define GEE_UNFOLD_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_UNFOLD_ITERATOR, GeeUnfoldIterator)) #define GEE_UNFOLD_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_UNFOLD_ITERATOR, GeeUnfoldIteratorClass)) @@ -83,40 +43,6 @@ #define _gee_lazy_unref0(var) ((var == NULL) ? NULL : (var = (gee_lazy_unref (var), NULL))) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) typedef struct _Block11Data Block11Data; -#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL))) - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; struct _Block11Data { int _ref_count_; @@ -127,42 +53,14 @@ GeeIterator* iters; }; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterator_get_type (void) G_GNUC_CONST; -gboolean gee_iterator_next (GeeIterator* self); -gboolean gee_iterator_has_next (GeeIterator* self); -gpointer gee_iterator_get (GeeIterator* self); -void gee_iterator_remove (GeeIterator* self); -GeeIterator* gee_iterator_unfold (GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeUnfoldFunc f, - gpointer f_target, - GDestroyNotify f_target_destroy_notify, - GeeLazy* current); -G_GNUC_INTERNAL GeeUnfoldIterator* gee_unfold_iterator_new (GType g_type, + G_GNUC_INTERNAL GeeUnfoldIterator* gee_unfold_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeUnfoldFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify, GeeLazy* current); -G_GNUC_INTERNAL GeeUnfoldIterator* gee_unfold_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeUnfoldIterator* gee_unfold_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -170,27 +68,12 @@ gpointer func_target, GDestroyNotify func_target_destroy_notify, GeeLazy* current); -G_GNUC_INTERNAL GType gee_unfold_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeUnfoldIterator, g_object_unref) -GeeIterator* gee_iterator_concat (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeIterator* iters); + G_GNUC_INTERNAL GType gee_unfold_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static Block11Data* block11_data_ref (Block11Data* _data11_); static void block11_data_unref (void * _userdata_); -gboolean gee_iterator_get_valid (GeeIterator* self); static GeeLazy* __lambda7_ (Block11Data* _data11_); -GeeLazy* gee_lazy_new_from_value (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer item); -GeeLazy* gee_lazy_construct_from_value (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer item); static GeeLazy* ___lambda7__gee_unfold_func (gpointer self); -gboolean gee_iterator_get_read_only (GeeIterator* self); +static GType gee_iterator_get_type_once (void); /** * Advances to the next element in the iteration. @@ -200,8 +83,13 @@ gboolean gee_iterator_next (GeeIterator* self) { + GeeIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ITERATOR_GET_INTERFACE (self)->next (self); + _iface_ = GEE_ITERATOR_GET_INTERFACE (self); + if (_iface_->next) { + return _iface_->next (self); + } + return FALSE; } /** @@ -212,8 +100,13 @@ gboolean gee_iterator_has_next (GeeIterator* self) { + GeeIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ITERATOR_GET_INTERFACE (self)->has_next (self); + _iface_ = GEE_ITERATOR_GET_INTERFACE (self); + if (_iface_->has_next) { + return _iface_->has_next (self); + } + return FALSE; } /** @@ -224,8 +117,13 @@ gpointer gee_iterator_get (GeeIterator* self) { + GeeIteratorIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_ITERATOR_GET_INTERFACE (self)->get (self); + _iface_ = GEE_ITERATOR_GET_INTERFACE (self); + if (_iface_->get) { + return _iface_->get (self); + } + return NULL; } /** @@ -236,8 +134,12 @@ void gee_iterator_remove (GeeIterator* self) { + GeeIteratorIface* _iface_; g_return_if_fail (self != NULL); - GEE_ITERATOR_GET_INTERFACE (self)->remove (self); + _iface_ = GEE_ITERATOR_GET_INTERFACE (self); + if (_iface_->remove) { + _iface_->remove (self); + } } /** @@ -281,10 +183,10 @@ } /** - * Concatinate iterators. + * Concatenate iterators. * * @param iters Iterators of iterators - * @return Iterator containg values of each iterator + * @return Iterator containing values of each iterator */ static gpointer _g_object_ref0 (gpointer self) @@ -354,7 +256,7 @@ _tmp5_ = _tmp4_; _tmp6_ = gee_lazy_new_from_value (g_type, (GBoxedCopyFunc) g_dup_func, (GDestroyNotify) g_destroy_func, _tmp5_); _tmp7_ = _tmp6_; - _g_destroy_func0 (_tmp5_); + ((_tmp5_ == NULL) || (g_destroy_func == NULL)) ? NULL : (_tmp5_ = (g_destroy_func (_tmp5_), NULL)); result = _tmp7_; return result; } else { @@ -413,15 +315,25 @@ gboolean gee_iterator_get_valid (GeeIterator* self) { + GeeIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ITERATOR_GET_INTERFACE (self)->get_valid (self); + _iface_ = GEE_ITERATOR_GET_INTERFACE (self); + if (_iface_->get_valid) { + return _iface_->get_valid (self); + } + return FALSE; } gboolean gee_iterator_get_read_only (GeeIterator* self) { + GeeIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_ITERATOR_GET_INTERFACE (self)->get_read_only (self); + _iface_ = GEE_ITERATOR_GET_INTERFACE (self); + if (_iface_->get_read_only) { + return _iface_->get_read_only (self); + } + return FALSE; } static void @@ -429,12 +341,12 @@ gpointer iface_data) { /** - * Determines wheather the call to {@link get} is legal. It is false at the + * Determines whether the call to {@link get} is legal. It is false at the * beginning and after {@link remove} call and true otherwise. */ g_object_interface_install_property (iface, g_param_spec_boolean ("valid", "valid", "valid", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); /** - * Determines wheather the call to {@link remove} is legal assuming the + * Determines whether the call to {@link remove} is legal assuming the * iterator is valid. The value must not change in runtime hence the user * of iterator may cache it. */ @@ -457,16 +369,24 @@ * documentation states about the iterator 'out of track', 'invalid' or * 'in-between elements' this refers to the same concept. */ +static GType +gee_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeIteratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_iterator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_iterator_type_id; + gee_iterator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeIterator", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_iterator_type_id, G_TYPE_OBJECT); + g_type_interface_add_prerequisite (gee_iterator_type_id, GEE_TYPE_TRAVERSABLE); + return gee_iterator_type_id; +} + GType gee_iterator_get_type (void) { static volatile gsize gee_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeIteratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_iterator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_iterator_type_id; - gee_iterator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeIterator", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_iterator_type_id, G_TYPE_OBJECT); - g_type_interface_add_prerequisite (gee_iterator_type_id, GEE_TYPE_TRAVERSABLE); + gee_iterator_type_id = gee_iterator_get_type_once (); g_once_init_leave (&gee_iterator_type_id__volatile, gee_iterator_type_id); } return gee_iterator_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/iterator.vala libgee-0.8-0.20.4/gee/iterator.vala --- libgee-0.8-0.20.3/gee/iterator.vala 2014-08-05 06:27:46.000000000 +0000 +++ libgee-0.8-0.20.4/gee/iterator.vala 2021-03-17 11:24:00.000000000 +0000 @@ -70,13 +70,13 @@ public abstract void remove (); /** - * Determines wheather the call to {@link get} is legal. It is false at the + * Determines whether the call to {@link get} is legal. It is false at the * beginning and after {@link remove} call and true otherwise. */ public abstract bool valid { get; } /** - * Determines wheather the call to {@link remove} is legal assuming the + * Determines whether the call to {@link remove} is legal assuming the * iterator is valid. The value must not change in runtime hence the user * of iterator may cache it. */ @@ -94,10 +94,10 @@ } /** - * Concatinate iterators. + * Concatenate iterators. * * @param iters Iterators of iterators - * @return Iterator containg values of each iterator + * @return Iterator containing values of each iterator */ public static Iterator concat (Iterator> iters) { Iterator? current = null; diff -Nru libgee-0.8-0.20.3/gee/lazy.c libgee-0.8-0.20.4/gee/lazy.c --- libgee-0.8-0.20.3/gee/lazy.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/lazy.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* lazy.c generated by valac 0.46.6, the Vala compiler +/* lazy.c generated by valac 0.52.0, the Vala compiler * generated from lazy.vala, do not modify */ /* lazy.vala @@ -23,6 +23,7 @@ * Maciej Piechotka */ +#include "gee.h" #include #include #include @@ -30,32 +31,6 @@ #include #include -typedef gpointer (*GeeLazyFunc) (gpointer user_data); - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef struct _GeeLazyPrivate GeeLazyPrivate; -#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL))) - -#define GEE_TYPE_FUTURE (gee_future_get_type ()) -#define GEE_FUTURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_FUTURE, GeeFuture)) -#define GEE_IS_FUTURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_FUTURE)) -#define GEE_FUTURE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_FUTURE, GeeFutureIface)) - -typedef struct _GeeFuture GeeFuture; -typedef struct _GeeFutureIface GeeFutureIface; -typedef gpointer (*GeeFutureMapFunc) (gconstpointer value, gpointer user_data); -typedef gconstpointer (*GeeFutureLightMapFunc) (gconstpointer value, gpointer user_data); -typedef gpointer (*GeeFutureZipFunc) (gconstpointer a, gconstpointer b, gpointer user_data); -typedef GeeFuture* (*GeeFutureFlatMapFunc) (gconstpointer value, gpointer user_data); - #define GEE_LAZY_TYPE_FUTURE (gee_lazy_future_get_type ()) #define GEE_LAZY_FUTURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_LAZY_TYPE_FUTURE, GeeLazyFuture)) #define GEE_LAZY_FUTURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_LAZY_TYPE_FUTURE, GeeLazyFutureClass)) @@ -90,17 +65,6 @@ typedef struct _GeeLazyFutureWaitAsyncData GeeLazyFutureWaitAsyncData; typedef struct _GeeParamSpecLazy GeeParamSpecLazy; -struct _GeeLazy { - GTypeInstance parent_instance; - volatile int ref_count; - GeeLazyPrivate * priv; -}; - -struct _GeeLazyClass { - GTypeClass parent_class; - void (*finalize) (GeeLazy *self); -}; - struct _GeeLazyPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -111,30 +75,6 @@ gpointer _value; }; -typedef enum { - GEE_FUTURE_ERROR_ABANDON_PROMISE, - GEE_FUTURE_ERROR_EXCEPTION -} GeeFutureError; -#define GEE_FUTURE_ERROR gee_future_error_quark () -struct _GeeFutureIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeFuture* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeFuture* self); - GDestroyNotify (*get_g_destroy_func) (GeeFuture* self); - gconstpointer (*wait) (GeeFuture* self, GError** error); - gboolean (*wait_until) (GeeFuture* self, gint64 end_time, gconstpointer* value, GError** error); - void (*wait_async) (GeeFuture* self, GAsyncReadyCallback _callback_, gpointer _user_data_); - gconstpointer (*wait_finish) (GeeFuture* self, GAsyncResult* _res_, GError** error); - GeeFuture* (*map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); - GeeFuture* (*light_map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureLightMapFunc func, gpointer func_target); - GeeFuture* (*zip) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GType b_type, GBoxedCopyFunc b_dup_func, GDestroyNotify b_destroy_func, GeeFutureZipFunc zip_func, gpointer zip_func_target, GeeFuture* second); - GeeFuture* (*flat_map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureFlatMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); - gconstpointer (*get_value) (GeeFuture* self); - gboolean (*get_ready) (GeeFuture* self); - GError* (*get_exception) (GeeFuture* self); - GeeFuture* (*light_map_fixed) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureLightMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -}; - struct _GeeLazyFuture { GObject parent_instance; GeeLazyFuturePrivate * priv; @@ -174,12 +114,10 @@ GeeLazyFunc _tmp1_; gpointer _tmp1__target; GeeLazyFutureState _tmp2_; - GeeFutureSourceFuncArrayElement* _tmp3_; - gint _tmp3__length1; - GeeFutureSourceFuncArrayElement _tmp4_; - GeeLazy* _tmp5_; + GeeFutureSourceFuncArrayElement _tmp3_; + GeeLazy* _tmp4_; + gconstpointer _tmp5_; gconstpointer _tmp6_; - gconstpointer _tmp7_; }; struct _GeeParamSpecLazy { @@ -192,48 +130,6 @@ static gpointer gee_lazy_future_parent_class = NULL; static GeeFutureIface * gee_lazy_future_gee_future_parent_iface = NULL; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GeeLazy* gee_lazy_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeLazyFunc func, - gpointer func_target, - GDestroyNotify func_target_destroy_notify); -GeeLazy* gee_lazy_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeLazyFunc func, - gpointer func_target, - GDestroyNotify func_target_destroy_notify); -GeeLazy* gee_lazy_new_from_value (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer item); -GeeLazy* gee_lazy_construct_from_value (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer item); -void gee_lazy_eval (GeeLazy* self); -gpointer gee_lazy_get (GeeLazy* self); -gconstpointer gee_lazy_get_value (GeeLazy* self); -GQuark gee_future_error_quark (void); -GType gee_future_get_type (void) G_GNUC_CONST; -GeeFuture* gee_lazy_get_future (GeeLazy* self); static GeeLazyFuture* gee_lazy_future_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -243,15 +139,14 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeLazy* lazy); -static GType gee_lazy_future_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazyFuture, g_object_unref) -static GType gee_lazy_future_state_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_future_source_func_array_element_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_GNUC_INTERNAL GeeFutureSourceFuncArrayElement* gee_future_source_func_array_element_dup (const GeeFutureSourceFuncArrayElement* self); -G_GNUC_INTERNAL void gee_future_source_func_array_element_free (GeeFutureSourceFuncArrayElement* self); -G_GNUC_INTERNAL void gee_future_source_func_array_element_copy (const GeeFutureSourceFuncArrayElement* self, +static GType gee_lazy_future_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +static GType gee_lazy_future_state_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_future_source_func_array_element_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFutureSourceFuncArrayElement* gee_future_source_func_array_element_dup (const GeeFutureSourceFuncArrayElement* self); + G_GNUC_INTERNAL void gee_future_source_func_array_element_free (GeeFutureSourceFuncArrayElement* self); + G_GNUC_INTERNAL void gee_future_source_func_array_element_copy (const GeeFutureSourceFuncArrayElement* self, GeeFutureSourceFuncArrayElement* dest); -G_GNUC_INTERNAL void gee_future_source_func_array_element_destroy (GeeFutureSourceFuncArrayElement* self); + G_GNUC_INTERNAL void gee_future_source_func_array_element_destroy (GeeFutureSourceFuncArrayElement* self); static void _vala_GeeFutureSourceFuncArrayElement_array_free (GeeFutureSourceFuncArrayElement * array, gint array_length); static gconstpointer gee_lazy_future_real_wait (GeeFuture* base, @@ -266,27 +161,20 @@ GAsyncReadyCallback _callback_, gpointer _user_data_); static gboolean gee_lazy_future_real_wait_async_co (GeeLazyFutureWaitAsyncData* _data_); -void gee_future_wait_async (GeeFuture* self, - GAsyncReadyCallback _callback_, - gpointer _user_data_); -gconstpointer gee_future_wait_finish (GeeFuture* self, - GAsyncResult* _res_, - GError** error); static gboolean _gee_lazy_future_real_wait_async_co_gsource_func (gpointer self); -G_GNUC_INTERNAL void gee_future_source_func_array_element_init (GeeFutureSourceFuncArrayElement *self, + G_GNUC_INTERNAL void gee_future_source_func_array_element_init (GeeFutureSourceFuncArrayElement *self, GSourceFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); static void _vala_array_add1 (GeeFutureSourceFuncArrayElement* * array, - int* length, - int* size, + gint* length, + gint* size, const GeeFutureSourceFuncArrayElement* value); static void gee_lazy_future_wait_async_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_); static void gee_lazy_future_finalize (GObject * obj); -gboolean gee_future_get_ready (GeeFuture* self); -GError* gee_future_get_exception (GeeFuture* self); +static GType gee_lazy_future_get_type_once (void); static void _vala_gee_lazy_future_get_property (GObject * object, guint property_id, GValue * value, @@ -296,6 +184,7 @@ const GValue * value, GParamSpec * pspec); static void gee_lazy_finalize (GeeLazy * obj); +static GType gee_lazy_get_type_once (void); static void _vala_clear_GMutex (GMutex * mutex); static void _vala_clear_GRecMutex (GRecMutex * mutex); static void _vala_clear_GRWLock (GRWLock * mutex); @@ -369,7 +258,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; _tmp0_ = ((item != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) item) : ((gpointer) item); - _g_destroy_func0 (self->priv->_value); + ((self->priv->_value == NULL) || (g_destroy_func == NULL)) ? NULL : (self->priv->_value = (g_destroy_func (self->priv->_value), NULL)); self->priv->_value = _tmp0_; return self; } @@ -454,13 +343,21 @@ } static GType +gee_lazy_future_state_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_LAZY_FUTURE_STATE_UNLOCK, "GEE_LAZY_FUTURE_STATE_UNLOCK", "unlock"}, {GEE_LAZY_FUTURE_STATE_EVAL, "GEE_LAZY_FUTURE_STATE_EVAL", "eval"}, {0, NULL, NULL}}; + GType gee_lazy_future_state_type_id; + gee_lazy_future_state_type_id = g_enum_register_static ("GeeLazyFutureState", values); + return gee_lazy_future_state_type_id; +} + +static GType gee_lazy_future_state_get_type (void) { static volatile gsize gee_lazy_future_state_type_id__volatile = 0; if (g_once_init_enter (&gee_lazy_future_state_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_LAZY_FUTURE_STATE_UNLOCK, "GEE_LAZY_FUTURE_STATE_UNLOCK", "unlock"}, {GEE_LAZY_FUTURE_STATE_EVAL, "GEE_LAZY_FUTURE_STATE_EVAL", "eval"}, {0, NULL, NULL}}; GType gee_lazy_future_state_type_id; - gee_lazy_future_state_type_id = g_enum_register_static ("GeeLazyFutureState", values); + gee_lazy_future_state_type_id = gee_lazy_future_state_get_type_once (); g_once_init_leave (&gee_lazy_future_state_type_id__volatile, gee_lazy_future_state_type_id); } return gee_lazy_future_state_type_id__volatile; @@ -471,7 +368,7 @@ gint array_length) { if (array != NULL) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { gee_future_source_func_array_element_destroy (&array[i]); } @@ -680,8 +577,8 @@ static void _vala_array_add1 (GeeFutureSourceFuncArrayElement* * array, - int* length, - int* size, + gint* length, + gint* size, const GeeFutureSourceFuncArrayElement* value) { if ((*length) == (*size)) { @@ -722,11 +619,9 @@ if (_data_->_tmp1_ != NULL) { _data_->_tmp2_ = _data_->self->priv->_state; if (_data_->_tmp2_ == GEE_LAZY_FUTURE_STATE_EVAL) { - _data_->_tmp3_ = _data_->self->priv->_when_done; - _data_->_tmp3__length1 = _data_->self->priv->_when_done_length1; - memset (&_data_->_tmp4_, 0, sizeof (GeeFutureSourceFuncArrayElement)); - gee_future_source_func_array_element_init (&_data_->_tmp4_, _gee_lazy_future_real_wait_async_co_gsource_func, _data_, NULL); - _vala_array_add1 (&_data_->self->priv->_when_done, &_data_->self->priv->_when_done_length1, &_data_->self->priv->__when_done_size_, &_data_->_tmp4_); + memset (&_data_->_tmp3_, 0, sizeof (GeeFutureSourceFuncArrayElement)); + gee_future_source_func_array_element_init (&_data_->_tmp3_, _gee_lazy_future_real_wait_async_co_gsource_func, _data_, NULL); + _vala_array_add1 (&_data_->self->priv->_when_done, &_data_->self->priv->_when_done_length1, &_data_->self->priv->__when_done_size_, &_data_->_tmp3_); _data_->_state_ = 1; gee_utils_async_yield_and_unlock (&_data_->self->priv->_mutex, gee_lazy_future_wait_async_ready, _data_); return FALSE; @@ -738,10 +633,10 @@ } else { g_mutex_unlock (&_data_->self->priv->_mutex); } - _data_->_tmp5_ = _data_->self->priv->_lazy; - _data_->_tmp6_ = gee_lazy_get_value (_data_->_tmp5_); - _data_->_tmp7_ = _data_->_tmp6_; - _data_->result = _data_->_tmp7_; + _data_->_tmp4_ = _data_->self->priv->_lazy; + _data_->_tmp5_ = gee_lazy_get_value (_data_->_tmp4_); + _data_->_tmp6_ = _data_->_tmp5_; + _data_->result = _data_->_tmp6_; g_task_return_pointer (_data_->_async_result, _data_, NULL); if (_data_->_state_ != 0) { while (!g_task_get_completed (_data_->_async_result)) { @@ -935,16 +830,24 @@ } static GType +gee_lazy_future_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeLazyFutureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_lazy_future_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeLazyFuture), 0, (GInstanceInitFunc) gee_lazy_future_instance_init, NULL }; + static const GInterfaceInfo gee_future_info = { (GInterfaceInitFunc) gee_lazy_future_gee_future_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_lazy_future_type_id; + gee_lazy_future_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeLazyFuture", &g_define_type_info, 0); + g_type_add_interface_static (gee_lazy_future_type_id, GEE_TYPE_FUTURE, &gee_future_info); + GeeLazyFuture_private_offset = g_type_add_instance_private (gee_lazy_future_type_id, sizeof (GeeLazyFuturePrivate)); + return gee_lazy_future_type_id; +} + +static GType gee_lazy_future_get_type (void) { static volatile gsize gee_lazy_future_type_id__volatile = 0; if (g_once_init_enter (&gee_lazy_future_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeLazyFutureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_lazy_future_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeLazyFuture), 0, (GInstanceInitFunc) gee_lazy_future_instance_init, NULL }; - static const GInterfaceInfo gee_future_info = { (GInterfaceInitFunc) gee_lazy_future_gee_future_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_lazy_future_type_id; - gee_lazy_future_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeLazyFuture", &g_define_type_info, 0); - g_type_add_interface_static (gee_lazy_future_type_id, GEE_TYPE_FUTURE, &gee_future_info); - GeeLazyFuture_private_offset = g_type_add_instance_private (gee_lazy_future_type_id, sizeof (GeeLazyFuturePrivate)); + gee_lazy_future_type_id = gee_lazy_future_get_type_once (); g_once_init_leave (&gee_lazy_future_type_id__volatile, gee_lazy_future_type_id); } return gee_lazy_future_type_id__volatile; @@ -1172,17 +1075,25 @@ * * This class is not thread-safe. */ +static GType +gee_lazy_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_value_lazy_init, gee_value_lazy_free_value, gee_value_lazy_copy_value, gee_value_lazy_peek_pointer, "p", gee_value_lazy_collect_value, "p", gee_value_lazy_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeeLazyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_lazy_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeLazy), 0, (GInstanceInitFunc) gee_lazy_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_lazy_type_id; + gee_lazy_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeLazy", &g_define_type_info, &g_define_type_fundamental_info, 0); + GeeLazy_private_offset = g_type_add_instance_private (gee_lazy_type_id, sizeof (GeeLazyPrivate)); + return gee_lazy_type_id; +} + GType gee_lazy_get_type (void) { static volatile gsize gee_lazy_type_id__volatile = 0; if (g_once_init_enter (&gee_lazy_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_value_lazy_init, gee_value_lazy_free_value, gee_value_lazy_copy_value, gee_value_lazy_peek_pointer, "p", gee_value_lazy_collect_value, "p", gee_value_lazy_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeeLazyClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_lazy_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeLazy), 0, (GInstanceInitFunc) gee_lazy_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_lazy_type_id; - gee_lazy_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeLazy", &g_define_type_info, &g_define_type_fundamental_info, 0); - GeeLazy_private_offset = g_type_add_instance_private (gee_lazy_type_id, sizeof (GeeLazyPrivate)); + gee_lazy_type_id = gee_lazy_get_type_once (); g_once_init_leave (&gee_lazy_type_id__volatile, gee_lazy_type_id); } return gee_lazy_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/lazy.vala libgee-0.8-0.20.4/gee/lazy.vala --- libgee-0.8-0.20.3/gee/lazy.vala 2020-01-21 14:47:44.000000000 +0000 +++ libgee-0.8-0.20.4/gee/lazy.vala 2021-03-17 11:24:00.000000000 +0000 @@ -75,7 +75,7 @@ private class Future : Object, Gee.Future { public Future (Lazy lazy) { _lazy = lazy; - _when_done = new Gee.Future.SourceFuncArrayElement[0]; + _when_done = new Gee.Future.SourceFuncArrayElement[0]; } public bool ready { @@ -159,7 +159,7 @@ _eval.broadcast (); _mutex.unlock (); - Gee.Future.SourceFuncArrayElement[] when_done = (owned)_when_done; + Gee.Future.SourceFuncArrayElement[] when_done = (owned)_when_done; for (int i = 0; i < when_done.length; i++) { when_done[i].func (); } @@ -169,7 +169,7 @@ private Cond _eval = Cond (); private Lazy _lazy; private State _state = State.UNLOCK; - private Gee.Future.SourceFuncArrayElement[]? _when_done; + private Gee.Future.SourceFuncArrayElement[]? _when_done; private enum State { UNLOCK, EVAL diff -Nru libgee-0.8-0.20.3/gee/lightmapfuture.c libgee-0.8-0.20.4/gee/lightmapfuture.c --- libgee-0.8-0.20.3/gee/lightmapfuture.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/lightmapfuture.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* lightmapfuture.c generated by valac 0.46.6, the Vala compiler +/* lightmapfuture.c generated by valac 0.52.0, the Vala compiler * generated from lightmapfuture.vala, do not modify */ /* lightmapfuture.vala @@ -24,21 +24,10 @@ */ #include +#include "gee.h" #include #include -#define GEE_TYPE_FUTURE (gee_future_get_type ()) -#define GEE_FUTURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_FUTURE, GeeFuture)) -#define GEE_IS_FUTURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_FUTURE)) -#define GEE_FUTURE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_FUTURE, GeeFutureIface)) - -typedef struct _GeeFuture GeeFuture; -typedef struct _GeeFutureIface GeeFutureIface; -typedef gpointer (*GeeFutureMapFunc) (gconstpointer value, gpointer user_data); -typedef gconstpointer (*GeeFutureLightMapFunc) (gconstpointer value, gpointer user_data); -typedef gpointer (*GeeFutureZipFunc) (gconstpointer a, gconstpointer b, gpointer user_data); -typedef GeeFuture* (*GeeFutureFlatMapFunc) (gconstpointer value, gpointer user_data); - #define GEE_TYPE_LIGHT_MAP_FUTURE (gee_light_map_future_get_type ()) #define GEE_LIGHT_MAP_FUTURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIGHT_MAP_FUTURE, GeeLightMapFuture)) #define GEE_LIGHT_MAP_FUTURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LIGHT_MAP_FUTURE, GeeLightMapFutureClass)) @@ -65,30 +54,6 @@ #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) typedef struct _GeeLightMapFutureWaitAsyncData GeeLightMapFutureWaitAsyncData; -typedef enum { - GEE_FUTURE_ERROR_ABANDON_PROMISE, - GEE_FUTURE_ERROR_EXCEPTION -} GeeFutureError; -#define GEE_FUTURE_ERROR gee_future_error_quark () -struct _GeeFutureIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeFuture* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeFuture* self); - GDestroyNotify (*get_g_destroy_func) (GeeFuture* self); - gconstpointer (*wait) (GeeFuture* self, GError** error); - gboolean (*wait_until) (GeeFuture* self, gint64 end_time, gconstpointer* value, GError** error); - void (*wait_async) (GeeFuture* self, GAsyncReadyCallback _callback_, gpointer _user_data_); - gconstpointer (*wait_finish) (GeeFuture* self, GAsyncResult* _res_, GError** error); - GeeFuture* (*map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); - GeeFuture* (*light_map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureLightMapFunc func, gpointer func_target); - GeeFuture* (*zip) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GType b_type, GBoxedCopyFunc b_dup_func, GDestroyNotify b_destroy_func, GeeFutureZipFunc zip_func, gpointer zip_func_target, GeeFuture* second); - GeeFuture* (*flat_map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureFlatMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); - gconstpointer (*get_value) (GeeFuture* self); - gboolean (*get_ready) (GeeFuture* self); - GError* (*get_exception) (GeeFuture* self); - GeeFuture* (*light_map_fixed) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureLightMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -}; - struct _GeeLightMapFuture { GObject parent_instance; GeeLightMapFuturePrivate * priv; @@ -131,11 +96,8 @@ static gpointer gee_light_map_future_parent_class = NULL; static GeeFutureIface * gee_light_map_future_gee_future_parent_iface = NULL; -GQuark gee_future_error_quark (void); -GType gee_future_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_light_map_future_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLightMapFuture, g_object_unref) -G_GNUC_INTERNAL GeeLightMapFuture* gee_light_map_future_new (GType a_type, + G_GNUC_INTERNAL GType gee_light_map_future_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeLightMapFuture* gee_light_map_future_new (GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GType g_type, @@ -145,7 +107,7 @@ GeeFutureLightMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeLightMapFuture* gee_light_map_future_construct (GType object_type, + G_GNUC_INTERNAL GeeLightMapFuture* gee_light_map_future_construct (GType object_type, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, @@ -158,33 +120,20 @@ GDestroyNotify func_target_destroy_notify); static gconstpointer gee_light_map_future_real_wait (GeeFuture* base, GError** error); -gconstpointer gee_future_wait (GeeFuture* self, - GError** error); static gboolean gee_light_map_future_real_wait_until (GeeFuture* base, gint64 end_time, gconstpointer* value, GError** error); -gboolean gee_future_wait_until (GeeFuture* self, - gint64 end_time, - gconstpointer* value, - GError** error); static void gee_light_map_future_real_wait_async_data_free (gpointer _data); static void gee_light_map_future_real_wait_async (GeeFuture* base, GAsyncReadyCallback _callback_, gpointer _user_data_); static gboolean gee_light_map_future_real_wait_async_co (GeeLightMapFutureWaitAsyncData* _data_); -void gee_future_wait_async (GeeFuture* self, - GAsyncReadyCallback _callback_, - gpointer _user_data_); -gconstpointer gee_future_wait_finish (GeeFuture* self, - GAsyncResult* _res_, - GError** error); static void gee_light_map_future_wait_async_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_); -gboolean gee_future_get_ready (GeeFuture* self); -GError* gee_future_get_exception (GeeFuture* self); static void gee_light_map_future_finalize (GObject * obj); +static GType gee_light_map_future_get_type_once (void); static void _vala_gee_light_map_future_get_property (GObject * object, guint property_id, GValue * value, @@ -206,7 +155,7 @@ return self ? g_object_ref (self) : NULL; } -G_GNUC_INTERNAL GeeLightMapFuture* + G_GNUC_INTERNAL GeeLightMapFuture* gee_light_map_future_construct (GType object_type, GType a_type, GBoxedCopyFunc a_dup_func, @@ -255,7 +204,7 @@ return self; } -G_GNUC_INTERNAL GeeLightMapFuture* + G_GNUC_INTERNAL GeeLightMapFuture* gee_light_map_future_new (GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, @@ -559,17 +508,25 @@ G_OBJECT_CLASS (gee_light_map_future_parent_class)->finalize (obj); } -G_GNUC_INTERNAL GType +static GType +gee_light_map_future_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeLightMapFutureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_light_map_future_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeLightMapFuture), 0, (GInstanceInitFunc) gee_light_map_future_instance_init, NULL }; + static const GInterfaceInfo gee_future_info = { (GInterfaceInitFunc) gee_light_map_future_gee_future_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_light_map_future_type_id; + gee_light_map_future_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeLightMapFuture", &g_define_type_info, 0); + g_type_add_interface_static (gee_light_map_future_type_id, GEE_TYPE_FUTURE, &gee_future_info); + GeeLightMapFuture_private_offset = g_type_add_instance_private (gee_light_map_future_type_id, sizeof (GeeLightMapFuturePrivate)); + return gee_light_map_future_type_id; +} + + G_GNUC_INTERNAL GType gee_light_map_future_get_type (void) { static volatile gsize gee_light_map_future_type_id__volatile = 0; if (g_once_init_enter (&gee_light_map_future_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeLightMapFutureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_light_map_future_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeLightMapFuture), 0, (GInstanceInitFunc) gee_light_map_future_instance_init, NULL }; - static const GInterfaceInfo gee_future_info = { (GInterfaceInitFunc) gee_light_map_future_gee_future_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_light_map_future_type_id; - gee_light_map_future_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeLightMapFuture", &g_define_type_info, 0); - g_type_add_interface_static (gee_light_map_future_type_id, GEE_TYPE_FUTURE, &gee_future_info); - GeeLightMapFuture_private_offset = g_type_add_instance_private (gee_light_map_future_type_id, sizeof (GeeLightMapFuturePrivate)); + gee_light_map_future_type_id = gee_light_map_future_get_type_once (); g_once_init_leave (&gee_light_map_future_type_id__volatile, gee_light_map_future_type_id); } return gee_light_map_future_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/linkedlist.c libgee-0.8-0.20.4/gee/linkedlist.c --- libgee-0.8-0.20.3/gee/linkedlist.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/linkedlist.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* linkedlist.c generated by valac 0.46.6, the Vala compiler +/* linkedlist.c generated by valac 0.52.0, the Vala compiler * generated from linkedlist.vala, do not modify */ /* linkedlist.vala @@ -28,164 +28,10 @@ * Didier 'Ptitjes Villevalois */ -#include +#include "gee.h" #include +#include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_LIST (gee_list_get_type ()) -#define GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST, GeeList)) -#define GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST)) -#define GEE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST, GeeListIface)) - -typedef struct _GeeList GeeList; -typedef struct _GeeListIface GeeListIface; - -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; - -#define GEE_TYPE_ABSTRACT_LIST (gee_abstract_list_get_type ()) -#define GEE_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractList)) -#define GEE_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) -#define GEE_IS_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_IS_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_ABSTRACT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) - -typedef struct _GeeAbstractList GeeAbstractList; -typedef struct _GeeAbstractListClass GeeAbstractListClass; -typedef struct _GeeAbstractListPrivate GeeAbstractListPrivate; - -#define GEE_TYPE_BIDIR_LIST (gee_bidir_list_get_type ()) -#define GEE_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirList)) -#define GEE_IS_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST)) -#define GEE_BIDIR_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirListIface)) - -typedef struct _GeeBidirList GeeBidirList; -typedef struct _GeeBidirListIface GeeBidirListIface; - -#define GEE_TYPE_BIDIR_LIST_ITERATOR (gee_bidir_list_iterator_get_type ()) -#define GEE_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIterator)) -#define GEE_IS_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR)) -#define GEE_BIDIR_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIteratorIface)) - -typedef struct _GeeBidirListIterator GeeBidirListIterator; -typedef struct _GeeBidirListIteratorIface GeeBidirListIteratorIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; - -#define GEE_TYPE_ABSTRACT_BIDIR_LIST (gee_abstract_bidir_list_get_type ()) -#define GEE_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirList)) -#define GEE_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) -#define GEE_IS_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_IS_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_ABSTRACT_BIDIR_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) - -typedef struct _GeeAbstractBidirList GeeAbstractBidirList; -typedef struct _GeeAbstractBidirListClass GeeAbstractBidirListClass; -typedef struct _GeeAbstractBidirListPrivate GeeAbstractBidirListPrivate; - -#define GEE_TYPE_QUEUE (gee_queue_get_type ()) -#define GEE_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_QUEUE, GeeQueue)) -#define GEE_IS_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_QUEUE)) -#define GEE_QUEUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_QUEUE, GeeQueueIface)) - -typedef struct _GeeQueue GeeQueue; -typedef struct _GeeQueueIface GeeQueueIface; - -#define GEE_TYPE_DEQUE (gee_deque_get_type ()) -#define GEE_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_DEQUE, GeeDeque)) -#define GEE_IS_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_DEQUE)) -#define GEE_DEQUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_DEQUE, GeeDequeIface)) - -typedef struct _GeeDeque GeeDeque; -typedef struct _GeeDequeIface GeeDequeIface; - -#define GEE_TYPE_LINKED_LIST (gee_linked_list_get_type ()) -#define GEE_LINKED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LINKED_LIST, GeeLinkedList)) -#define GEE_LINKED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LINKED_LIST, GeeLinkedListClass)) -#define GEE_IS_LINKED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LINKED_LIST)) -#define GEE_IS_LINKED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LINKED_LIST)) -#define GEE_LINKED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LINKED_LIST, GeeLinkedListClass)) - -typedef struct _GeeLinkedList GeeLinkedList; -typedef struct _GeeLinkedListClass GeeLinkedListClass; -typedef struct _GeeLinkedListPrivate GeeLinkedListPrivate; typedef struct _GeeLinkedListNode GeeLinkedListNode; #define GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE (gee_functions_equal_data_func_closure_get_type ()) @@ -212,7 +58,6 @@ static GParamSpec* gee_linked_list_properties[GEE_LINKED_LIST_NUM_PROPERTIES]; #define _gee_linked_list_node_free0(var) ((var == NULL) ? NULL : (var = (gee_linked_list_node_free (var), NULL))) #define _gee_functions_equal_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_equal_data_func_closure_unref (var), NULL))) -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); #define GEE_LINKED_LIST_TYPE_ITERATOR (gee_linked_list_iterator_get_type ()) #define GEE_LINKED_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_LINKED_LIST_TYPE_ITERATOR, GeeLinkedListIterator)) @@ -223,7 +68,6 @@ typedef struct _GeeLinkedListIterator GeeLinkedListIterator; typedef struct _GeeLinkedListIteratorClass GeeLinkedListIteratorClass; -#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) typedef struct _GeeFunctionsEqualDataFuncClosurePrivate GeeFunctionsEqualDataFuncClosurePrivate; typedef struct _GeeLinkedListIteratorPrivate GeeLinkedListIteratorPrivate; enum { @@ -236,246 +80,12 @@ GEE_LINKED_LIST_ITERATOR_NUM_PROPERTIES }; static GParamSpec* gee_linked_list_iterator_properties[GEE_LINKED_LIST_ITERATOR_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -struct _GeeListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeList* self); - GDestroyNotify (*get_g_destroy_func) (GeeList* self); - GeeListIterator* (*list_iterator) (GeeList* self); - gpointer (*get) (GeeList* self, gint index); - void (*set) (GeeList* self, gint index, gconstpointer item); - gint (*index_of) (GeeList* self, gconstpointer item); - void (*insert) (GeeList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeList* self, gint index); - GeeList* (*slice) (GeeList* self, gint start, gint stop); - gpointer (*first) (GeeList* self); - gpointer (*last) (GeeList* self); - void (*insert_all) (GeeList* self, gint index, GeeCollection* collection); - void (*sort) (GeeList* self, GCompareDataFunc compare_func, gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify); - GeeList* (*get_read_only_view) (GeeList* self); -}; - -struct _GeeAbstractList { - GeeAbstractCollection parent_instance; - GeeAbstractListPrivate * priv; -}; - -struct _GeeAbstractListClass { - GeeAbstractCollectionClass parent_class; - GeeListIterator* (*list_iterator) (GeeAbstractList* self); - gpointer (*get) (GeeAbstractList* self, gint index); - void (*set) (GeeAbstractList* self, gint index, gconstpointer item); - gint (*index_of) (GeeAbstractList* self, gconstpointer item); - void (*insert) (GeeAbstractList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeAbstractList* self, gint index); - GeeList* (*slice) (GeeAbstractList* self, gint start, gint stop); - void (*reserved0) (GeeAbstractList* self); - void (*reserved1) (GeeAbstractList* self); - void (*reserved2) (GeeAbstractList* self); - void (*reserved3) (GeeAbstractList* self); - void (*reserved4) (GeeAbstractList* self); - void (*reserved5) (GeeAbstractList* self); - void (*reserved6) (GeeAbstractList* self); - void (*reserved7) (GeeAbstractList* self); - void (*reserved8) (GeeAbstractList* self); - void (*reserved9) (GeeAbstractList* self); - GeeList* (*get_read_only_view) (GeeAbstractList* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirListIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirListIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirListIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirListIterator* self); - void (*insert) (GeeBidirListIterator* self, gconstpointer item); -}; - -struct _GeeBidirListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirList* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirList* self); - GeeBidirListIterator* (*bidir_list_iterator) (GeeBidirList* self); - GeeBidirList* (*get_read_only_view) (GeeBidirList* self); -}; - -struct _GeeAbstractBidirList { - GeeAbstractList parent_instance; - GeeAbstractBidirListPrivate * priv; -}; - -struct _GeeAbstractBidirListClass { - GeeAbstractListClass parent_class; - GeeBidirListIterator* (*bidir_list_iterator) (GeeAbstractBidirList* self); - void (*reserved0) (GeeAbstractBidirList* self); - void (*reserved1) (GeeAbstractBidirList* self); - void (*reserved2) (GeeAbstractBidirList* self); - void (*reserved3) (GeeAbstractBidirList* self); - void (*reserved4) (GeeAbstractBidirList* self); - void (*reserved5) (GeeAbstractBidirList* self); - void (*reserved6) (GeeAbstractBidirList* self); - void (*reserved7) (GeeAbstractBidirList* self); - void (*reserved8) (GeeAbstractBidirList* self); - void (*reserved9) (GeeAbstractBidirList* self); - GeeBidirList* (*get_read_only_view) (GeeAbstractBidirList* self); -}; - -struct _GeeQueueIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeQueue* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeQueue* self); - GDestroyNotify (*get_g_destroy_func) (GeeQueue* self); - gboolean (*offer) (GeeQueue* self, gconstpointer element); - gpointer (*peek) (GeeQueue* self); - gpointer (*poll) (GeeQueue* self); - gint (*drain) (GeeQueue* self, GeeCollection* recipient, gint amount); - gint (*get_capacity) (GeeQueue* self); - gint (*get_remaining_capacity) (GeeQueue* self); - gboolean (*get_is_full) (GeeQueue* self); -}; - -struct _GeeDequeIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeDeque* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeDeque* self); - GDestroyNotify (*get_g_destroy_func) (GeeDeque* self); - gboolean (*offer_head) (GeeDeque* self, gconstpointer element); - gpointer (*peek_head) (GeeDeque* self); - gpointer (*poll_head) (GeeDeque* self); - gint (*drain_head) (GeeDeque* self, GeeCollection* recipient, gint amount); - gboolean (*offer_tail) (GeeDeque* self, gconstpointer element); - gpointer (*peek_tail) (GeeDeque* self); - gpointer (*poll_tail) (GeeDeque* self); - gint (*drain_tail) (GeeDeque* self, GeeCollection* recipient, gint amount); -}; - -struct _GeeLinkedList { - GeeAbstractBidirList parent_instance; - GeeLinkedListPrivate * priv; -}; - -struct _GeeLinkedListClass { - GeeAbstractBidirListClass parent_class; -}; - struct _GeeLinkedListPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -539,84 +149,27 @@ static GeeQueueIface * gee_linked_list_gee_queue_parent_iface = NULL; static GeeDequeIface * gee_linked_list_gee_deque_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_get_type (void) G_GNUC_CONST; -GType gee_abstract_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractList, g_object_unref) -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_get_type (void) G_GNUC_CONST; -GType gee_abstract_bidir_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirList, g_object_unref) -GType gee_queue_get_type (void) G_GNUC_CONST; -GType gee_deque_get_type (void) G_GNUC_CONST; -GType gee_linked_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLinkedList, g_object_unref) static void gee_linked_list_node_free (GeeLinkedListNode * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLinkedListNode, gee_linked_list_node_free) -G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsEqualDataFuncClosure, gee_functions_equal_data_func_closure_unref) -void gee_abstract_collection_clear (GeeAbstractCollection* self); -GeeLinkedList* gee_linked_list_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeLinkedList* gee_linked_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeAbstractBidirList* gee_abstract_bidir_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -645,21 +198,16 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeLinkedList* list); -static GType gee_linked_list_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLinkedListIterator, g_object_unref) +static GType gee_linked_list_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeListIterator* gee_linked_list_real_list_iterator (GeeAbstractList* base); static GeeBidirListIterator* gee_linked_list_real_bidir_list_iterator (GeeAbstractBidirList* base); static gboolean gee_linked_list_real_contains (GeeAbstractCollection* base, gconstpointer item); -gint gee_abstract_list_index_of (GeeAbstractList* self, - gconstpointer item); static gboolean gee_linked_list_real_add (GeeAbstractCollection* base, gconstpointer item); static GeeLinkedListNode* gee_linked_list_node_new (gpointer data); static gboolean gee_linked_list_real_remove (GeeAbstractCollection* base, gconstpointer item); -GeeEqualDataFunc gee_linked_list_get_equal_func (GeeLinkedList* self, - gpointer* result_target); static void _gee_linked_list_remove_node (GeeLinkedList* self, GeeLinkedListNode* _n); static void gee_linked_list_real_clear (GeeAbstractCollection* base); @@ -675,42 +223,22 @@ static void gee_linked_list_real_insert (GeeAbstractList* base, gint index, gconstpointer item); -gboolean gee_abstract_collection_add (GeeAbstractCollection* self, - gconstpointer item); static gpointer gee_linked_list_real_remove_at (GeeAbstractList* base, gint index); static GeeList* gee_linked_list_real_slice (GeeAbstractList* base, gint start, gint stop); -gboolean gee_collection_add (GeeCollection* self, - gconstpointer item); -gpointer gee_linked_list_first (GeeLinkedList* self); -gpointer gee_linked_list_last (GeeLinkedList* self); static gboolean gee_linked_list_real_offer (GeeQueue* base, gconstpointer element); -gboolean gee_deque_offer_tail (GeeDeque* self, - gconstpointer element); static gpointer gee_linked_list_real_peek (GeeQueue* base); -gpointer gee_deque_peek_head (GeeDeque* self); static gpointer gee_linked_list_real_poll (GeeQueue* base); -gpointer gee_deque_poll_head (GeeDeque* self); static gint gee_linked_list_real_drain (GeeQueue* base, GeeCollection* recipient, gint amount); -gint gee_deque_drain_head (GeeDeque* self, - GeeCollection* recipient, - gint amount); static gboolean gee_linked_list_real_offer_head (GeeDeque* base, gconstpointer element); -void gee_abstract_list_insert (GeeAbstractList* self, - gint index, - gconstpointer item); static gpointer gee_linked_list_real_peek_head (GeeDeque* base); -gpointer gee_abstract_list_get (GeeAbstractList* self, - gint index); static gpointer gee_linked_list_real_poll_head (GeeDeque* base); -gpointer gee_abstract_list_remove_at (GeeAbstractList* self, - gint index); static gint gee_linked_list_real_drain_head (GeeDeque* base, GeeCollection* recipient, gint amount); @@ -724,7 +252,6 @@ static void gee_linked_list_set_equal_func (GeeLinkedList* self, GeeEqualDataFunc value, gpointer value_target); -#define GEE_QUEUE_UNBOUNDED_CAPACITY -1 static void gee_linked_list_node_instance_init (GeeLinkedListNode * self); static GeeLinkedListIterator* gee_linked_list_iterator_new_from_iterator (GType g_type, GBoxedCopyFunc g_dup_func, @@ -738,7 +265,6 @@ static gboolean gee_linked_list_iterator_real_next (GeeIterator* base); static gboolean gee_linked_list_iterator_real_has_next (GeeIterator* base); static gboolean gee_linked_list_iterator_real_first (GeeBidirIterator* base); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); static gpointer gee_linked_list_iterator_real_get (GeeIterator* base); static void gee_linked_list_iterator_real_remove (GeeIterator* base); static gboolean gee_linked_list_iterator_real_previous (GeeBidirIterator* base); @@ -758,8 +284,7 @@ guint forks, gint* result_length1); static void gee_linked_list_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_read_only (GeeIterator* self); -gboolean gee_iterator_get_valid (GeeIterator* self); +static GType gee_linked_list_iterator_get_type_once (void); static void _vala_gee_linked_list_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -769,10 +294,7 @@ const GValue * value, GParamSpec * pspec); static void gee_linked_list_finalize (GObject * obj); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); -gint gee_queue_get_capacity (GeeQueue* self); -gint gee_queue_get_remaining_capacity (GeeQueue* self); -gboolean gee_queue_get_is_full (GeeQueue* self); +static GType gee_linked_list_get_type_once (void); static void _vala_gee_linked_list_get_property (GObject * object, guint property_id, GValue * value, @@ -821,7 +343,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; if (equal_func == NULL) { - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GeeEqualDataFunc _tmp2_; _tmp2_ = gee_functions_get_equal_func_for (g_type, &_tmp0_, &_tmp1_); @@ -1131,6 +653,7 @@ gee_linked_list_real_clear (GeeAbstractCollection* base) { GeeLinkedList * self; + gint _tmp2_; self = (GeeLinkedList*) base; while (TRUE) { GeeLinkedListNode* _tmp0_; @@ -1143,6 +666,7 @@ _gee_linked_list_remove_node (self, _tmp1_); } self->priv->_stamp = self->priv->_stamp + 1; + _tmp2_ = self->priv->_stamp; _gee_linked_list_node_free0 (self->priv->_head); self->priv->_head = NULL; self->priv->_tail = NULL; @@ -1846,6 +1370,7 @@ GeeLinkedListNode* _tmp20_; GeeLinkedListNode* _tmp21_; gint _tmp22_; + gint _tmp23_; g_return_if_fail (self != NULL); g_return_if_fail (_n != NULL); _tmp0_ = self->priv->_head; @@ -1914,8 +1439,9 @@ ((_tmp21_->data == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_tmp21_->data = (self->priv->g_destroy_func (_tmp21_->data), NULL)); _tmp21_->data = NULL; self->priv->_stamp = self->priv->_stamp + 1; - _tmp22_ = self->priv->_size; - self->priv->_size = _tmp22_ - 1; + _tmp22_ = self->priv->_stamp; + _tmp23_ = self->priv->_size; + self->priv->_size = _tmp23_ - 1; _gee_linked_list_node_free0 (n); } @@ -3054,24 +2580,32 @@ } static GType +gee_linked_list_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeLinkedListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_linked_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeLinkedListIterator), 0, (GInstanceInitFunc) gee_linked_list_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_linked_list_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_linked_list_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_linked_list_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_list_iterator_info = { (GInterfaceInitFunc) gee_linked_list_iterator_gee_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_list_iterator_info = { (GInterfaceInitFunc) gee_linked_list_iterator_gee_bidir_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_linked_list_iterator_type_id; + gee_linked_list_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeLinkedListIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_linked_list_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_linked_list_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + g_type_add_interface_static (gee_linked_list_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); + g_type_add_interface_static (gee_linked_list_iterator_type_id, GEE_TYPE_LIST_ITERATOR, &gee_list_iterator_info); + g_type_add_interface_static (gee_linked_list_iterator_type_id, GEE_TYPE_BIDIR_LIST_ITERATOR, &gee_bidir_list_iterator_info); + GeeLinkedListIterator_private_offset = g_type_add_instance_private (gee_linked_list_iterator_type_id, sizeof (GeeLinkedListIteratorPrivate)); + return gee_linked_list_iterator_type_id; +} + +static GType gee_linked_list_iterator_get_type (void) { static volatile gsize gee_linked_list_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_linked_list_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeLinkedListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_linked_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeLinkedListIterator), 0, (GInstanceInitFunc) gee_linked_list_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_linked_list_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_linked_list_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_linked_list_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_list_iterator_info = { (GInterfaceInitFunc) gee_linked_list_iterator_gee_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_list_iterator_info = { (GInterfaceInitFunc) gee_linked_list_iterator_gee_bidir_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_linked_list_iterator_type_id; - gee_linked_list_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeLinkedListIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_linked_list_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_linked_list_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - g_type_add_interface_static (gee_linked_list_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); - g_type_add_interface_static (gee_linked_list_iterator_type_id, GEE_TYPE_LIST_ITERATOR, &gee_list_iterator_info); - g_type_add_interface_static (gee_linked_list_iterator_type_id, GEE_TYPE_BIDIR_LIST_ITERATOR, &gee_bidir_list_iterator_info); - GeeLinkedListIterator_private_offset = g_type_add_instance_private (gee_linked_list_iterator_type_id, sizeof (GeeLinkedListIteratorPrivate)); + gee_linked_list_iterator_type_id = gee_linked_list_iterator_get_type_once (); g_once_init_leave (&gee_linked_list_iterator_type_id__volatile, gee_linked_list_iterator_type_id); } return gee_linked_list_iterator_type_id__volatile; @@ -3282,19 +2816,27 @@ * * @see ArrayList */ +static GType +gee_linked_list_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeLinkedListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_linked_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeLinkedList), 0, (GInstanceInitFunc) gee_linked_list_instance_init, NULL }; + static const GInterfaceInfo gee_queue_info = { (GInterfaceInitFunc) gee_linked_list_gee_queue_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_deque_info = { (GInterfaceInitFunc) gee_linked_list_gee_deque_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_linked_list_type_id; + gee_linked_list_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_LIST, "GeeLinkedList", &g_define_type_info, 0); + g_type_add_interface_static (gee_linked_list_type_id, GEE_TYPE_QUEUE, &gee_queue_info); + g_type_add_interface_static (gee_linked_list_type_id, GEE_TYPE_DEQUE, &gee_deque_info); + GeeLinkedList_private_offset = g_type_add_instance_private (gee_linked_list_type_id, sizeof (GeeLinkedListPrivate)); + return gee_linked_list_type_id; +} + GType gee_linked_list_get_type (void) { static volatile gsize gee_linked_list_type_id__volatile = 0; if (g_once_init_enter (&gee_linked_list_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeLinkedListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_linked_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeLinkedList), 0, (GInstanceInitFunc) gee_linked_list_instance_init, NULL }; - static const GInterfaceInfo gee_queue_info = { (GInterfaceInitFunc) gee_linked_list_gee_queue_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_deque_info = { (GInterfaceInitFunc) gee_linked_list_gee_deque_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_linked_list_type_id; - gee_linked_list_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_LIST, "GeeLinkedList", &g_define_type_info, 0); - g_type_add_interface_static (gee_linked_list_type_id, GEE_TYPE_QUEUE, &gee_queue_info); - g_type_add_interface_static (gee_linked_list_type_id, GEE_TYPE_DEQUE, &gee_deque_info); - GeeLinkedList_private_offset = g_type_add_instance_private (gee_linked_list_type_id, sizeof (GeeLinkedListPrivate)); + gee_linked_list_type_id = gee_linked_list_get_type_once (); g_once_init_leave (&gee_linked_list_type_id__volatile, gee_linked_list_type_id); } return gee_linked_list_type_id__volatile; @@ -3369,7 +2911,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/linkedlist.vala libgee-0.8-0.20.4/gee/linkedlist.vala --- libgee-0.8-0.20.3/gee/linkedlist.vala 2019-04-01 11:36:25.000000000 +0000 +++ libgee-0.8-0.20.4/gee/linkedlist.vala 2021-03-17 11:24:00.000000000 +0000 @@ -154,7 +154,7 @@ /** * {@inheritDoc} */ - public override bool remove (G item) { // Should remove only the first occurence (a test should be added) + public override bool remove (G item) { // Should remove only the first occurrence (a test should be added) for (weak Node n = this._head; n != null; n = n.next) { if (this.equal_func (item, n.data)) { this._remove_node (n); diff -Nru libgee-0.8-0.20.3/gee/list.c libgee-0.8-0.20.4/gee/list.c --- libgee-0.8-0.20.3/gee/list.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/list.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* list.c generated by valac 0.46.6, the Vala compiler +/* list.c generated by valac 0.52.0, the Vala compiler * generated from list.vala, do not modify */ /* list.vala @@ -23,365 +23,28 @@ * Jürg Billeter */ +#include "gee.h" #include #include -#define GEE_TYPE_LIST (gee_list_get_type ()) -#define GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST, GeeList)) -#define GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST)) -#define GEE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST, GeeListIface)) - -typedef struct _GeeList GeeList; -typedef struct _GeeListIface GeeListIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - -#define GEE_TYPE_ABSTRACT_LIST (gee_abstract_list_get_type ()) -#define GEE_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractList)) -#define GEE_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) -#define GEE_IS_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_IS_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_ABSTRACT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) - -typedef struct _GeeAbstractList GeeAbstractList; -typedef struct _GeeAbstractListClass GeeAbstractListClass; - -#define GEE_TYPE_ABSTRACT_BIDIR_LIST (gee_abstract_bidir_list_get_type ()) -#define GEE_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirList)) -#define GEE_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) -#define GEE_IS_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_IS_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_ABSTRACT_BIDIR_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) - -typedef struct _GeeAbstractBidirList GeeAbstractBidirList; -typedef struct _GeeAbstractBidirListClass GeeAbstractBidirListClass; - -#define GEE_TYPE_LINKED_LIST (gee_linked_list_get_type ()) -#define GEE_LINKED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LINKED_LIST, GeeLinkedList)) -#define GEE_LINKED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LINKED_LIST, GeeLinkedListClass)) -#define GEE_IS_LINKED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LINKED_LIST)) -#define GEE_IS_LINKED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LINKED_LIST)) -#define GEE_LINKED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LINKED_LIST, GeeLinkedListClass)) - -typedef struct _GeeLinkedList GeeLinkedList; -typedef struct _GeeLinkedListClass GeeLinkedListClass; - -#define GEE_TYPE_BIDIR_LIST (gee_bidir_list_get_type ()) -#define GEE_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirList)) -#define GEE_IS_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST)) -#define GEE_BIDIR_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirListIface)) - -typedef struct _GeeBidirList GeeBidirList; -typedef struct _GeeBidirListIface GeeBidirListIface; - -#define GEE_TYPE_BIDIR_LIST_ITERATOR (gee_bidir_list_iterator_get_type ()) -#define GEE_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIterator)) -#define GEE_IS_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR)) -#define GEE_BIDIR_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIteratorIface)) - -typedef struct _GeeBidirListIterator GeeBidirListIterator; -typedef struct _GeeBidirListIteratorIface GeeBidirListIteratorIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; - -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -struct _GeeListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeList* self); - GDestroyNotify (*get_g_destroy_func) (GeeList* self); - GeeListIterator* (*list_iterator) (GeeList* self); - gpointer (*get) (GeeList* self, gint index); - void (*set) (GeeList* self, gint index, gconstpointer item); - gint (*index_of) (GeeList* self, gconstpointer item); - void (*insert) (GeeList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeList* self, gint index); - GeeList* (*slice) (GeeList* self, gint start, gint stop); - gpointer (*first) (GeeList* self); - gpointer (*last) (GeeList* self); - void (*insert_all) (GeeList* self, gint index, GeeCollection* collection); - void (*sort) (GeeList* self, GCompareDataFunc compare_func, gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify); - GeeList* (*get_read_only_view) (GeeList* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirListIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirListIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirListIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirListIterator* self); - void (*insert) (GeeBidirListIterator* self, gconstpointer item); -}; - -struct _GeeBidirListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirList* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirList* self); - GeeBidirListIterator* (*bidir_list_iterator) (GeeBidirList* self); - GeeBidirList* (*get_read_only_view) (GeeBidirList* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_get_type (void) G_GNUC_CONST; -GeeListIterator* gee_list_list_iterator (GeeList* self); -gpointer gee_list_get (GeeList* self, - gint index); -void gee_list_set (GeeList* self, - gint index, - gconstpointer item); -gint gee_list_index_of (GeeList* self, - gconstpointer item); -void gee_list_insert (GeeList* self, - gint index, - gconstpointer item); -gpointer gee_list_remove_at (GeeList* self, - gint index); -GeeList* gee_list_slice (GeeList* self, - gint start, - gint stop); -gpointer gee_list_first (GeeList* self); static gpointer gee_list_real_first (GeeList* self); -gpointer gee_list_last (GeeList* self); static gpointer gee_list_real_last (GeeList* self); -gint gee_collection_get_size (GeeCollection* self); -void gee_list_insert_all (GeeList* self, - gint index, - GeeCollection* collection); static void gee_list_real_insert_all (GeeList* self, gint index, GeeCollection* collection); -GeeIterator* gee_iterable_iterator (GeeIterable* self); -gboolean gee_iterator_next (GeeIterator* self); -gpointer gee_iterator_get (GeeIterator* self); -void gee_list_sort (GeeList* self, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); static void gee_list_real_sort (GeeList* self, GCompareDataFunc compare_func, gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify); -GCompareDataFunc gee_functions_get_compare_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL void gee_tim_sort_sort (GType g_type, + G_GNUC_INTERNAL void gee_tim_sort_sort (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeList* list, GCompareDataFunc compare, gpointer compare_target); -GeeList* gee_list_empty (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeLinkedList* gee_linked_list_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeLinkedList* gee_linked_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_abstract_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractList, g_object_unref) -GType gee_abstract_bidir_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirList, g_object_unref) -GType gee_linked_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLinkedList, g_object_unref) -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_get_type (void) G_GNUC_CONST; -GeeBidirList* gee_abstract_bidir_list_get_read_only_view (GeeAbstractBidirList* self); -GeeList* gee_list_get_read_only_view (GeeList* self); +static GType gee_list_get_type_once (void); /** * Returns a ListIterator that can be used for iteration over this list. @@ -391,8 +54,13 @@ GeeListIterator* gee_list_list_iterator (GeeList* self) { + GeeListIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_LIST_GET_INTERFACE (self)->list_iterator (self); + _iface_ = GEE_LIST_GET_INTERFACE (self); + if (_iface_->list_iterator) { + return _iface_->list_iterator (self); + } + return NULL; } /** @@ -406,8 +74,13 @@ gee_list_get (GeeList* self, gint index) { + GeeListIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_LIST_GET_INTERFACE (self)->get (self, index); + _iface_ = GEE_LIST_GET_INTERFACE (self); + if (_iface_->get) { + return _iface_->get (self, index); + } + return NULL; } /** @@ -420,23 +93,32 @@ gint index, gconstpointer item) { + GeeListIface* _iface_; g_return_if_fail (self != NULL); - GEE_LIST_GET_INTERFACE (self)->set (self, index, item); + _iface_ = GEE_LIST_GET_INTERFACE (self); + if (_iface_->set) { + _iface_->set (self, index, item); + } } /** - * Returns the index of the first occurence of the specified item in + * Returns the index of the first occurrence of the specified item in * this list. * - * @return the index of the first occurence of the specified item, or + * @return the index of the first occurrence of the specified item, or * -1 if the item could not be found */ gint gee_list_index_of (GeeList* self, gconstpointer item) { + GeeListIface* _iface_; g_return_val_if_fail (self != NULL, 0); - return GEE_LIST_GET_INTERFACE (self)->index_of (self, item); + _iface_ = GEE_LIST_GET_INTERFACE (self); + if (_iface_->index_of) { + return _iface_->index_of (self, item); + } + return -1; } /** @@ -450,8 +132,12 @@ gint index, gconstpointer item) { + GeeListIface* _iface_; g_return_if_fail (self != NULL); - GEE_LIST_GET_INTERFACE (self)->insert (self, index, item); + _iface_ = GEE_LIST_GET_INTERFACE (self); + if (_iface_->insert) { + _iface_->insert (self, index, item); + } } /** @@ -465,15 +151,20 @@ gee_list_remove_at (GeeList* self, gint index) { + GeeListIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_LIST_GET_INTERFACE (self)->remove_at (self, index); + _iface_ = GEE_LIST_GET_INTERFACE (self); + if (_iface_->remove_at) { + return _iface_->remove_at (self, index); + } + return NULL; } /** * Returns a slice of this list. * - * @param start zero-based index of the begin of the slice - * @param stop zero-based index after the end of the slice + * @param start zero-based index of the slice's first element + * @param stop zero-based index of the position after the end of the slice * * @return A list containing a slice of this list */ @@ -482,8 +173,13 @@ gint start, gint stop) { + GeeListIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_LIST_GET_INTERFACE (self)->slice (self, start, stop); + _iface_ = GEE_LIST_GET_INTERFACE (self); + if (_iface_->slice) { + return _iface_->slice (self, start, stop); + } + return NULL; } /** @@ -504,8 +200,13 @@ gpointer gee_list_first (GeeList* self) { + GeeListIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_LIST_GET_INTERFACE (self)->first (self); + _iface_ = GEE_LIST_GET_INTERFACE (self); + if (_iface_->first) { + return _iface_->first (self); + } + return NULL; } /** @@ -530,8 +231,13 @@ gpointer gee_list_last (GeeList* self) { + GeeListIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_LIST_GET_INTERFACE (self)->last (self); + _iface_ = GEE_LIST_GET_INTERFACE (self); + if (_iface_->last) { + return _iface_->last (self); + } + return NULL; } /** @@ -581,8 +287,12 @@ gint index, GeeCollection* collection) { + GeeListIface* _iface_; g_return_if_fail (self != NULL); - GEE_LIST_GET_INTERFACE (self)->insert_all (self, index, collection); + _iface_ = GEE_LIST_GET_INTERFACE (self); + if (_iface_->insert_all) { + _iface_->insert_all (self, index, collection); + } } /** @@ -597,7 +307,7 @@ GDestroyNotify compare_func_target_destroy_notify) { if (compare_func == NULL) { - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GCompareDataFunc _tmp2_; _tmp2_ = gee_functions_get_compare_func_for (GEE_LIST_GET_INTERFACE (self)->get_g_type (self), &_tmp0_, &_tmp1_); @@ -622,8 +332,12 @@ gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify) { + GeeListIface* _iface_; g_return_if_fail (self != NULL); - GEE_LIST_GET_INTERFACE (self)->sort (self, compare_func, compare_func_target, compare_func_target_destroy_notify); + _iface_ = GEE_LIST_GET_INTERFACE (self); + if (_iface_->sort) { + _iface_->sort (self, compare_func, compare_func_target, compare_func_target_destroy_notify); + } } /** @@ -655,8 +369,13 @@ GeeList* gee_list_get_read_only_view (GeeList* self) { + GeeListIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_LIST_GET_INTERFACE (self)->get_read_only_view (self); + _iface_ = GEE_LIST_GET_INTERFACE (self); + if (_iface_->get_read_only_view) { + return _iface_->get_read_only_view (self); + } + return NULL; } static void @@ -676,15 +395,23 @@ /** * An ordered collection. */ +static GType +gee_list_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeListIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_list_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_list_type_id; + gee_list_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeList", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_list_type_id, GEE_TYPE_COLLECTION); + return gee_list_type_id; +} + GType gee_list_get_type (void) { static volatile gsize gee_list_type_id__volatile = 0; if (g_once_init_enter (&gee_list_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeListIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_list_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_list_type_id; - gee_list_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeList", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_list_type_id, GEE_TYPE_COLLECTION); + gee_list_type_id = gee_list_get_type_once (); g_once_init_leave (&gee_list_type_id__volatile, gee_list_type_id); } return gee_list_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/listiterator.c libgee-0.8-0.20.4/gee/listiterator.c --- libgee-0.8-0.20.3/gee/listiterator.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/listiterator.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* listiterator.c generated by valac 0.46.6, the Vala compiler +/* listiterator.c generated by valac 0.52.0, the Vala compiler * generated from listiterator.vala, do not modify */ /* listiterator.vala @@ -23,120 +23,11 @@ * Didier 'Ptitjes Villevalois */ +#include "gee.h" #include #include -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -void gee_list_iterator_set (GeeListIterator* self, - gconstpointer item); -void gee_list_iterator_add (GeeListIterator* self, - gconstpointer item); -gint gee_list_iterator_index (GeeListIterator* self); +static GType gee_list_iterator_get_type_once (void); /** * Sets the current item in the iteration to the specified new item. @@ -145,8 +36,12 @@ gee_list_iterator_set (GeeListIterator* self, gconstpointer item) { + GeeListIteratorIface* _iface_; g_return_if_fail (self != NULL); - GEE_LIST_ITERATOR_GET_INTERFACE (self)->set (self, item); + _iface_ = GEE_LIST_ITERATOR_GET_INTERFACE (self); + if (_iface_->set) { + _iface_->set (self, item); + } } /** @@ -160,8 +55,12 @@ gee_list_iterator_add (GeeListIterator* self, gconstpointer item) { + GeeListIteratorIface* _iface_; g_return_if_fail (self != NULL); - GEE_LIST_ITERATOR_GET_INTERFACE (self)->add (self, item); + _iface_ = GEE_LIST_ITERATOR_GET_INTERFACE (self); + if (_iface_->add) { + _iface_->add (self, item); + } } /** @@ -172,8 +71,13 @@ gint gee_list_iterator_index (GeeListIterator* self) { + GeeListIteratorIface* _iface_; g_return_val_if_fail (self != NULL, 0); - return GEE_LIST_ITERATOR_GET_INTERFACE (self)->index (self); + _iface_ = GEE_LIST_ITERATOR_GET_INTERFACE (self); + if (_iface_->index) { + return _iface_->index (self); + } + return -1; } static void @@ -185,15 +89,23 @@ /** * A list iterator. This supports bi-directionnal and index-based iteration. */ +static GType +gee_list_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeListIteratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_list_iterator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_list_iterator_type_id; + gee_list_iterator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeListIterator", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_list_iterator_type_id, GEE_TYPE_ITERATOR); + return gee_list_iterator_type_id; +} + GType gee_list_iterator_get_type (void) { static volatile gsize gee_list_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_list_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeListIteratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_list_iterator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_list_iterator_type_id; - gee_list_iterator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeListIterator", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_list_iterator_type_id, GEE_TYPE_ITERATOR); + gee_list_iterator_type_id = gee_list_iterator_get_type_once (); g_once_init_leave (&gee_list_iterator_type_id__volatile, gee_list_iterator_type_id); } return gee_list_iterator_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/list.vala libgee-0.8-0.20.4/gee/list.vala --- libgee-0.8-0.20.3/gee/list.vala 2019-04-01 11:36:25.000000000 +0000 +++ libgee-0.8-0.20.4/gee/list.vala 2021-03-17 11:24:00.000000000 +0000 @@ -49,10 +49,10 @@ public abstract void set (int index, G item); /** - * Returns the index of the first occurence of the specified item in + * Returns the index of the first occurrence of the specified item in * this list. * - * @return the index of the first occurence of the specified item, or + * @return the index of the first occurrence of the specified item, or * -1 if the item could not be found */ public abstract int index_of (G item); @@ -77,8 +77,8 @@ /** * Returns a slice of this list. * - * @param start zero-based index of the begin of the slice - * @param stop zero-based index after the end of the slice + * @param start zero-based index of the slice's first element + * @param stop zero-based index of the position after the end of the slice * * @return A list containing a slice of this list */ diff -Nru libgee-0.8-0.20.3/gee/Makefile.am libgee-0.8-0.20.4/gee/Makefile.am --- libgee-0.8-0.20.3/gee/Makefile.am 2020-02-09 19:02:35.000000000 +0000 +++ libgee-0.8-0.20.4/gee/Makefile.am 2021-03-17 11:24:00.000000000 +0000 @@ -121,6 +121,7 @@ -h gee-internals.h \ --internal-vapi gee-internals-0.8.vapi \ --library gee-0.8 --gir Gee-0.8.gir \ + --vapi-comments \ --pkg gio-2.0 \ --vapidir $(top_srcdir)/utils --pkg geeutils \ $(COVERAGE_VALAFLAGS) \ diff -Nru libgee-0.8-0.20.3/gee/Makefile.in libgee-0.8-0.20.4/gee/Makefile.in --- libgee-0.8-0.20.3/gee/Makefile.in 2020-02-09 19:03:15.000000000 +0000 +++ libgee-0.8-0.20.4/gee/Makefile.in 2021-03-17 19:58:39.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -604,6 +604,7 @@ -h gee-internals.h \ --internal-vapi gee-internals-0.8.vapi \ --library gee-0.8 --gir Gee-0.8.gir \ + --vapi-comments \ --pkg gio-2.0 \ --vapidir $(top_srcdir)/utils --pkg geeutils \ $(COVERAGE_VALAFLAGS) \ diff -Nru libgee-0.8-0.20.3/gee/map.c libgee-0.8-0.20.4/gee/map.c --- libgee-0.8-0.20.3/gee/map.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/map.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* map.c generated by valac 0.46.6, the Vala compiler +/* map.c generated by valac 0.52.0, the Vala compiler * generated from map.vala, do not modify */ /* map.vala @@ -23,124 +23,11 @@ * Jürg Billeter */ +#include "gee.h" #include #include -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -typedef guint (*GeeHashDataFunc) (gconstpointer v, gpointer user_data); -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type ()) -#define GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)) -#define GEE_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) -#define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) - -typedef struct _GeeAbstractMap GeeAbstractMap; -typedef struct _GeeAbstractMapClass GeeAbstractMapClass; - -#define GEE_TYPE_HASH_MAP (gee_hash_map_get_type ()) -#define GEE_HASH_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_MAP, GeeHashMap)) -#define GEE_HASH_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_MAP, GeeHashMapClass)) -#define GEE_IS_HASH_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_MAP)) -#define GEE_IS_HASH_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_MAP)) -#define GEE_HASH_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_MAP, GeeHashMapClass)) - -typedef struct _GeeHashMap GeeHashMap; -typedef struct _GeeHashMapClass GeeHashMapClass; -typedef struct _GeeMapEntryPrivate GeeMapEntryPrivate; enum { GEE_MAP_ENTRY_0_PROPERTY, GEE_MAP_ENTRY_K_TYPE, @@ -156,142 +43,6 @@ }; static GParamSpec* gee_map_entry_properties[GEE_MAP_ENTRY_NUM_PROPERTIES]; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeMapEntry { - GObject parent_instance; - GeeMapEntryPrivate * priv; -}; - -struct _GeeMapEntryClass { - GObjectClass parent_class; - gconstpointer (*get_key) (GeeMapEntry* self); - gconstpointer (*get_value) (GeeMapEntry* self); - void (*set_value) (GeeMapEntry* self, gconstpointer value); - gboolean (*get_read_only) (GeeMapEntry* self); -}; - struct _GeeMapEntryPrivate { GType k_type; GBoxedCopyFunc k_dup_func; @@ -304,132 +55,13 @@ static gint GeeMapEntry_private_offset; static gpointer gee_map_entry_parent_class = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -gboolean gee_map_has_key (GeeMap* self, - gconstpointer key); -gboolean gee_map_contains (GeeMap* self, - gconstpointer key) G_GNUC_DEPRECATED; -gboolean gee_map_has (GeeMap* self, - gconstpointer key, - gconstpointer value); -gpointer gee_map_get (GeeMap* self, - gconstpointer key); -void gee_map_set (GeeMap* self, - gconstpointer key, - gconstpointer value); -gboolean gee_map_unset (GeeMap* self, - gconstpointer key, - gpointer* value); -gboolean gee_map_remove (GeeMap* self, - gconstpointer key, - gpointer* value) G_GNUC_DEPRECATED; -void gee_map_clear (GeeMap* self); -GeeMapIterator* gee_map_map_iterator (GeeMap* self); -void gee_map_set_all (GeeMap* self, - GeeMap* map); static void gee_map_real_set_all (GeeMap* self, GeeMap* map); -GeeSet* gee_map_get_entries (GeeMap* self); -GeeIterator* gee_iterable_iterator (GeeIterable* self); -gboolean gee_iterator_next (GeeIterator* self); -gpointer gee_iterator_get (GeeIterator* self); -gconstpointer gee_map_entry_get_key (GeeMapEntry* self); -gconstpointer gee_map_entry_get_value (GeeMapEntry* self); -gboolean gee_map_unset_all (GeeMap* self, - GeeMap* map); static gboolean gee_map_real_unset_all (GeeMap* self, GeeMap* map); -GeeSet* gee_map_get_keys (GeeMap* self); -gboolean gee_map_remove_all (GeeMap* self, - GeeMap* map) G_GNUC_DEPRECATED; -gboolean gee_map_has_all (GeeMap* self, - GeeMap* map); static gboolean gee_map_real_has_all (GeeMap* self, GeeMap* map); -gboolean gee_map_contains_all (GeeMap* self, - GeeMap* map) G_GNUC_DEPRECATED; -GeeMap* gee_map_empty (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func); -GeeHashMap* gee_hash_map_new (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GeeHashDataFunc key_hash_func, - gpointer key_hash_func_target, - GDestroyNotify key_hash_func_target_destroy_notify, - GeeEqualDataFunc key_equal_func, - gpointer key_equal_func_target, - GDestroyNotify key_equal_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GeeHashMap* gee_hash_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GeeHashDataFunc key_hash_func, - gpointer key_hash_func_target, - GDestroyNotify key_hash_func_target_destroy_notify, - GeeEqualDataFunc key_equal_func, - gpointer key_equal_func_target, - GDestroyNotify key_equal_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GType gee_abstract_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMap, g_object_unref) -GType gee_hash_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashMap, g_object_unref) -GeeMap* gee_abstract_map_get_read_only_view (GeeAbstractMap* self); -gint gee_map_get_size (GeeMap* self); -gboolean gee_map_get_is_empty (GeeMap* self); -gboolean gee_map_get_read_only (GeeMap* self); -GeeCollection* gee_map_get_values (GeeMap* self); -GeeMap* gee_map_get_read_only_view (GeeMap* self); -GType gee_map_get_key_type (GeeMap* self); -GType gee_map_get_value_type (GeeMap* self); -GeeMapEntry* gee_map_entry_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func); -void gee_map_entry_set_value (GeeMapEntry* self, - gconstpointer value); -gboolean gee_map_entry_get_read_only (GeeMapEntry* self); +static GType gee_map_entry_get_type_once (void); static void _vala_gee_map_entry_get_property (GObject * object, guint property_id, GValue * value, @@ -438,6 +70,7 @@ guint property_id, const GValue * value, GParamSpec * pspec); +static GType gee_map_get_type_once (void); /** * Determines whether this map has the specified key. @@ -450,8 +83,13 @@ gee_map_has_key (GeeMap* self, gconstpointer key) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_GET_INTERFACE (self)->has_key (self, key); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->has_key) { + return _iface_->has_key (self, key); + } + return FALSE; } /** @@ -483,8 +121,13 @@ gconstpointer key, gconstpointer value) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_GET_INTERFACE (self)->has (self, key, value); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->has) { + return _iface_->has (self, key, value); + } + return FALSE; } /** @@ -499,8 +142,13 @@ gee_map_get (GeeMap* self, gconstpointer key) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MAP_GET_INTERFACE (self)->get (self, key); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->get) { + return _iface_->get (self, key); + } + return NULL; } /** @@ -514,8 +162,12 @@ gconstpointer key, gconstpointer value) { + GeeMapIface* _iface_; g_return_if_fail (self != NULL); - GEE_MAP_GET_INTERFACE (self)->set (self, key, value); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->set) { + _iface_->set (self, key, value); + } } /** @@ -531,8 +183,13 @@ gconstpointer key, gpointer* value) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_GET_INTERFACE (self)->unset (self, key, value); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->unset) { + return _iface_->unset (self, key, value); + } + return FALSE; } /** @@ -571,8 +228,12 @@ void gee_map_clear (GeeMap* self) { + GeeMapIface* _iface_; g_return_if_fail (self != NULL); - GEE_MAP_GET_INTERFACE (self)->clear (self); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->clear) { + _iface_->clear (self); + } } /** @@ -583,8 +244,13 @@ GeeMapIterator* gee_map_map_iterator (GeeMap* self) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MAP_GET_INTERFACE (self)->map_iterator (self); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->map_iterator) { + return _iface_->map_iterator (self); + } + return NULL; } /** @@ -646,8 +312,12 @@ gee_map_set_all (GeeMap* self, GeeMap* map) { + GeeMapIface* _iface_; g_return_if_fail (self != NULL); - GEE_MAP_GET_INTERFACE (self)->set_all (self, map); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->set_all) { + _iface_->set_all (self, map); + } } /** @@ -705,8 +375,13 @@ gee_map_unset_all (GeeMap* self, GeeMap* map) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_GET_INTERFACE (self)->unset_all (self, map); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->unset_all) { + return _iface_->unset_all (self, map); + } + return FALSE; } /** @@ -726,7 +401,8 @@ } /** - * Returns ``true`` it this map contains all items as the input map. + * Returns ``true`` if this map contains all the same items as the input + * map. * * @param map the map which items will be compared with this map */ @@ -792,12 +468,18 @@ gee_map_has_all (GeeMap* self, GeeMap* map) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_GET_INTERFACE (self)->has_all (self, map); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->has_all) { + return _iface_->has_all (self, map); + } + return FALSE; } /** - * Returns ``true`` it this map contains all items as the input map. + * Returns ``true`` if this map contains all the same items as the input + * map. * * @param map the map which items will be compared with this map */ @@ -843,15 +525,25 @@ gint gee_map_get_size (GeeMap* self) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, 0); - return GEE_MAP_GET_INTERFACE (self)->get_size (self); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->get_size) { + return _iface_->get_size (self); + } + return -1; } gboolean gee_map_get_is_empty (GeeMap* self) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_GET_INTERFACE (self)->get_is_empty (self); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->get_is_empty) { + return _iface_->get_is_empty (self); + } + return FALSE; } static gboolean @@ -871,36 +563,61 @@ gboolean gee_map_get_read_only (GeeMap* self) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_GET_INTERFACE (self)->get_read_only (self); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->get_read_only) { + return _iface_->get_read_only (self); + } + return FALSE; } GeeSet* gee_map_get_keys (GeeMap* self) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MAP_GET_INTERFACE (self)->get_keys (self); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->get_keys) { + return _iface_->get_keys (self); + } + return NULL; } GeeCollection* gee_map_get_values (GeeMap* self) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MAP_GET_INTERFACE (self)->get_values (self); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->get_values) { + return _iface_->get_values (self); + } + return NULL; } GeeSet* gee_map_get_entries (GeeMap* self) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MAP_GET_INTERFACE (self)->get_entries (self); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->get_entries) { + return _iface_->get_entries (self); + } + return NULL; } GeeMap* gee_map_get_read_only_view (GeeMap* self) { + GeeMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MAP_GET_INTERFACE (self)->get_read_only_view (self); + _iface_ = GEE_MAP_GET_INTERFACE (self); + if (_iface_->get_read_only_view) { + return _iface_->get_read_only_view (self); + } + return NULL; } GType @@ -950,30 +667,49 @@ gconstpointer gee_map_entry_get_key (GeeMapEntry* self) { + GeeMapEntryClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MAP_ENTRY_GET_CLASS (self)->get_key (self); + _klass_ = GEE_MAP_ENTRY_GET_CLASS (self); + if (_klass_->get_key) { + return _klass_->get_key (self); + } + return NULL; } gconstpointer gee_map_entry_get_value (GeeMapEntry* self) { + GeeMapEntryClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MAP_ENTRY_GET_CLASS (self)->get_value (self); + _klass_ = GEE_MAP_ENTRY_GET_CLASS (self); + if (_klass_->get_value) { + return _klass_->get_value (self); + } + return NULL; } void gee_map_entry_set_value (GeeMapEntry* self, gconstpointer value) { + GeeMapEntryClass* _klass_; g_return_if_fail (self != NULL); - GEE_MAP_ENTRY_GET_CLASS (self)->set_value (self, value); + _klass_ = GEE_MAP_ENTRY_GET_CLASS (self); + if (_klass_->set_value) { + _klass_->set_value (self, value); + } } gboolean gee_map_entry_get_read_only (GeeMapEntry* self) { + GeeMapEntryClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_ENTRY_GET_CLASS (self)->get_read_only (self); + _klass_ = GEE_MAP_ENTRY_GET_CLASS (self); + if (_klass_->get_read_only) { + return _klass_->get_read_only (self); + } + return FALSE; } static void @@ -1014,15 +750,23 @@ /** * An entry of a map. */ +static GType +gee_map_entry_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeMapEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_map_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeMapEntry), 0, (GInstanceInitFunc) gee_map_entry_instance_init, NULL }; + GType gee_map_entry_type_id; + gee_map_entry_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeMapEntry", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + GeeMapEntry_private_offset = g_type_add_instance_private (gee_map_entry_type_id, sizeof (GeeMapEntryPrivate)); + return gee_map_entry_type_id; +} + GType gee_map_entry_get_type (void) { static volatile gsize gee_map_entry_type_id__volatile = 0; if (g_once_init_enter (&gee_map_entry_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeMapEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_map_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeMapEntry), 0, (GInstanceInitFunc) gee_map_entry_instance_init, NULL }; GType gee_map_entry_type_id; - gee_map_entry_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeMapEntry", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - GeeMapEntry_private_offset = g_type_add_instance_private (gee_map_entry_type_id, sizeof (GeeMapEntryPrivate)); + gee_map_entry_type_id = gee_map_entry_get_type_once (); g_once_init_leave (&gee_map_entry_type_id__volatile, gee_map_entry_type_id); } return gee_map_entry_type_id__volatile; @@ -1103,7 +847,7 @@ */ g_object_interface_install_property (iface, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); /** - * Specifies whether this collection can change - i.e. wheather {@link set}, + * Specifies whether this collection can change - i.e. whether {@link set}, * {@link remove} etc. are legal operations. */ g_object_interface_install_property (iface, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); @@ -1132,16 +876,24 @@ /** * An object that maps keys to values. */ +static GType +gee_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeMapIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_map_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_map_type_id; + gee_map_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeMap", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_map_type_id, G_TYPE_OBJECT); + g_type_interface_add_prerequisite (gee_map_type_id, GEE_TYPE_ITERABLE); + return gee_map_type_id; +} + GType gee_map_get_type (void) { static volatile gsize gee_map_type_id__volatile = 0; if (g_once_init_enter (&gee_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeMapIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_map_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_map_type_id; - gee_map_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeMap", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_map_type_id, G_TYPE_OBJECT); - g_type_interface_add_prerequisite (gee_map_type_id, GEE_TYPE_ITERABLE); + gee_map_type_id = gee_map_get_type_once (); g_once_init_leave (&gee_map_type_id__volatile, gee_map_type_id); } return gee_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/mapiterator.c libgee-0.8-0.20.4/gee/mapiterator.c --- libgee-0.8-0.20.3/gee/mapiterator.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/mapiterator.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* mapiterator.c generated by valac 0.46.6, the Vala compiler +/* mapiterator.c generated by valac 0.52.0, the Vala compiler * generated from mapiterator.vala, do not modify */ /* mapiterator.vala @@ -24,57 +24,10 @@ * Didier 'Ptitjes Villevalois */ -#include +#include "gee.h" #include +#include -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -#define _a_destroy_func0(var) (((var == NULL) || (a_destroy_func == NULL)) ? NULL : (var = (a_destroy_func (var), NULL))) - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -gboolean gee_map_iterator_next (GeeMapIterator* self); -gboolean gee_map_iterator_has_next (GeeMapIterator* self); -gpointer gee_map_iterator_get_key (GeeMapIterator* self); -gpointer gee_map_iterator_get_value (GeeMapIterator* self); -void gee_map_iterator_set_value (GeeMapIterator* self, - gconstpointer value); -void gee_map_iterator_unset (GeeMapIterator* self); -gpointer gee_map_iterator_fold (GeeMapIterator* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeFoldMapFunc f, - gpointer f_target, - gpointer seed); static gpointer gee_map_iterator_real_fold (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, @@ -82,15 +35,10 @@ GeeFoldMapFunc f, gpointer f_target, gpointer seed); -gboolean gee_map_iterator_get_valid (GeeMapIterator* self); -gboolean gee_map_iterator_foreach (GeeMapIterator* self, - GeeForallMapFunc f, - gpointer f_target); static gboolean gee_map_iterator_real_foreach (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); -gboolean gee_map_iterator_get_mutable (GeeMapIterator* self); -gboolean gee_map_iterator_get_read_only (GeeMapIterator* self); +static GType gee_map_iterator_get_type_once (void); /** * Advances to the next entry in the iteration. @@ -100,8 +48,13 @@ gboolean gee_map_iterator_next (GeeMapIterator* self) { + GeeMapIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_ITERATOR_GET_INTERFACE (self)->next (self); + _iface_ = GEE_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->next) { + return _iface_->next (self); + } + return FALSE; } /** @@ -112,8 +65,13 @@ gboolean gee_map_iterator_has_next (GeeMapIterator* self) { + GeeMapIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_ITERATOR_GET_INTERFACE (self)->has_next (self); + _iface_ = GEE_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->has_next) { + return _iface_->has_next (self); + } + return FALSE; } /** @@ -124,8 +82,13 @@ gpointer gee_map_iterator_get_key (GeeMapIterator* self) { + GeeMapIteratorIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MAP_ITERATOR_GET_INTERFACE (self)->get_key (self); + _iface_ = GEE_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->get_key) { + return _iface_->get_key (self); + } + return NULL; } /** @@ -136,8 +99,13 @@ gpointer gee_map_iterator_get_value (GeeMapIterator* self) { + GeeMapIteratorIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MAP_ITERATOR_GET_INTERFACE (self)->get_value (self); + _iface_ = GEE_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->get_value) { + return _iface_->get_value (self); + } + return NULL; } /** @@ -149,8 +117,12 @@ gee_map_iterator_set_value (GeeMapIterator* self, gconstpointer value) { + GeeMapIteratorIface* _iface_; g_return_if_fail (self != NULL); - GEE_MAP_ITERATOR_GET_INTERFACE (self)->set_value (self, value); + _iface_ = GEE_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->set_value) { + _iface_->set_value (self, value); + } } /** @@ -162,12 +134,16 @@ void gee_map_iterator_unset (GeeMapIterator* self) { + GeeMapIteratorIface* _iface_; g_return_if_fail (self != NULL); - GEE_MAP_ITERATOR_GET_INTERFACE (self)->unset (self); + _iface_ = GEE_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->unset) { + _iface_->unset (self); + } } /** - * Standard aggragation function. + * Standard aggregation function. * * It takes a function, seed and first element, returns the new seed and * progress to next element when the operation repeats. @@ -204,7 +180,7 @@ _tmp6_ = seed; seed = NULL; _tmp7_ = f (_tmp3_, _tmp5_, _tmp6_, f_target); - _a_destroy_func0 (seed); + ((seed == NULL) || (a_destroy_func == NULL)) ? NULL : (seed = (a_destroy_func (seed), NULL)); seed = _tmp7_; ((_tmp5_ == NULL) || (GEE_MAP_ITERATOR_GET_INTERFACE (self)->get_v_destroy_func (self) == NULL)) ? NULL : (_tmp5_ = (GEE_MAP_ITERATOR_GET_INTERFACE (self)->get_v_destroy_func (self) (_tmp5_), NULL)); ((_tmp3_ == NULL) || (GEE_MAP_ITERATOR_GET_INTERFACE (self)->get_k_destroy_func (self) == NULL)) ? NULL : (_tmp3_ = (GEE_MAP_ITERATOR_GET_INTERFACE (self)->get_k_destroy_func (self) (_tmp3_), NULL)); @@ -226,7 +202,7 @@ _tmp12_ = seed; seed = NULL; _tmp13_ = f (_tmp9_, _tmp11_, _tmp12_, f_target); - _a_destroy_func0 (seed); + ((seed == NULL) || (a_destroy_func == NULL)) ? NULL : (seed = (a_destroy_func (seed), NULL)); seed = _tmp13_; ((_tmp11_ == NULL) || (GEE_MAP_ITERATOR_GET_INTERFACE (self)->get_v_destroy_func (self) == NULL)) ? NULL : (_tmp11_ = (GEE_MAP_ITERATOR_GET_INTERFACE (self)->get_v_destroy_func (self) (_tmp11_), NULL)); ((_tmp9_ == NULL) || (GEE_MAP_ITERATOR_GET_INTERFACE (self)->get_k_destroy_func (self) == NULL)) ? NULL : (_tmp9_ = (GEE_MAP_ITERATOR_GET_INTERFACE (self)->get_k_destroy_func (self) (_tmp9_), NULL)); @@ -234,7 +210,7 @@ _tmp14_ = seed; seed = NULL; result = _tmp14_; - _a_destroy_func0 (seed); + ((seed == NULL) || (a_destroy_func == NULL)) ? NULL : (seed = (a_destroy_func (seed), NULL)); return result; } @@ -247,8 +223,13 @@ gpointer f_target, gpointer seed) { + GeeMapIteratorIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MAP_ITERATOR_GET_INTERFACE (self)->fold (self, a_type, a_dup_func, a_destroy_func, f, f_target, seed); + _iface_ = GEE_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->fold) { + return _iface_->fold (self, a_type, a_dup_func, a_destroy_func, f, f_target, seed); + } + return NULL; } /** @@ -315,29 +296,49 @@ GeeForallMapFunc f, gpointer f_target) { + GeeMapIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_ITERATOR_GET_INTERFACE (self)->foreach (self, f, f_target); + _iface_ = GEE_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->foreach) { + return _iface_->foreach (self, f, f_target); + } + return FALSE; } gboolean gee_map_iterator_get_valid (GeeMapIterator* self) { + GeeMapIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_ITERATOR_GET_INTERFACE (self)->get_valid (self); + _iface_ = GEE_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->get_valid) { + return _iface_->get_valid (self); + } + return FALSE; } gboolean gee_map_iterator_get_mutable (GeeMapIterator* self) { + GeeMapIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_ITERATOR_GET_INTERFACE (self)->get_mutable (self); + _iface_ = GEE_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->get_mutable) { + return _iface_->get_mutable (self); + } + return FALSE; } gboolean gee_map_iterator_get_read_only (GeeMapIterator* self) { + GeeMapIteratorIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MAP_ITERATOR_GET_INTERFACE (self)->get_read_only (self); + _iface_ = GEE_MAP_ITERATOR_GET_INTERFACE (self); + if (_iface_->get_read_only) { + return _iface_->get_read_only (self); + } + return FALSE; } static void @@ -345,19 +346,19 @@ gpointer iface_data) { /** - * Determines wheather the call to {@link get_key}, {@link get_value} and + * Determines whether the call to {@link get_key}, {@link get_value} and * {@link set_value} is legal. It is false at the beginning and after * {@link unset} call and true otherwise. */ g_object_interface_install_property (iface, g_param_spec_boolean ("valid", "valid", "valid", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); /** - * Determines wheather the call to {@link set_value} is legal assuming the + * Determines whether the call to {@link set_value} is legal assuming the * iterator is valid. The value must not change in runtime hence the user * of iterator may cache it. */ g_object_interface_install_property (iface, g_param_spec_boolean ("mutable", "mutable", "mutable", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); /** - * Determines wheather the call to {@link unset} is legal assuming the + * Determines whether the call to {@link unset} is legal assuming the * iterator is valid. The value must not change in runtime hence the user * of iterator may cache it. */ @@ -378,15 +379,23 @@ * will fail. After the next call to {@link next}, they will * be defined again. */ +static GType +gee_map_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeMapIteratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_map_iterator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_map_iterator_type_id; + gee_map_iterator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeMapIterator", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_map_iterator_type_id, G_TYPE_OBJECT); + return gee_map_iterator_type_id; +} + GType gee_map_iterator_get_type (void) { static volatile gsize gee_map_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_map_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeMapIteratorIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_map_iterator_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_map_iterator_type_id; - gee_map_iterator_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeMapIterator", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_map_iterator_type_id, G_TYPE_OBJECT); + gee_map_iterator_type_id = gee_map_iterator_get_type_once (); g_once_init_leave (&gee_map_iterator_type_id__volatile, gee_map_iterator_type_id); } return gee_map_iterator_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/mapiterator.vala libgee-0.8-0.20.4/gee/mapiterator.vala --- libgee-0.8-0.20.3/gee/mapiterator.vala 2014-08-05 06:27:46.000000000 +0000 +++ libgee-0.8-0.20.4/gee/mapiterator.vala 2021-03-17 11:24:00.000000000 +0000 @@ -84,28 +84,28 @@ public abstract void unset (); /** - * Determines wheather the call to {@link get_key}, {@link get_value} and + * Determines whether the call to {@link get_key}, {@link get_value} and * {@link set_value} is legal. It is false at the beginning and after * {@link unset} call and true otherwise. */ public abstract bool valid { get; } /** - * Determines wheather the call to {@link set_value} is legal assuming the + * Determines whether the call to {@link set_value} is legal assuming the * iterator is valid. The value must not change in runtime hence the user * of iterator may cache it. */ public abstract bool mutable { get; } /** - * Determines wheather the call to {@link unset} is legal assuming the + * Determines whether the call to {@link unset} is legal assuming the * iterator is valid. The value must not change in runtime hence the user * of iterator may cache it. */ public abstract bool read_only { get; } /** - * Standard aggragation function. + * Standard aggregation function. * * It takes a function, seed and first element, returns the new seed and * progress to next element when the operation repeats. diff -Nru libgee-0.8-0.20.3/gee/map.vala libgee-0.8-0.20.4/gee/map.vala --- libgee-0.8-0.20.3/gee/map.vala 2017-02-28 07:36:15.000000000 +0000 +++ libgee-0.8-0.20.4/gee/map.vala 2021-03-17 11:24:00.000000000 +0000 @@ -36,7 +36,7 @@ public virtual bool is_empty { get { return size == 0; } } /** - * Specifies whether this collection can change - i.e. wheather {@link set}, + * Specifies whether this collection can change - i.e. whether {@link set}, * {@link remove} etc. are legal operations. */ public abstract bool read_only { get; } @@ -210,7 +210,8 @@ } /** - * Returns ``true`` it this map contains all items as the input map. + * Returns ``true`` if this map contains all the same items as the input + * map. * * @param map the map which items will be compared with this map */ @@ -224,7 +225,8 @@ } /** - * Returns ``true`` it this map contains all items as the input map. + * Returns ``true`` if this map contains all the same items as the input + * map. * * @param map the map which items will be compared with this map */ diff -Nru libgee-0.8-0.20.3/gee/multimap.c libgee-0.8-0.20.4/gee/multimap.c --- libgee-0.8-0.20.3/gee/multimap.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/multimap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* multimap.c generated by valac 0.46.6, the Vala compiler +/* multimap.c generated by valac 0.52.0, the Vala compiler * generated from multimap.vala, do not modify */ /* multimap.vala @@ -23,99 +23,10 @@ * Ali Sabil */ +#include "gee.h" #include #include -#define GEE_TYPE_MULTI_MAP (gee_multi_map_get_type ()) -#define GEE_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMap)) -#define GEE_IS_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_MAP)) -#define GEE_MULTI_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMapIface)) - -typedef struct _GeeMultiMap GeeMultiMap; -typedef struct _GeeMultiMapIface GeeMultiMapIface; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_MULTI_SET (gee_multi_set_get_type ()) -#define GEE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_SET, GeeMultiSet)) -#define GEE_IS_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_SET)) -#define GEE_MULTI_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface)) - -typedef struct _GeeMultiSet GeeMultiSet; -typedef struct _GeeMultiSetIface GeeMultiSetIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - #define GEE_TYPE_READ_ONLY_MULTI_MAP (gee_read_only_multi_map_get_type ()) #define GEE_READ_ONLY_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_MULTI_MAP, GeeReadOnlyMultiMap)) #define GEE_READ_ONLY_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_MULTI_MAP, GeeReadOnlyMultiMapClass)) @@ -126,187 +37,14 @@ typedef struct _GeeReadOnlyMultiMap GeeReadOnlyMultiMap; typedef struct _GeeReadOnlyMultiMapClass GeeReadOnlyMultiMapClass; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMultiSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeMultiSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeMultiSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeMultiSet* self); - gint (*count) (GeeMultiSet* self, gconstpointer item); - GeeMultiSet* (*get_read_only_view) (GeeMultiSet* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeMultiMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMultiMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMultiMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMultiMap* self); - GType (*get_v_type) (GeeMultiMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMultiMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMultiMap* self); - GeeSet* (*get_keys) (GeeMultiMap* self); - GeeMultiSet* (*get_all_keys) (GeeMultiMap* self); - GeeCollection* (*get_values) (GeeMultiMap* self); - gboolean (*contains) (GeeMultiMap* self, gconstpointer key); - GeeCollection* (*get) (GeeMultiMap* self, gconstpointer key); - void (*set) (GeeMultiMap* self, gconstpointer key, gconstpointer value); - gboolean (*remove) (GeeMultiMap* self, gconstpointer key, gconstpointer value); - gboolean (*remove_all) (GeeMultiMap* self, gconstpointer key); - void (*clear) (GeeMultiMap* self); - GeeMapIterator* (*map_iterator) (GeeMultiMap* self); - gint (*get_size) (GeeMultiMap* self); - gboolean (*get_read_only) (GeeMultiMap* self); - GeeMultiMap* (*get_read_only_view) (GeeMultiMap* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_multi_set_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_multi_map_get_type (void) G_GNUC_CONST; -GeeSet* gee_multi_map_get_keys (GeeMultiMap* self); -GeeMultiSet* gee_multi_map_get_all_keys (GeeMultiMap* self); -GeeCollection* gee_multi_map_get_values (GeeMultiMap* self); -gboolean gee_multi_map_contains (GeeMultiMap* self, - gconstpointer key); -GeeCollection* gee_multi_map_get (GeeMultiMap* self, - gconstpointer key); -void gee_multi_map_set (GeeMultiMap* self, - gconstpointer key, - gconstpointer value); -gboolean gee_multi_map_remove (GeeMultiMap* self, - gconstpointer key, - gconstpointer value); -gboolean gee_multi_map_remove_all (GeeMultiMap* self, - gconstpointer key); -void gee_multi_map_clear (GeeMultiMap* self); -GeeMapIterator* gee_multi_map_map_iterator (GeeMultiMap* self); -gint gee_multi_map_get_size (GeeMultiMap* self); -gboolean gee_multi_map_get_read_only (GeeMultiMap* self); -GType gee_multi_map_get_key_type (GeeMultiMap* self); -GType gee_multi_map_get_value_type (GeeMultiMap* self); -GeeMultiMap* gee_multi_map_get_read_only_view (GeeMultiMap* self); -G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_new (GType k_type, + G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMultiMap* multimap); -G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -314,8 +52,8 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMultiMap* multimap); -G_GNUC_INTERNAL GType gee_read_only_multi_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMultiMap, g_object_unref) + G_GNUC_INTERNAL GType gee_read_only_multi_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +static GType gee_multi_map_get_type_once (void); /** * Returns the keys of this multimap as a read-only set. @@ -325,8 +63,13 @@ GeeSet* gee_multi_map_get_keys (GeeMultiMap* self) { + GeeMultiMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MULTI_MAP_GET_INTERFACE (self)->get_keys (self); + _iface_ = GEE_MULTI_MAP_GET_INTERFACE (self); + if (_iface_->get_keys) { + return _iface_->get_keys (self); + } + return NULL; } /** @@ -337,8 +80,13 @@ GeeMultiSet* gee_multi_map_get_all_keys (GeeMultiMap* self) { + GeeMultiMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MULTI_MAP_GET_INTERFACE (self)->get_all_keys (self); + _iface_ = GEE_MULTI_MAP_GET_INTERFACE (self); + if (_iface_->get_all_keys) { + return _iface_->get_all_keys (self); + } + return NULL; } /** @@ -349,8 +97,13 @@ GeeCollection* gee_multi_map_get_values (GeeMultiMap* self) { + GeeMultiMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MULTI_MAP_GET_INTERFACE (self)->get_values (self); + _iface_ = GEE_MULTI_MAP_GET_INTERFACE (self); + if (_iface_->get_values) { + return _iface_->get_values (self); + } + return NULL; } /** @@ -364,8 +117,13 @@ gee_multi_map_contains (GeeMultiMap* self, gconstpointer key) { + GeeMultiMapIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MULTI_MAP_GET_INTERFACE (self)->contains (self, key); + _iface_ = GEE_MULTI_MAP_GET_INTERFACE (self); + if (_iface_->contains) { + return _iface_->contains (self, key); + } + return FALSE; } /** @@ -379,8 +137,13 @@ gee_multi_map_get (GeeMultiMap* self, gconstpointer key) { + GeeMultiMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MULTI_MAP_GET_INTERFACE (self)->get (self, key); + _iface_ = GEE_MULTI_MAP_GET_INTERFACE (self); + if (_iface_->get) { + return _iface_->get (self, key); + } + return NULL; } /** @@ -394,8 +157,12 @@ gconstpointer key, gconstpointer value) { + GeeMultiMapIface* _iface_; g_return_if_fail (self != NULL); - GEE_MULTI_MAP_GET_INTERFACE (self)->set (self, key, value); + _iface_ = GEE_MULTI_MAP_GET_INTERFACE (self); + if (_iface_->set) { + _iface_->set (self, key, value); + } } /** @@ -411,8 +178,13 @@ gconstpointer key, gconstpointer value) { + GeeMultiMapIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MULTI_MAP_GET_INTERFACE (self)->remove (self, key, value); + _iface_ = GEE_MULTI_MAP_GET_INTERFACE (self); + if (_iface_->remove) { + return _iface_->remove (self, key, value); + } + return FALSE; } /** @@ -427,8 +199,13 @@ gee_multi_map_remove_all (GeeMultiMap* self, gconstpointer key) { + GeeMultiMapIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MULTI_MAP_GET_INTERFACE (self)->remove_all (self, key); + _iface_ = GEE_MULTI_MAP_GET_INTERFACE (self); + if (_iface_->remove_all) { + return _iface_->remove_all (self, key); + } + return FALSE; } /** @@ -437,8 +214,12 @@ void gee_multi_map_clear (GeeMultiMap* self) { + GeeMultiMapIface* _iface_; g_return_if_fail (self != NULL); - GEE_MULTI_MAP_GET_INTERFACE (self)->clear (self); + _iface_ = GEE_MULTI_MAP_GET_INTERFACE (self); + if (_iface_->clear) { + _iface_->clear (self); + } } /** @@ -449,22 +230,37 @@ GeeMapIterator* gee_multi_map_map_iterator (GeeMultiMap* self) { + GeeMultiMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MULTI_MAP_GET_INTERFACE (self)->map_iterator (self); + _iface_ = GEE_MULTI_MAP_GET_INTERFACE (self); + if (_iface_->map_iterator) { + return _iface_->map_iterator (self); + } + return NULL; } gint gee_multi_map_get_size (GeeMultiMap* self) { + GeeMultiMapIface* _iface_; g_return_val_if_fail (self != NULL, 0); - return GEE_MULTI_MAP_GET_INTERFACE (self)->get_size (self); + _iface_ = GEE_MULTI_MAP_GET_INTERFACE (self); + if (_iface_->get_size) { + return _iface_->get_size (self); + } + return -1; } gboolean gee_multi_map_get_read_only (GeeMultiMap* self) { + GeeMultiMapIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_MULTI_MAP_GET_INTERFACE (self)->get_read_only (self); + _iface_ = GEE_MULTI_MAP_GET_INTERFACE (self); + if (_iface_->get_read_only) { + return _iface_->get_read_only (self); + } + return FALSE; } GType @@ -488,8 +284,13 @@ GeeMultiMap* gee_multi_map_get_read_only_view (GeeMultiMap* self) { + GeeMultiMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MULTI_MAP_GET_INTERFACE (self)->get_read_only_view (self); + _iface_ = GEE_MULTI_MAP_GET_INTERFACE (self); + if (_iface_->get_read_only_view) { + return _iface_->get_read_only_view (self); + } + return NULL; } static GeeMultiMap* @@ -513,7 +314,7 @@ */ g_object_interface_install_property (iface, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); /** - * Specifies whether this collection can change - i.e. wheather {@link set}, + * Specifies whether this collection can change - i.e. whether {@link set}, * {@link remove} etc. are legal operations. */ g_object_interface_install_property (iface, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); @@ -523,15 +324,23 @@ /** * A map with multiple values per key. */ +static GType +gee_multi_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeMultiMapIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_multi_map_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_multi_map_type_id; + gee_multi_map_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeMultiMap", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_multi_map_type_id, G_TYPE_OBJECT); + return gee_multi_map_type_id; +} + GType gee_multi_map_get_type (void) { static volatile gsize gee_multi_map_type_id__volatile = 0; if (g_once_init_enter (&gee_multi_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeMultiMapIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_multi_map_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_multi_map_type_id; - gee_multi_map_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeMultiMap", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_multi_map_type_id, G_TYPE_OBJECT); + gee_multi_map_type_id = gee_multi_map_get_type_once (); g_once_init_leave (&gee_multi_map_type_id__volatile, gee_multi_map_type_id); } return gee_multi_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/multimap.vala libgee-0.8-0.20.4/gee/multimap.vala --- libgee-0.8-0.20.3/gee/multimap.vala 2014-08-05 06:27:46.000000000 +0000 +++ libgee-0.8-0.20.4/gee/multimap.vala 2021-03-17 11:24:00.000000000 +0000 @@ -31,7 +31,7 @@ public abstract int size { get; } /** - * Specifies whether this collection can change - i.e. wheather {@link set}, + * Specifies whether this collection can change - i.e. whether {@link set}, * {@link remove} etc. are legal operations. */ public abstract bool read_only { get; } diff -Nru libgee-0.8-0.20.3/gee/multiset.c libgee-0.8-0.20.4/gee/multiset.c --- libgee-0.8-0.20.3/gee/multiset.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/multiset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* multiset.c generated by valac 0.46.6, the Vala compiler +/* multiset.c generated by valac 0.52.0, the Vala compiler * generated from multiset.vala, do not modify */ /* multiset.vala @@ -23,112 +23,10 @@ * Ali Sabil */ +#include "gee.h" #include #include -#define GEE_TYPE_MULTI_SET (gee_multi_set_get_type ()) -#define GEE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_SET, GeeMultiSet)) -#define GEE_IS_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_SET)) -#define GEE_MULTI_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface)) - -typedef struct _GeeMultiSet GeeMultiSet; -typedef struct _GeeMultiSetIface GeeMultiSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; -typedef guint (*GeeHashDataFunc) (gconstpointer v, gpointer user_data); -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; - -#define GEE_TYPE_HASH_SET (gee_hash_set_get_type ()) -#define GEE_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_SET, GeeHashSet)) -#define GEE_HASH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_SET, GeeHashSetClass)) -#define GEE_IS_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_SET)) -#define GEE_IS_HASH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_SET)) -#define GEE_HASH_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_SET, GeeHashSetClass)) - -typedef struct _GeeHashSet GeeHashSet; -typedef struct _GeeHashSetClass GeeHashSetClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define GEE_TYPE_READ_ONLY_COLLECTION (gee_read_only_collection_get_type ()) @@ -151,170 +49,37 @@ typedef struct _GeeReadOnlyMultiSet GeeReadOnlyMultiSet; typedef struct _GeeReadOnlyMultiSetClass GeeReadOnlyMultiSetClass; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeMultiSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeMultiSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeMultiSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeMultiSet* self); - gint (*count) (GeeMultiSet* self, gconstpointer item); - GeeMultiSet* (*get_read_only_view) (GeeMultiSet* self); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_multi_set_get_type (void) G_GNUC_CONST; -gint gee_multi_set_count (GeeMultiSet* self, - gconstpointer item); -GType gee_set_get_type (void) G_GNUC_CONST; -GeeSet* gee_multi_set_empty (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeHashSet* gee_hash_set_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GDestroyNotify hash_func_target_destroy_notify, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeHashSet* gee_hash_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GDestroyNotify hash_func_target_destroy_notify, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_hash_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashSet, g_object_unref) -GeeSet* gee_abstract_set_get_read_only_view (GeeAbstractSet* self); -GeeMultiSet* gee_multi_set_get_read_only_view (GeeMultiSet* self); -G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeMultiSet* multiset); -G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeMultiSet* multiset); -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -G_GNUC_INTERNAL GType gee_read_only_multi_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMultiSet, g_object_unref) + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_multi_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +static GType gee_multi_set_get_type_once (void); /** - * Returns the number of occurences of an item in this multiset. + * Returns the number of occurrences of an item in this multiset. * - * @param item the item to count occurences of + * @param item the item to count occurrences of * - * @return the number of occurences of the item in this multiset. + * @return the number of occurrences of the item in this multiset. */ gint gee_multi_set_count (GeeMultiSet* self, gconstpointer item) { + GeeMultiSetIface* _iface_; g_return_val_if_fail (self != NULL, 0); - return GEE_MULTI_SET_GET_INTERFACE (self)->count (self, item); + _iface_ = GEE_MULTI_SET_GET_INTERFACE (self); + if (_iface_->count) { + return _iface_->count (self, item); + } + return -1; } /** @@ -346,8 +111,13 @@ GeeMultiSet* gee_multi_set_get_read_only_view (GeeMultiSet* self) { + GeeMultiSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_MULTI_SET_GET_INTERFACE (self)->get_read_only_view (self); + _iface_ = GEE_MULTI_SET_GET_INTERFACE (self); + if (_iface_->get_read_only_view) { + return _iface_->get_read_only_view (self); + } + return NULL; } static GeeMultiSet* @@ -372,15 +142,23 @@ /** * A collection with duplicate elements. */ +static GType +gee_multi_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeMultiSetIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_multi_set_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_multi_set_type_id; + gee_multi_set_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeMultiSet", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_multi_set_type_id, GEE_TYPE_COLLECTION); + return gee_multi_set_type_id; +} + GType gee_multi_set_get_type (void) { static volatile gsize gee_multi_set_type_id__volatile = 0; if (g_once_init_enter (&gee_multi_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeMultiSetIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_multi_set_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_multi_set_type_id; - gee_multi_set_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeMultiSet", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_multi_set_type_id, GEE_TYPE_COLLECTION); + gee_multi_set_type_id = gee_multi_set_get_type_once (); g_once_init_leave (&gee_multi_set_type_id__volatile, gee_multi_set_type_id); } return gee_multi_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/multiset.vala libgee-0.8-0.20.4/gee/multiset.vala --- libgee-0.8-0.20.3/gee/multiset.vala 2014-08-05 06:27:46.000000000 +0000 +++ libgee-0.8-0.20.4/gee/multiset.vala 2021-03-17 11:24:00.000000000 +0000 @@ -26,11 +26,11 @@ [GenericAccessors] public interface Gee.MultiSet : Collection { /** - * Returns the number of occurences of an item in this multiset. + * Returns the number of occurrences of an item in this multiset. * - * @param item the item to count occurences of + * @param item the item to count occurrences of * - * @return the number of occurences of the item in this multiset. + * @return the number of occurrences of the item in this multiset. */ public abstract int count (G item); diff -Nru libgee-0.8-0.20.3/gee/priorityqueue.c libgee-0.8-0.20.4/gee/priorityqueue.c --- libgee-0.8-0.20.3/gee/priorityqueue.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/priorityqueue.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* priorityqueue.c generated by valac 0.46.6, the Vala compiler +/* priorityqueue.c generated by valac 0.52.0, the Vala compiler * generated from priorityqueue.vala, do not modify */ /* priorityqueue.vala @@ -24,108 +24,12 @@ * Didier 'Ptitjes Villevalois */ -#include +#include "gee.h" #include +#include #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_QUEUE (gee_queue_get_type ()) -#define GEE_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_QUEUE, GeeQueue)) -#define GEE_IS_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_QUEUE)) -#define GEE_QUEUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_QUEUE, GeeQueueIface)) - -typedef struct _GeeQueue GeeQueue; -typedef struct _GeeQueueIface GeeQueueIface; - -#define GEE_TYPE_ABSTRACT_QUEUE (gee_abstract_queue_get_type ()) -#define GEE_ABSTRACT_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueue)) -#define GEE_ABSTRACT_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueueClass)) -#define GEE_IS_ABSTRACT_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_QUEUE)) -#define GEE_IS_ABSTRACT_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_QUEUE)) -#define GEE_ABSTRACT_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_QUEUE, GeeAbstractQueueClass)) - -typedef struct _GeeAbstractQueue GeeAbstractQueue; -typedef struct _GeeAbstractQueueClass GeeAbstractQueueClass; -typedef struct _GeeAbstractQueuePrivate GeeAbstractQueuePrivate; - -#define GEE_TYPE_PRIORITY_QUEUE (gee_priority_queue_get_type ()) -#define GEE_PRIORITY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_PRIORITY_QUEUE, GeePriorityQueue)) -#define GEE_PRIORITY_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_PRIORITY_QUEUE, GeePriorityQueueClass)) -#define GEE_IS_PRIORITY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_PRIORITY_QUEUE)) -#define GEE_IS_PRIORITY_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_PRIORITY_QUEUE)) -#define GEE_PRIORITY_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_PRIORITY_QUEUE, GeePriorityQueueClass)) - -typedef struct _GeePriorityQueue GeePriorityQueue; -typedef struct _GeePriorityQueueClass GeePriorityQueueClass; -typedef struct _GeePriorityQueuePrivate GeePriorityQueuePrivate; - #define GEE_PRIORITY_QUEUE_TYPE_NODE (gee_priority_queue_node_get_type ()) #define GEE_PRIORITY_QUEUE_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_PRIORITY_QUEUE_TYPE_NODE, GeePriorityQueueNode)) #define GEE_PRIORITY_QUEUE_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_PRIORITY_QUEUE_TYPE_NODE, GeePriorityQueueNodeClass)) @@ -184,7 +88,6 @@ typedef struct _GeePriorityQueueIterator GeePriorityQueueIterator; typedef struct _GeePriorityQueueIteratorClass GeePriorityQueueIteratorClass; -#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL))) typedef struct _GeePriorityQueueParamSpecNode GeePriorityQueueParamSpecNode; typedef struct _GeePriorityQueueType2NodePrivate GeePriorityQueueType2NodePrivate; @@ -214,148 +117,6 @@ #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeQueueIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeQueue* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeQueue* self); - GDestroyNotify (*get_g_destroy_func) (GeeQueue* self); - gboolean (*offer) (GeeQueue* self, gconstpointer element); - gpointer (*peek) (GeeQueue* self); - gpointer (*poll) (GeeQueue* self); - gint (*drain) (GeeQueue* self, GeeCollection* recipient, gint amount); - gint (*get_capacity) (GeeQueue* self); - gint (*get_remaining_capacity) (GeeQueue* self); - gboolean (*get_is_full) (GeeQueue* self); -}; - -struct _GeeAbstractQueue { - GeeAbstractCollection parent_instance; - GeeAbstractQueuePrivate * priv; -}; - -struct _GeeAbstractQueueClass { - GeeAbstractCollectionClass parent_class; - gpointer (*peek) (GeeAbstractQueue* self); - gpointer (*poll) (GeeAbstractQueue* self); - void (*reserved0) (GeeAbstractQueue* self); - void (*reserved1) (GeeAbstractQueue* self); - void (*reserved2) (GeeAbstractQueue* self); - void (*reserved3) (GeeAbstractQueue* self); - void (*reserved4) (GeeAbstractQueue* self); - void (*reserved5) (GeeAbstractQueue* self); - void (*reserved6) (GeeAbstractQueue* self); - void (*reserved7) (GeeAbstractQueue* self); - void (*reserved8) (GeeAbstractQueue* self); - void (*reserved9) (GeeAbstractQueue* self); - gint (*get_capacity) (GeeAbstractQueue* self); - gint (*get_remaining_capacity) (GeeAbstractQueue* self); - gboolean (*get_is_full) (GeeAbstractQueue* self); -}; - -struct _GeePriorityQueue { - GeeAbstractQueue parent_instance; - GeePriorityQueuePrivate * priv; -}; - -struct _GeePriorityQueueClass { - GeeAbstractQueueClass parent_class; -}; - struct _GeePriorityQueuePrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -506,74 +267,22 @@ static GeeTraversableIface * gee_priority_queue_iterator_gee_traversable_parent_iface = NULL; static GeeIteratorIface * gee_priority_queue_iterator_gee_iterator_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_queue_get_type (void) G_GNUC_CONST; -GType gee_abstract_queue_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractQueue, g_object_unref) -GType gee_priority_queue_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeePriorityQueue, g_object_unref) static gpointer gee_priority_queue_node_ref (gpointer instance); static void gee_priority_queue_node_unref (gpointer instance); static GParamSpec* gee_priority_queue_param_spec_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, - GParamFlags flags) G_GNUC_UNUSED; + GParamFlags flags) G_GNUC_UNUSED ; static void gee_priority_queue_value_set_node (GValue* value, - gpointer v_object) G_GNUC_UNUSED; + gpointer v_object) G_GNUC_UNUSED ; static void gee_priority_queue_value_take_node (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -static gpointer gee_priority_queue_value_get_node (const GValue* value) G_GNUC_UNUSED; -static GType gee_priority_queue_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeePriorityQueueNode, gee_priority_queue_node_unref) -static GType gee_priority_queue_type1_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeePriorityQueueType1Node, gee_priority_queue_node_unref) -static GType gee_priority_queue_type2_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeePriorityQueueType2Node, gee_priority_queue_node_unref) + gpointer v_object) G_GNUC_UNUSED ; +static gpointer gee_priority_queue_value_get_node (const GValue* value) G_GNUC_UNUSED ; +static GType gee_priority_queue_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +static GType gee_priority_queue_type1_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +static GType gee_priority_queue_type2_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static void gee_priority_queue_node_pair_free (GeePriorityQueueNodePair * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeePriorityQueueNodePair, gee_priority_queue_node_pair_free) -GeePriorityQueue* gee_priority_queue_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); -GeePriorityQueue* gee_priority_queue_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); -GeeAbstractQueue* gee_abstract_queue_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GCompareDataFunc gee_functions_get_compare_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -gboolean gee_priority_queue_offer (GeePriorityQueue* self, - gconstpointer element); static GeePriorityQueueType1Node* gee_priority_queue_type1_node_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -625,25 +334,13 @@ GeePriorityQueueType1Node* p1, GeePriorityQueueType1Node* p2); static gboolean _gee_priority_queue_check_linkable (GeePriorityQueue* self); -gint gee_priority_queue_drain (GeePriorityQueue* self, - GeeCollection* recipient, - gint amount); -gboolean gee_collection_add (GeeCollection* self, - gconstpointer item); -gpointer gee_abstract_queue_poll (GeeAbstractQueue* self); static gboolean gee_priority_queue_real_contains (GeeAbstractCollection* base, gconstpointer item); -GeeIterator* gee_abstract_collection_iterator (GeeAbstractCollection* self); -gboolean gee_iterator_next (GeeIterator* self); -gpointer gee_iterator_get (GeeIterator* self); -GCompareDataFunc gee_priority_queue_get_compare_func (GeePriorityQueue* self, - gpointer* result_target); static gboolean gee_priority_queue_real_add (GeeAbstractCollection* base, gconstpointer item); static gboolean gee_priority_queue_real_remove (GeeAbstractCollection* base, gconstpointer item); -static GType gee_priority_queue_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeePriorityQueueIterator, g_object_unref) +static GType gee_priority_queue_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeePriorityQueueIterator* gee_priority_queue_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -653,7 +350,6 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeePriorityQueue* queue); -void gee_iterator_remove (GeeIterator* self); static void gee_priority_queue_real_clear (GeeAbstractCollection* base); static GeeIterator* gee_priority_queue_real_iterator (GeeAbstractCollection* base); static gboolean gee_priority_queue_real_foreach (GeeAbstractCollection* base, @@ -683,7 +379,6 @@ static void gee_priority_queue_set_compare_func (GeePriorityQueue* self, GCompareDataFunc value, gpointer value_target); -#define GEE_QUEUE_UNBOUNDED_CAPACITY -1 static GeePriorityQueueNode* gee_priority_queue_node_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -692,9 +387,11 @@ GeePriorityQueueNode* * head, GeePriorityQueueNode* * tail); static void gee_priority_queue_node_finalize (GeePriorityQueueNode * obj); +static GType gee_priority_queue_node_get_type_once (void); static void gee_priority_queue_type1_node_finalize (GeePriorityQueueNode * obj); -static GType gee_priority_queue_dummy_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeePriorityQueueDummyNode, gee_priority_queue_node_unref) +static GType gee_priority_queue_type1_node_get_type_once (void); +static GType gee_priority_queue_type2_node_get_type_once (void); +static GType gee_priority_queue_dummy_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeePriorityQueueDummyNode* gee_priority_queue_dummy_node_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -710,6 +407,7 @@ GeePriorityQueueNode* * next_prev, GeePriorityQueueNode* iter_prev, GeePriorityQueueNode* iter_next); +static GType gee_priority_queue_dummy_node_get_type_once (void); static void gee_priority_queue_node_pair_instance_init (GeePriorityQueueNodePair * self); static GeePriorityQueueIterator* gee_priority_queue_iterator_new_from_iterator (GType g_type, GBoxedCopyFunc g_dup_func, @@ -732,8 +430,7 @@ guint forks, gint* result_length1); static void gee_priority_queue_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_read_only (GeeIterator* self); -gboolean gee_iterator_get_valid (GeeIterator* self); +static GType gee_priority_queue_iterator_get_type_once (void); static void _vala_gee_priority_queue_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -743,11 +440,7 @@ const GValue * value, GParamSpec * pspec); static void gee_priority_queue_finalize (GObject * obj); -gint gee_abstract_queue_get_capacity (GeeAbstractQueue* self); -gint gee_abstract_queue_get_remaining_capacity (GeeAbstractQueue* self); -gboolean gee_abstract_queue_get_is_full (GeeAbstractQueue* self); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); +static GType gee_priority_queue_get_type_once (void); static void _vala_gee_priority_queue_get_property (GObject * object, guint property_id, GValue * value, @@ -796,7 +489,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; if (compare_func == NULL) { - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GCompareDataFunc _tmp2_; _tmp2_ = gee_functions_get_compare_func_for (g_type, &_tmp0_, &_tmp1_); @@ -2738,7 +2431,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; _tmp0_ = ((data != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) data) : ((gpointer) data); - _g_destroy_func0 (self->data); + ((self->data == NULL) || (g_destroy_func == NULL)) ? NULL : (self->data = (g_destroy_func (self->data), NULL)); self->data = _tmp0_; self->iter_prev = *tail; *tail = self; @@ -2929,16 +2622,24 @@ } static GType +gee_priority_queue_node_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_priority_queue_value_node_init, gee_priority_queue_value_node_free_value, gee_priority_queue_value_node_copy_value, gee_priority_queue_value_node_peek_pointer, "p", gee_priority_queue_value_node_collect_value, "p", gee_priority_queue_value_node_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeePriorityQueueNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_priority_queue_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePriorityQueueNode), 0, (GInstanceInitFunc) gee_priority_queue_node_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_priority_queue_node_type_id; + gee_priority_queue_node_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeePriorityQueueNode", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT); + GeePriorityQueueNode_private_offset = g_type_add_instance_private (gee_priority_queue_node_type_id, sizeof (GeePriorityQueueNodePrivate)); + return gee_priority_queue_node_type_id; +} + +static GType gee_priority_queue_node_get_type (void) { static volatile gsize gee_priority_queue_node_type_id__volatile = 0; if (g_once_init_enter (&gee_priority_queue_node_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_priority_queue_value_node_init, gee_priority_queue_value_node_free_value, gee_priority_queue_value_node_copy_value, gee_priority_queue_value_node_peek_pointer, "p", gee_priority_queue_value_node_collect_value, "p", gee_priority_queue_value_node_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeePriorityQueueNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_priority_queue_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePriorityQueueNode), 0, (GInstanceInitFunc) gee_priority_queue_node_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_priority_queue_node_type_id; - gee_priority_queue_node_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeePriorityQueueNode", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_ABSTRACT); - GeePriorityQueueNode_private_offset = g_type_add_instance_private (gee_priority_queue_node_type_id, sizeof (GeePriorityQueueNodePrivate)); + gee_priority_queue_node_type_id = gee_priority_queue_node_get_type_once (); g_once_init_leave (&gee_priority_queue_node_type_id__volatile, gee_priority_queue_node_type_id); } return gee_priority_queue_node_type_id__volatile; @@ -3124,14 +2825,22 @@ } static GType +gee_priority_queue_type1_node_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeePriorityQueueType1NodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_priority_queue_type1_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePriorityQueueType1Node), 0, (GInstanceInitFunc) gee_priority_queue_type1_node_instance_init, NULL }; + GType gee_priority_queue_type1_node_type_id; + gee_priority_queue_type1_node_type_id = g_type_register_static (GEE_PRIORITY_QUEUE_TYPE_NODE, "GeePriorityQueueType1Node", &g_define_type_info, 0); + GeePriorityQueueType1Node_private_offset = g_type_add_instance_private (gee_priority_queue_type1_node_type_id, sizeof (GeePriorityQueueType1NodePrivate)); + return gee_priority_queue_type1_node_type_id; +} + +static GType gee_priority_queue_type1_node_get_type (void) { static volatile gsize gee_priority_queue_type1_node_type_id__volatile = 0; if (g_once_init_enter (&gee_priority_queue_type1_node_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeePriorityQueueType1NodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_priority_queue_type1_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePriorityQueueType1Node), 0, (GInstanceInitFunc) gee_priority_queue_type1_node_instance_init, NULL }; GType gee_priority_queue_type1_node_type_id; - gee_priority_queue_type1_node_type_id = g_type_register_static (GEE_PRIORITY_QUEUE_TYPE_NODE, "GeePriorityQueueType1Node", &g_define_type_info, 0); - GeePriorityQueueType1Node_private_offset = g_type_add_instance_private (gee_priority_queue_type1_node_type_id, sizeof (GeePriorityQueueType1NodePrivate)); + gee_priority_queue_type1_node_type_id = gee_priority_queue_type1_node_get_type_once (); g_once_init_leave (&gee_priority_queue_type1_node_type_id__volatile, gee_priority_queue_type1_node_type_id); } return gee_priority_queue_type1_node_type_id__volatile; @@ -3187,14 +2896,22 @@ } static GType +gee_priority_queue_type2_node_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeePriorityQueueType2NodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_priority_queue_type2_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePriorityQueueType2Node), 0, (GInstanceInitFunc) gee_priority_queue_type2_node_instance_init, NULL }; + GType gee_priority_queue_type2_node_type_id; + gee_priority_queue_type2_node_type_id = g_type_register_static (GEE_PRIORITY_QUEUE_TYPE_NODE, "GeePriorityQueueType2Node", &g_define_type_info, 0); + GeePriorityQueueType2Node_private_offset = g_type_add_instance_private (gee_priority_queue_type2_node_type_id, sizeof (GeePriorityQueueType2NodePrivate)); + return gee_priority_queue_type2_node_type_id; +} + +static GType gee_priority_queue_type2_node_get_type (void) { static volatile gsize gee_priority_queue_type2_node_type_id__volatile = 0; if (g_once_init_enter (&gee_priority_queue_type2_node_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeePriorityQueueType2NodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_priority_queue_type2_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePriorityQueueType2Node), 0, (GInstanceInitFunc) gee_priority_queue_type2_node_instance_init, NULL }; GType gee_priority_queue_type2_node_type_id; - gee_priority_queue_type2_node_type_id = g_type_register_static (GEE_PRIORITY_QUEUE_TYPE_NODE, "GeePriorityQueueType2Node", &g_define_type_info, 0); - GeePriorityQueueType2Node_private_offset = g_type_add_instance_private (gee_priority_queue_type2_node_type_id, sizeof (GeePriorityQueueType2NodePrivate)); + gee_priority_queue_type2_node_type_id = gee_priority_queue_type2_node_get_type_once (); g_once_init_leave (&gee_priority_queue_type2_node_type_id__volatile, gee_priority_queue_type2_node_type_id); } return gee_priority_queue_type2_node_type_id__volatile; @@ -3256,14 +2973,22 @@ } static GType +gee_priority_queue_dummy_node_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeePriorityQueueDummyNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_priority_queue_dummy_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePriorityQueueDummyNode), 0, (GInstanceInitFunc) gee_priority_queue_dummy_node_instance_init, NULL }; + GType gee_priority_queue_dummy_node_type_id; + gee_priority_queue_dummy_node_type_id = g_type_register_static (GEE_PRIORITY_QUEUE_TYPE_NODE, "GeePriorityQueueDummyNode", &g_define_type_info, 0); + GeePriorityQueueDummyNode_private_offset = g_type_add_instance_private (gee_priority_queue_dummy_node_type_id, sizeof (GeePriorityQueueDummyNodePrivate)); + return gee_priority_queue_dummy_node_type_id; +} + +static GType gee_priority_queue_dummy_node_get_type (void) { static volatile gsize gee_priority_queue_dummy_node_type_id__volatile = 0; if (g_once_init_enter (&gee_priority_queue_dummy_node_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeePriorityQueueDummyNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_priority_queue_dummy_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePriorityQueueDummyNode), 0, (GInstanceInitFunc) gee_priority_queue_dummy_node_instance_init, NULL }; GType gee_priority_queue_dummy_node_type_id; - gee_priority_queue_dummy_node_type_id = g_type_register_static (GEE_PRIORITY_QUEUE_TYPE_NODE, "GeePriorityQueueDummyNode", &g_define_type_info, 0); - GeePriorityQueueDummyNode_private_offset = g_type_add_instance_private (gee_priority_queue_dummy_node_type_id, sizeof (GeePriorityQueueDummyNodePrivate)); + gee_priority_queue_dummy_node_type_id = gee_priority_queue_dummy_node_get_type_once (); g_once_init_leave (&gee_priority_queue_dummy_node_type_id__volatile, gee_priority_queue_dummy_node_type_id); } return gee_priority_queue_dummy_node_type_id__volatile; @@ -3833,18 +3558,26 @@ } static GType +gee_priority_queue_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeePriorityQueueIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_priority_queue_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePriorityQueueIterator), 0, (GInstanceInitFunc) gee_priority_queue_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_priority_queue_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_priority_queue_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_priority_queue_iterator_type_id; + gee_priority_queue_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeePriorityQueueIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_priority_queue_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_priority_queue_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeePriorityQueueIterator_private_offset = g_type_add_instance_private (gee_priority_queue_iterator_type_id, sizeof (GeePriorityQueueIteratorPrivate)); + return gee_priority_queue_iterator_type_id; +} + +static GType gee_priority_queue_iterator_get_type (void) { static volatile gsize gee_priority_queue_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_priority_queue_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeePriorityQueueIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_priority_queue_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePriorityQueueIterator), 0, (GInstanceInitFunc) gee_priority_queue_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_priority_queue_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_priority_queue_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_priority_queue_iterator_type_id; - gee_priority_queue_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeePriorityQueueIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_priority_queue_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_priority_queue_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeePriorityQueueIterator_private_offset = g_type_add_instance_private (gee_priority_queue_iterator_type_id, sizeof (GeePriorityQueueIteratorPrivate)); + gee_priority_queue_iterator_type_id = gee_priority_queue_iterator_get_type_once (); g_once_init_leave (&gee_priority_queue_iterator_type_id__volatile, gee_priority_queue_iterator_type_id); } return gee_priority_queue_iterator_type_id__volatile; @@ -4017,15 +3750,23 @@ * Indian Institute of Technology, Madras * May 1996 */ +static GType +gee_priority_queue_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeePriorityQueueClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_priority_queue_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePriorityQueue), 0, (GInstanceInitFunc) gee_priority_queue_instance_init, NULL }; + GType gee_priority_queue_type_id; + gee_priority_queue_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_QUEUE, "GeePriorityQueue", &g_define_type_info, 0); + GeePriorityQueue_private_offset = g_type_add_instance_private (gee_priority_queue_type_id, sizeof (GeePriorityQueuePrivate)); + return gee_priority_queue_type_id; +} + GType gee_priority_queue_get_type (void) { static volatile gsize gee_priority_queue_type_id__volatile = 0; if (g_once_init_enter (&gee_priority_queue_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeePriorityQueueClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_priority_queue_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePriorityQueue), 0, (GInstanceInitFunc) gee_priority_queue_instance_init, NULL }; GType gee_priority_queue_type_id; - gee_priority_queue_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_QUEUE, "GeePriorityQueue", &g_define_type_info, 0); - GeePriorityQueue_private_offset = g_type_add_instance_private (gee_priority_queue_type_id, sizeof (GeePriorityQueuePrivate)); + gee_priority_queue_type_id = gee_priority_queue_get_type_once (); g_once_init_leave (&gee_priority_queue_type_id__volatile, gee_priority_queue_type_id); } return gee_priority_queue_type_id__volatile; @@ -4100,7 +3841,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/promise.c libgee-0.8-0.20.4/gee/promise.c --- libgee-0.8-0.20.3/gee/promise.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/promise.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* promise.c generated by valac 0.46.6, the Vala compiler +/* promise.c generated by valac 0.52.0, the Vala compiler * generated from promise.vala, do not modify */ /* promise.vala @@ -23,6 +23,7 @@ * Maciej Piechotka */ +#include "gee.h" #include #include #include @@ -30,17 +31,6 @@ #include #include -#define GEE_TYPE_PROMISE (gee_promise_get_type ()) -#define GEE_PROMISE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_PROMISE, GeePromise)) -#define GEE_PROMISE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_PROMISE, GeePromiseClass)) -#define GEE_IS_PROMISE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_PROMISE)) -#define GEE_IS_PROMISE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_PROMISE)) -#define GEE_PROMISE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_PROMISE, GeePromiseClass)) - -typedef struct _GeePromise GeePromise; -typedef struct _GeePromiseClass GeePromiseClass; -typedef struct _GeePromisePrivate GeePromisePrivate; - #define GEE_PROMISE_TYPE_FUTURE (gee_promise_future_get_type ()) #define GEE_PROMISE_FUTURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_PROMISE_TYPE_FUTURE, GeePromiseFuture)) #define GEE_PROMISE_FUTURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_PROMISE_TYPE_FUTURE, GeePromiseFutureClass)) @@ -52,18 +42,6 @@ typedef struct _GeePromiseFutureClass GeePromiseFutureClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) - -#define GEE_TYPE_FUTURE (gee_future_get_type ()) -#define GEE_FUTURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_FUTURE, GeeFuture)) -#define GEE_IS_FUTURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_FUTURE)) -#define GEE_FUTURE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_FUTURE, GeeFutureIface)) - -typedef struct _GeeFuture GeeFuture; -typedef struct _GeeFutureIface GeeFutureIface; -typedef gpointer (*GeeFutureMapFunc) (gconstpointer value, gpointer user_data); -typedef gconstpointer (*GeeFutureLightMapFunc) (gconstpointer value, gpointer user_data); -typedef gpointer (*GeeFutureZipFunc) (gconstpointer a, gconstpointer b, gpointer user_data); -typedef GeeFuture* (*GeeFutureFlatMapFunc) (gconstpointer value, gpointer user_data); typedef struct _GeePromiseFuturePrivate GeePromiseFuturePrivate; typedef enum { GEE_PROMISE_FUTURE_STATE_INIT, @@ -93,17 +71,6 @@ #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeePromise { - GTypeInstance parent_instance; - volatile int ref_count; - GeePromisePrivate * priv; -}; - -struct _GeePromiseClass { - GTypeClass parent_class; - void (*finalize) (GeePromise *self); -}; - struct _GeePromisePrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -111,30 +78,6 @@ GeePromiseFuture* _future; }; -typedef enum { - GEE_FUTURE_ERROR_ABANDON_PROMISE, - GEE_FUTURE_ERROR_EXCEPTION -} GeeFutureError; -#define GEE_FUTURE_ERROR gee_future_error_quark () -struct _GeeFutureIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeFuture* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeFuture* self); - GDestroyNotify (*get_g_destroy_func) (GeeFuture* self); - gconstpointer (*wait) (GeeFuture* self, GError** error); - gboolean (*wait_until) (GeeFuture* self, gint64 end_time, gconstpointer* value, GError** error); - void (*wait_async) (GeeFuture* self, GAsyncReadyCallback _callback_, gpointer _user_data_); - gconstpointer (*wait_finish) (GeeFuture* self, GAsyncResult* _res_, GError** error); - GeeFuture* (*map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); - GeeFuture* (*light_map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureLightMapFunc func, gpointer func_target); - GeeFuture* (*zip) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GType b_type, GBoxedCopyFunc b_dup_func, GDestroyNotify b_destroy_func, GeeFutureZipFunc zip_func, gpointer zip_func_target, GeeFuture* second); - GeeFuture* (*flat_map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureFlatMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); - gconstpointer (*get_value) (GeeFuture* self); - gboolean (*get_ready) (GeeFuture* self); - GError* (*get_exception) (GeeFuture* self); - GeeFuture* (*light_map_fixed) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureLightMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -}; - struct _GeePromiseFuture { GObject parent_instance; GeePromiseFuturePrivate * priv; @@ -174,15 +117,13 @@ GeePromiseFutureState state; GeePromiseFutureState _tmp0_; GeePromiseFutureState _tmp1_; - GeeFutureSourceFuncArrayElement* _tmp2_; - gint _tmp2__length1; - GeeFutureSourceFuncArrayElement _tmp3_; + GeeFutureSourceFuncArrayElement _tmp2_; + GeePromiseFutureState _tmp3_; GeePromiseFutureState _tmp4_; GeePromiseFutureState _tmp5_; - GeePromiseFutureState _tmp6_; + GError* _tmp6_; GError* _tmp7_; - GError* _tmp8_; - gconstpointer _tmp9_; + gconstpointer _tmp8_; GError* _inner_error0_; }; @@ -196,30 +137,8 @@ static gpointer gee_promise_future_parent_class = NULL; static GeeFutureIface * gee_promise_future_gee_future_parent_iface = NULL; -gpointer gee_promise_ref (gpointer instance); -void gee_promise_unref (gpointer instance); -GParamSpec* gee_param_spec_promise (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_promise (GValue* value, - gpointer v_object); -void gee_value_take_promise (GValue* value, - gpointer v_object); -gpointer gee_value_get_promise (const GValue* value); -GType gee_promise_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeePromise, gee_promise_unref) -static GType gee_promise_future_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeePromiseFuture, g_object_unref) +static GType gee_promise_future_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static void gee_promise_future_abandon (GeePromiseFuture* self); -GeePromise* gee_promise_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeePromise* gee_promise_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); static GeePromiseFuture* gee_promise_future_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); @@ -227,24 +146,17 @@ GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); -void gee_promise_set_value (GeePromise* self, - gpointer value); static void gee_promise_future_set_value (GeePromiseFuture* self, gpointer value); -void gee_promise_set_exception (GeePromise* self, - GError* exception); static void gee_promise_future_set_exception (GeePromiseFuture* self, GError* exception); -GQuark gee_future_error_quark (void); -GType gee_future_get_type (void) G_GNUC_CONST; -GeeFuture* gee_promise_get_future (GeePromise* self); -static GType gee_promise_future_state_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_future_source_func_array_element_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_GNUC_INTERNAL GeeFutureSourceFuncArrayElement* gee_future_source_func_array_element_dup (const GeeFutureSourceFuncArrayElement* self); -G_GNUC_INTERNAL void gee_future_source_func_array_element_free (GeeFutureSourceFuncArrayElement* self); -G_GNUC_INTERNAL void gee_future_source_func_array_element_copy (const GeeFutureSourceFuncArrayElement* self, +static GType gee_promise_future_state_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_future_source_func_array_element_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFutureSourceFuncArrayElement* gee_future_source_func_array_element_dup (const GeeFutureSourceFuncArrayElement* self); + G_GNUC_INTERNAL void gee_future_source_func_array_element_free (GeeFutureSourceFuncArrayElement* self); + G_GNUC_INTERNAL void gee_future_source_func_array_element_copy (const GeeFutureSourceFuncArrayElement* self, GeeFutureSourceFuncArrayElement* dest); -G_GNUC_INTERNAL void gee_future_source_func_array_element_destroy (GeeFutureSourceFuncArrayElement* self); + G_GNUC_INTERNAL void gee_future_source_func_array_element_destroy (GeeFutureSourceFuncArrayElement* self); static void _vala_GeeFutureSourceFuncArrayElement_array_free (GeeFutureSourceFuncArrayElement * array, gint array_length); static gconstpointer gee_promise_future_real_wait (GeeFuture* base, @@ -258,27 +170,20 @@ GAsyncReadyCallback _callback_, gpointer _user_data_); static gboolean gee_promise_future_real_wait_async_co (GeePromiseFutureWaitAsyncData* _data_); -void gee_future_wait_async (GeeFuture* self, - GAsyncReadyCallback _callback_, - gpointer _user_data_); -gconstpointer gee_future_wait_finish (GeeFuture* self, - GAsyncResult* _res_, - GError** error); static gboolean _gee_promise_future_real_wait_async_co_gsource_func (gpointer self); -G_GNUC_INTERNAL void gee_future_source_func_array_element_init (GeeFutureSourceFuncArrayElement *self, + G_GNUC_INTERNAL void gee_future_source_func_array_element_init (GeeFutureSourceFuncArrayElement *self, GSourceFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); static void _vala_array_add2 (GeeFutureSourceFuncArrayElement* * array, - int* length, - int* size, + gint* length, + gint* size, const GeeFutureSourceFuncArrayElement* value); static void gee_promise_future_wait_async_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_); static void gee_promise_future_finalize (GObject * obj); -gboolean gee_future_get_ready (GeeFuture* self); -GError* gee_future_get_exception (GeeFuture* self); +static GType gee_promise_future_get_type_once (void); static void _vala_gee_promise_future_get_property (GObject * object, guint property_id, GValue * value, @@ -288,6 +193,7 @@ const GValue * value, GParamSpec * pspec); static void gee_promise_finalize (GeePromise * obj); +static GType gee_promise_get_type_once (void); static void _vala_clear_GMutex (GMutex * mutex); static void _vala_clear_GRecMutex (GRecMutex * mutex); static void _vala_clear_GRWLock (GRWLock * mutex); @@ -356,6 +262,7 @@ GeePromiseFuture* _tmp0_; GError* _tmp1_; g_return_if_fail (self != NULL); + g_return_if_fail (exception != NULL); _tmp0_ = self->priv->_future; _tmp1_ = exception; exception = NULL; @@ -381,13 +288,21 @@ } static GType +gee_promise_future_state_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_PROMISE_FUTURE_STATE_INIT, "GEE_PROMISE_FUTURE_STATE_INIT", "init"}, {GEE_PROMISE_FUTURE_STATE_ABANDON, "GEE_PROMISE_FUTURE_STATE_ABANDON", "abandon"}, {GEE_PROMISE_FUTURE_STATE_EXCEPTION, "GEE_PROMISE_FUTURE_STATE_EXCEPTION", "exception"}, {GEE_PROMISE_FUTURE_STATE_READY, "GEE_PROMISE_FUTURE_STATE_READY", "ready"}, {0, NULL, NULL}}; + GType gee_promise_future_state_type_id; + gee_promise_future_state_type_id = g_enum_register_static ("GeePromiseFutureState", values); + return gee_promise_future_state_type_id; +} + +static GType gee_promise_future_state_get_type (void) { static volatile gsize gee_promise_future_state_type_id__volatile = 0; if (g_once_init_enter (&gee_promise_future_state_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_PROMISE_FUTURE_STATE_INIT, "GEE_PROMISE_FUTURE_STATE_INIT", "init"}, {GEE_PROMISE_FUTURE_STATE_ABANDON, "GEE_PROMISE_FUTURE_STATE_ABANDON", "abandon"}, {GEE_PROMISE_FUTURE_STATE_EXCEPTION, "GEE_PROMISE_FUTURE_STATE_EXCEPTION", "exception"}, {GEE_PROMISE_FUTURE_STATE_READY, "GEE_PROMISE_FUTURE_STATE_READY", "ready"}, {0, NULL, NULL}}; GType gee_promise_future_state_type_id; - gee_promise_future_state_type_id = g_enum_register_static ("GeePromiseFutureState", values); + gee_promise_future_state_type_id = gee_promise_future_state_get_type_once (); g_once_init_leave (&gee_promise_future_state_type_id__volatile, gee_promise_future_state_type_id); } return gee_promise_future_state_type_id__volatile; @@ -398,7 +313,7 @@ gint array_length) { if (array != NULL) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { gee_future_source_func_array_element_destroy (&array[i]); } @@ -596,9 +511,6 @@ g_assert_not_reached (); } } - if (value) { - *value = _vala_value; - } } static void @@ -659,8 +571,8 @@ static void _vala_array_add2 (GeeFutureSourceFuncArrayElement* * array, - int* length, - int* size, + gint* length, + gint* size, const GeeFutureSourceFuncArrayElement* value) { if ((*length) == (*size)) { @@ -699,29 +611,27 @@ _data_->state = _data_->_tmp0_; _data_->_tmp1_ = _data_->state; if (_data_->_tmp1_ == GEE_PROMISE_FUTURE_STATE_INIT) { - _data_->_tmp2_ = _data_->self->priv->_when_done; - _data_->_tmp2__length1 = _data_->self->priv->_when_done_length1; - memset (&_data_->_tmp3_, 0, sizeof (GeeFutureSourceFuncArrayElement)); - gee_future_source_func_array_element_init (&_data_->_tmp3_, _gee_promise_future_real_wait_async_co_gsource_func, _data_, NULL); - _vala_array_add2 (&_data_->self->priv->_when_done, &_data_->self->priv->_when_done_length1, &_data_->self->priv->__when_done_size_, &_data_->_tmp3_); + memset (&_data_->_tmp2_, 0, sizeof (GeeFutureSourceFuncArrayElement)); + gee_future_source_func_array_element_init (&_data_->_tmp2_, _gee_promise_future_real_wait_async_co_gsource_func, _data_, NULL); + _vala_array_add2 (&_data_->self->priv->_when_done, &_data_->self->priv->_when_done_length1, &_data_->self->priv->__when_done_size_, &_data_->_tmp2_); _data_->_state_ = 1; gee_utils_async_yield_and_unlock (&_data_->self->priv->_mutex, gee_promise_future_wait_async_ready, _data_); return FALSE; _state_1: gee_utils_async_yield_and_unlock_finish (_data_->_res_); - _data_->_tmp4_ = _data_->self->priv->_state; - _data_->state = _data_->_tmp4_; + _data_->_tmp3_ = _data_->self->priv->_state; + _data_->state = _data_->_tmp3_; } else { g_mutex_unlock (&_data_->self->priv->_mutex); } + _data_->_tmp4_ = _data_->state; + _vala_assert (_data_->_tmp4_ != GEE_PROMISE_FUTURE_STATE_INIT, "state != State.INIT"); _data_->_tmp5_ = _data_->state; - _vala_assert (_data_->_tmp5_ != GEE_PROMISE_FUTURE_STATE_INIT, "state != State.INIT"); - _data_->_tmp6_ = _data_->state; - switch (_data_->_tmp6_) { + switch (_data_->_tmp5_) { case GEE_PROMISE_FUTURE_STATE_ABANDON: { - _data_->_tmp7_ = g_error_new_literal (GEE_FUTURE_ERROR, GEE_FUTURE_ERROR_ABANDON_PROMISE, "Promise has been abandon"); - _data_->_inner_error0_ = _data_->_tmp7_; + _data_->_tmp6_ = g_error_new_literal (GEE_FUTURE_ERROR, GEE_FUTURE_ERROR_ABANDON_PROMISE, "Promise has been abandon"); + _data_->_inner_error0_ = _data_->_tmp6_; if (_data_->_inner_error0_->domain == GEE_FUTURE_ERROR) { g_task_return_error (_data_->_async_result, _data_->_inner_error0_); g_object_unref (_data_->_async_result); @@ -735,8 +645,8 @@ } case GEE_PROMISE_FUTURE_STATE_EXCEPTION: { - _data_->_tmp8_ = g_error_new_literal (GEE_FUTURE_ERROR, GEE_FUTURE_ERROR_EXCEPTION, "Exception has been thrown"); - _data_->_inner_error0_ = _data_->_tmp8_; + _data_->_tmp7_ = g_error_new_literal (GEE_FUTURE_ERROR, GEE_FUTURE_ERROR_EXCEPTION, "Exception has been thrown"); + _data_->_inner_error0_ = _data_->_tmp7_; if (_data_->_inner_error0_->domain == GEE_FUTURE_ERROR) { g_task_return_error (_data_->_async_result, _data_->_inner_error0_); g_object_unref (_data_->_async_result); @@ -750,8 +660,8 @@ } case GEE_PROMISE_FUTURE_STATE_READY: { - _data_->_tmp9_ = _data_->self->priv->_value; - _data_->result = _data_->_tmp9_; + _data_->_tmp8_ = _data_->self->priv->_value; + _data_->result = _data_->_tmp8_; g_task_return_pointer (_data_->_async_result, _data_, NULL); if (_data_->_state_ != 0) { while (!g_task_get_completed (_data_->_async_result)) { @@ -1069,16 +979,24 @@ } static GType +gee_promise_future_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeePromiseFutureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_promise_future_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePromiseFuture), 0, (GInstanceInitFunc) gee_promise_future_instance_init, NULL }; + static const GInterfaceInfo gee_future_info = { (GInterfaceInitFunc) gee_promise_future_gee_future_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_promise_future_type_id; + gee_promise_future_type_id = g_type_register_static (G_TYPE_OBJECT, "GeePromiseFuture", &g_define_type_info, 0); + g_type_add_interface_static (gee_promise_future_type_id, GEE_TYPE_FUTURE, &gee_future_info); + GeePromiseFuture_private_offset = g_type_add_instance_private (gee_promise_future_type_id, sizeof (GeePromiseFuturePrivate)); + return gee_promise_future_type_id; +} + +static GType gee_promise_future_get_type (void) { static volatile gsize gee_promise_future_type_id__volatile = 0; if (g_once_init_enter (&gee_promise_future_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeePromiseFutureClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_promise_future_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePromiseFuture), 0, (GInstanceInitFunc) gee_promise_future_instance_init, NULL }; - static const GInterfaceInfo gee_future_info = { (GInterfaceInitFunc) gee_promise_future_gee_future_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_promise_future_type_id; - gee_promise_future_type_id = g_type_register_static (G_TYPE_OBJECT, "GeePromiseFuture", &g_define_type_info, 0); - g_type_add_interface_static (gee_promise_future_type_id, GEE_TYPE_FUTURE, &gee_future_info); - GeePromiseFuture_private_offset = g_type_add_instance_private (gee_promise_future_type_id, sizeof (GeePromiseFuturePrivate)); + gee_promise_future_type_id = gee_promise_future_get_type_once (); g_once_init_leave (&gee_promise_future_type_id__volatile, gee_promise_future_type_id); } return gee_promise_future_type_id__volatile; @@ -1311,17 +1229,25 @@ * @see task * @since 0.11.0 */ +static GType +gee_promise_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_value_promise_init, gee_value_promise_free_value, gee_value_promise_copy_value, gee_value_promise_peek_pointer, "p", gee_value_promise_collect_value, "p", gee_value_promise_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeePromiseClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_promise_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePromise), 0, (GInstanceInitFunc) gee_promise_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_promise_type_id; + gee_promise_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeePromise", &g_define_type_info, &g_define_type_fundamental_info, 0); + GeePromise_private_offset = g_type_add_instance_private (gee_promise_type_id, sizeof (GeePromisePrivate)); + return gee_promise_type_id; +} + GType gee_promise_get_type (void) { static volatile gsize gee_promise_type_id__volatile = 0; if (g_once_init_enter (&gee_promise_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_value_promise_init, gee_value_promise_free_value, gee_value_promise_copy_value, gee_value_promise_peek_pointer, "p", gee_value_promise_collect_value, "p", gee_value_promise_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeePromiseClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_promise_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeePromise), 0, (GInstanceInitFunc) gee_promise_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_promise_type_id; - gee_promise_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeePromise", &g_define_type_info, &g_define_type_fundamental_info, 0); - GeePromise_private_offset = g_type_add_instance_private (gee_promise_type_id, sizeof (GeePromisePrivate)); + gee_promise_type_id = gee_promise_get_type_once (); g_once_init_leave (&gee_promise_type_id__volatile, gee_promise_type_id); } return gee_promise_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/promise.vala libgee-0.8-0.20.4/gee/promise.vala --- libgee-0.8-0.20.3/gee/promise.vala 2020-01-21 14:47:44.000000000 +0000 +++ libgee-0.8-0.20.4/gee/promise.vala 2021-03-17 11:24:00.000000000 +0000 @@ -71,7 +71,7 @@ private class Future : Object, Gee.Future { public Future () { - _when_done = new Gee.Future.SourceFuncArrayElement[0]; + _when_done = new Gee.Future.SourceFuncArrayElement[0]; } public bool ready { @@ -168,7 +168,7 @@ _value = (owned)value; _set.broadcast (); _mutex.unlock (); - Gee.Future.SourceFuncArrayElement[] when_done = (owned)_when_done; + Gee.Future.SourceFuncArrayElement[] when_done = (owned)_when_done; for (int i = 0; i < when_done.length; i++) { when_done[i].func (); } @@ -181,7 +181,7 @@ _exception = (owned)exception; _set.broadcast (); _mutex.unlock (); - Gee.Future.SourceFuncArrayElement[] when_done = (owned)_when_done; + Gee.Future.SourceFuncArrayElement[] when_done = (owned)_when_done; for (int i = 0; i < when_done.length; i++) { when_done[i].func (); } @@ -197,7 +197,7 @@ _state = State.ABANDON; _set.broadcast (); _mutex.unlock (); - Gee.Future.SourceFuncArrayElement[] when_done = (owned)_when_done; + Gee.Future.SourceFuncArrayElement[] when_done = (owned)_when_done; for (int i = 0; i < when_done.length; i++) { when_done[i].func (); } @@ -208,7 +208,7 @@ private State _state; private G? _value; private GLib.Error? _exception; - private Gee.Future.SourceFuncArrayElement[]? _when_done; + private Gee.Future.SourceFuncArrayElement[]? _when_done; private enum State { INIT, diff -Nru libgee-0.8-0.20.3/gee/queue.c libgee-0.8-0.20.4/gee/queue.c --- libgee-0.8-0.20.3/gee/queue.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/queue.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* queue.c generated by valac 0.46.6, the Vala compiler +/* queue.c generated by valac 0.52.0, the Vala compiler * generated from queue.vala, do not modify */ /* queue.vala @@ -23,192 +23,16 @@ * Didier 'Ptitjes Villevalois */ +#include "gee.h" #include #include -#define GEE_TYPE_QUEUE (gee_queue_get_type ()) -#define GEE_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_QUEUE, GeeQueue)) -#define GEE_IS_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_QUEUE)) -#define GEE_QUEUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_QUEUE, GeeQueueIface)) - -typedef struct _GeeQueue GeeQueue; -typedef struct _GeeQueueIface GeeQueueIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeQueueIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeQueue* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeQueue* self); - GDestroyNotify (*get_g_destroy_func) (GeeQueue* self); - gboolean (*offer) (GeeQueue* self, gconstpointer element); - gpointer (*peek) (GeeQueue* self); - gpointer (*poll) (GeeQueue* self); - gint (*drain) (GeeQueue* self, GeeCollection* recipient, gint amount); - gint (*get_capacity) (GeeQueue* self); - gint (*get_remaining_capacity) (GeeQueue* self); - gboolean (*get_is_full) (GeeQueue* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_queue_get_type (void) G_GNUC_CONST; -gboolean gee_queue_offer (GeeQueue* self, - gconstpointer element); static gboolean gee_queue_real_offer (GeeQueue* self, gconstpointer element); -gboolean gee_collection_add (GeeCollection* self, - gconstpointer item); -gpointer gee_queue_peek (GeeQueue* self); -gpointer gee_queue_poll (GeeQueue* self); -gint gee_queue_drain (GeeQueue* self, - GeeCollection* recipient, - gint amount); static gint gee_queue_real_drain (GeeQueue* self, GeeCollection* recipient, gint amount); -#define GEE_QUEUE_UNBOUNDED_CAPACITY -1 -gint gee_queue_get_capacity (GeeQueue* self); -gint gee_queue_get_remaining_capacity (GeeQueue* self); -gboolean gee_queue_get_is_full (GeeQueue* self); +static GType gee_queue_get_type_once (void); /** * Offers the specified element to this queue. @@ -230,8 +54,13 @@ gee_queue_offer (GeeQueue* self, gconstpointer element) { + GeeQueueIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_QUEUE_GET_INTERFACE (self)->offer (self, element); + _iface_ = GEE_QUEUE_GET_INTERFACE (self); + if (_iface_->offer) { + return _iface_->offer (self, element); + } + return FALSE; } /** @@ -243,8 +72,13 @@ gpointer gee_queue_peek (GeeQueue* self) { + GeeQueueIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_QUEUE_GET_INTERFACE (self)->peek (self); + _iface_ = GEE_QUEUE_GET_INTERFACE (self); + if (_iface_->peek) { + return _iface_->peek (self); + } + return NULL; } /** @@ -256,8 +90,13 @@ gpointer gee_queue_poll (GeeQueue* self) { + GeeQueueIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_QUEUE_GET_INTERFACE (self)->poll (self); + _iface_ = GEE_QUEUE_GET_INTERFACE (self); + if (_iface_->poll) { + return _iface_->poll (self); + } + return NULL; } /** @@ -283,32 +122,34 @@ while (TRUE) { gboolean _tmp0_ = FALSE; gboolean _tmp1_ = FALSE; - gconstpointer _tmp4_; - gint _tmp5_; + gconstpointer _tmp5_; + gint _tmp6_; if (amount == -1) { _tmp1_ = TRUE; } else { + gint _tmp2_; amount = amount - 1; - _tmp1_ = amount >= 0; + _tmp2_ = amount; + _tmp1_ = _tmp2_ >= 0; } if (_tmp1_) { - gpointer _tmp2_; - gconstpointer _tmp3_; - _tmp2_ = gee_queue_poll (self); + gpointer _tmp3_; + gconstpointer _tmp4_; + _tmp3_ = gee_queue_poll (self); ((item == NULL) || (GEE_QUEUE_GET_INTERFACE (self)->get_g_destroy_func (self) == NULL)) ? NULL : (item = (GEE_QUEUE_GET_INTERFACE (self)->get_g_destroy_func (self) (item), NULL)); - item = _tmp2_; - _tmp3_ = item; - _tmp0_ = _tmp3_ != NULL; + item = _tmp3_; + _tmp4_ = item; + _tmp0_ = _tmp4_ != NULL; } else { _tmp0_ = FALSE; } if (!_tmp0_) { break; } - _tmp4_ = item; - gee_collection_add (recipient, _tmp4_); - _tmp5_ = drained; - drained = _tmp5_ + 1; + _tmp5_ = item; + gee_collection_add (recipient, _tmp5_); + _tmp6_ = drained; + drained = _tmp6_ + 1; } result = drained; ((item == NULL) || (GEE_QUEUE_GET_INTERFACE (self)->get_g_destroy_func (self) == NULL)) ? NULL : (item = (GEE_QUEUE_GET_INTERFACE (self)->get_g_destroy_func (self) (item), NULL)); @@ -320,29 +161,49 @@ GeeCollection* recipient, gint amount) { + GeeQueueIface* _iface_; g_return_val_if_fail (self != NULL, 0); - return GEE_QUEUE_GET_INTERFACE (self)->drain (self, recipient, amount); + _iface_ = GEE_QUEUE_GET_INTERFACE (self); + if (_iface_->drain) { + return _iface_->drain (self, recipient, amount); + } + return -1; } gint gee_queue_get_capacity (GeeQueue* self) { + GeeQueueIface* _iface_; g_return_val_if_fail (self != NULL, 0); - return GEE_QUEUE_GET_INTERFACE (self)->get_capacity (self); + _iface_ = GEE_QUEUE_GET_INTERFACE (self); + if (_iface_->get_capacity) { + return _iface_->get_capacity (self); + } + return -1; } gint gee_queue_get_remaining_capacity (GeeQueue* self) { + GeeQueueIface* _iface_; g_return_val_if_fail (self != NULL, 0); - return GEE_QUEUE_GET_INTERFACE (self)->get_remaining_capacity (self); + _iface_ = GEE_QUEUE_GET_INTERFACE (self); + if (_iface_->get_remaining_capacity) { + return _iface_->get_remaining_capacity (self); + } + return -1; } gboolean gee_queue_get_is_full (GeeQueue* self) { + GeeQueueIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_QUEUE_GET_INTERFACE (self)->get_is_full (self); + _iface_ = GEE_QUEUE_GET_INTERFACE (self); + if (_iface_->get_is_full) { + return _iface_->get_is_full (self); + } + return FALSE; } static void @@ -380,8 +241,8 @@ * because the queue was full or empty. * * Queue implementations are not limited to First-In-First-Out behavior and can - * propose different ordering of their elements. Each Queue implementation have - * to specify how it orders its elements. + * offer different orderings of their elements. Each Queue implementation must + * specify how it orders its elements. * * Queue implementations do not allow insertion of ``null`` elements, although * some implementations, such as {@link LinkedList}, do not prohibit insertion @@ -389,15 +250,23 @@ * inserted into a Queue, as ``null`` is also used as a special return value by * the poll method to indicate that the queue contains no elements. */ +static GType +gee_queue_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeQueueIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_queue_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_queue_type_id; + gee_queue_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeQueue", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_queue_type_id, GEE_TYPE_COLLECTION); + return gee_queue_type_id; +} + GType gee_queue_get_type (void) { static volatile gsize gee_queue_type_id__volatile = 0; if (g_once_init_enter (&gee_queue_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeQueueIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_queue_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_queue_type_id; - gee_queue_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeQueue", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_queue_type_id, GEE_TYPE_COLLECTION); + gee_queue_type_id = gee_queue_get_type_once (); g_once_init_leave (&gee_queue_type_id__volatile, gee_queue_type_id); } return gee_queue_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/queue.vala libgee-0.8-0.20.4/gee/queue.vala --- libgee-0.8-0.20.3/gee/queue.vala 2016-09-14 06:10:48.000000000 +0000 +++ libgee-0.8-0.20.4/gee/queue.vala 2021-03-17 11:24:00.000000000 +0000 @@ -34,8 +34,8 @@ * because the queue was full or empty. * * Queue implementations are not limited to First-In-First-Out behavior and can - * propose different ordering of their elements. Each Queue implementation have - * to specify how it orders its elements. + * offer different orderings of their elements. Each Queue implementation must + * specify how it orders its elements. * * Queue implementations do not allow insertion of ``null`` elements, although * some implementations, such as {@link LinkedList}, do not prohibit insertion diff -Nru libgee-0.8-0.20.3/gee/readonlybidirlist.c libgee-0.8-0.20.4/gee/readonlybidirlist.c --- libgee-0.8-0.20.3/gee/readonlybidirlist.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/readonlybidirlist.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* readonlybidirlist.c generated by valac 0.46.6, the Vala compiler +/* readonlybidirlist.c generated by valac 0.52.0, the Vala compiler * generated from readonlybidirlist.vala, do not modify */ /* readonlybidirlist.vala @@ -24,64 +24,9 @@ */ #include +#include "gee.h" #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - #define GEE_TYPE_READ_ONLY_COLLECTION (gee_read_only_collection_get_type ()) #define GEE_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollection)) #define GEE_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass)) @@ -93,22 +38,6 @@ typedef struct _GeeReadOnlyCollectionClass GeeReadOnlyCollectionClass; typedef struct _GeeReadOnlyCollectionPrivate GeeReadOnlyCollectionPrivate; -#define GEE_TYPE_LIST (gee_list_get_type ()) -#define GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST, GeeList)) -#define GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST)) -#define GEE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST, GeeListIface)) - -typedef struct _GeeList GeeList; -typedef struct _GeeListIface GeeListIface; - -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; - #define GEE_TYPE_READ_ONLY_LIST (gee_read_only_list_get_type ()) #define GEE_READ_ONLY_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_LIST, GeeReadOnlyList)) #define GEE_READ_ONLY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_LIST, GeeReadOnlyListClass)) @@ -120,30 +49,6 @@ typedef struct _GeeReadOnlyListClass GeeReadOnlyListClass; typedef struct _GeeReadOnlyListPrivate GeeReadOnlyListPrivate; -#define GEE_TYPE_BIDIR_LIST (gee_bidir_list_get_type ()) -#define GEE_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirList)) -#define GEE_IS_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST)) -#define GEE_BIDIR_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirListIface)) - -typedef struct _GeeBidirList GeeBidirList; -typedef struct _GeeBidirListIface GeeBidirListIface; - -#define GEE_TYPE_BIDIR_LIST_ITERATOR (gee_bidir_list_iterator_get_type ()) -#define GEE_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIterator)) -#define GEE_IS_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR)) -#define GEE_BIDIR_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIteratorIface)) - -typedef struct _GeeBidirListIterator GeeBidirListIterator; -typedef struct _GeeBidirListIteratorIface GeeBidirListIteratorIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; - #define GEE_TYPE_READ_ONLY_BIDIR_LIST (gee_read_only_bidir_list_get_type ()) #define GEE_READ_ONLY_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_BIDIR_LIST, GeeReadOnlyBidirList)) #define GEE_READ_ONLY_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_BIDIR_LIST, GeeReadOnlyBidirListClass)) @@ -206,73 +111,6 @@ }; static GParamSpec* gee_read_only_bidir_list_iterator_properties[GEE_READ_ONLY_BIDIR_LIST_ITERATOR_NUM_PROPERTIES]; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - struct _GeeReadOnlyCollection { GObject parent_instance; GeeReadOnlyCollectionPrivate * priv; @@ -284,32 +122,6 @@ GeeCollection* (*get_read_only_view) (GeeReadOnlyCollection* self); }; -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -struct _GeeListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeList* self); - GDestroyNotify (*get_g_destroy_func) (GeeList* self); - GeeListIterator* (*list_iterator) (GeeList* self); - gpointer (*get) (GeeList* self, gint index); - void (*set) (GeeList* self, gint index, gconstpointer item); - gint (*index_of) (GeeList* self, gconstpointer item); - void (*insert) (GeeList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeList* self, gint index); - GeeList* (*slice) (GeeList* self, gint start, gint stop); - gpointer (*first) (GeeList* self); - gpointer (*last) (GeeList* self); - void (*insert_all) (GeeList* self, gint index, GeeCollection* collection); - void (*sort) (GeeList* self, GCompareDataFunc compare_func, gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify); - GeeList* (*get_read_only_view) (GeeList* self); -}; - struct _GeeReadOnlyList { GeeReadOnlyCollection parent_instance; GeeReadOnlyListPrivate * priv; @@ -320,34 +132,6 @@ GeeList* (*get_read_only_view) (GeeReadOnlyList* self); }; -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirListIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirListIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirListIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirListIterator* self); - void (*insert) (GeeBidirListIterator* self, gconstpointer item); -}; - -struct _GeeBidirListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirList* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirList* self); - GeeBidirListIterator* (*bidir_list_iterator) (GeeBidirList* self); - GeeBidirList* (*get_read_only_view) (GeeBidirList* self); -}; - struct _GeeReadOnlyBidirList { GeeReadOnlyList parent_instance; GeeReadOnlyBidirListPrivate * priv; @@ -406,56 +190,29 @@ static GeeBidirListIteratorIface * gee_read_only_bidir_list_iterator_gee_bidir_list_iterator_parent_iface = NULL; static GeeBidirListIface * gee_read_only_bidir_list_gee_bidir_list_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_list_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyList, g_object_unref) -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_bidir_list_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyBidirList, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlyBidirList* gee_read_only_bidir_list_new (GType g_type, + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_list_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_bidir_list_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeBidirList* gee_read_only_bidir_list_get_read_only_view (GeeReadOnlyBidirList* self); + G_GNUC_INTERNAL GeeReadOnlyBidirList* gee_read_only_bidir_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirList* list); -G_GNUC_INTERNAL GeeReadOnlyBidirList* gee_read_only_bidir_list_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyBidirList* gee_read_only_bidir_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirList* list); -G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeList* list); -G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeList* list); static GeeBidirListIterator* gee_read_only_bidir_list_real_bidir_list_iterator (GeeBidirList* base); -GeeBidirListIterator* gee_bidir_list_bidir_list_iterator (GeeBidirList* self); static GeeReadOnlyBidirListIterator* gee_read_only_bidir_list_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -465,32 +222,25 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeListIterator* iterator); -GType gee_read_only_collection_iterator_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollectionIterator, g_object_unref) -GType gee_read_only_list_iterator_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyListIterator, g_object_unref) -static GType gee_read_only_bidir_list_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyBidirListIterator, g_object_unref) -G_GNUC_INTERNAL GeeBidirList* gee_read_only_bidir_list_get_read_only_view (GeeReadOnlyBidirList* self); -G_GNUC_INTERNAL GeeReadOnlyListIterator* gee_read_only_list_iterator_new (GType g_type, +GType gee_read_only_collection_iterator_get_type (void) G_GNUC_CONST ; +GType gee_read_only_list_iterator_get_type (void) G_GNUC_CONST ; +static GType gee_read_only_bidir_list_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeReadOnlyListIterator* gee_read_only_list_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeListIterator* iterator); -G_GNUC_INTERNAL GeeReadOnlyListIterator* gee_read_only_list_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyListIterator* gee_read_only_list_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeListIterator* iterator); static gboolean gee_read_only_bidir_list_iterator_real_previous (GeeBidirIterator* base); -gboolean gee_bidir_iterator_previous (GeeBidirIterator* self); static gboolean gee_read_only_bidir_list_iterator_real_has_previous (GeeBidirIterator* base); -gboolean gee_bidir_iterator_has_previous (GeeBidirIterator* self); static gboolean gee_read_only_bidir_list_iterator_real_first (GeeBidirIterator* base); -gboolean gee_bidir_iterator_first (GeeBidirIterator* self); static gboolean gee_read_only_bidir_list_iterator_real_last (GeeBidirIterator* base); -gboolean gee_bidir_iterator_last (GeeBidirIterator* self); static void gee_read_only_bidir_list_iterator_real_insert (GeeBidirListIterator* base, gconstpointer item); +static GType gee_read_only_bidir_list_iterator_get_type_once (void); static void _vala_gee_read_only_bidir_list_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -499,6 +249,7 @@ guint property_id, const GValue * value, GParamSpec * pspec); +static GType gee_read_only_bidir_list_get_type_once (void); static void _vala_gee_read_only_bidir_list_get_property (GObject * object, guint property_id, GValue * value, @@ -520,7 +271,7 @@ * * @param list the list to decorate. */ -G_GNUC_INTERNAL GeeReadOnlyBidirList* + G_GNUC_INTERNAL GeeReadOnlyBidirList* gee_read_only_bidir_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -536,7 +287,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlyBidirList* + G_GNUC_INTERNAL GeeReadOnlyBidirList* gee_read_only_bidir_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -569,11 +320,16 @@ return result; } -G_GNUC_INTERNAL GeeBidirList* + G_GNUC_INTERNAL GeeBidirList* gee_read_only_bidir_list_get_read_only_view (GeeReadOnlyBidirList* self) { + GeeReadOnlyBidirListClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_READ_ONLY_BIDIR_LIST_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_READ_ONLY_BIDIR_LIST_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static gpointer @@ -764,18 +520,26 @@ } static GType +gee_read_only_bidir_list_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirListIterator), 0, (GInstanceInitFunc) gee_read_only_bidir_list_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_read_only_bidir_list_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_list_iterator_info = { (GInterfaceInitFunc) gee_read_only_bidir_list_iterator_gee_bidir_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_bidir_list_iterator_type_id; + gee_read_only_bidir_list_iterator_type_id = g_type_register_static (GEE_READ_ONLY_LIST_TYPE_ITERATOR, "GeeReadOnlyBidirListIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_bidir_list_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); + g_type_add_interface_static (gee_read_only_bidir_list_iterator_type_id, GEE_TYPE_BIDIR_LIST_ITERATOR, &gee_bidir_list_iterator_info); + GeeReadOnlyBidirListIterator_private_offset = g_type_add_instance_private (gee_read_only_bidir_list_iterator_type_id, sizeof (GeeReadOnlyBidirListIteratorPrivate)); + return gee_read_only_bidir_list_iterator_type_id; +} + +static GType gee_read_only_bidir_list_iterator_get_type (void) { static volatile gsize gee_read_only_bidir_list_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_bidir_list_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirListIterator), 0, (GInstanceInitFunc) gee_read_only_bidir_list_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_read_only_bidir_list_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_list_iterator_info = { (GInterfaceInitFunc) gee_read_only_bidir_list_iterator_gee_bidir_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_bidir_list_iterator_type_id; - gee_read_only_bidir_list_iterator_type_id = g_type_register_static (GEE_READ_ONLY_LIST_TYPE_ITERATOR, "GeeReadOnlyBidirListIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_bidir_list_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); - g_type_add_interface_static (gee_read_only_bidir_list_iterator_type_id, GEE_TYPE_BIDIR_LIST_ITERATOR, &gee_bidir_list_iterator_info); - GeeReadOnlyBidirListIterator_private_offset = g_type_add_instance_private (gee_read_only_bidir_list_iterator_type_id, sizeof (GeeReadOnlyBidirListIteratorPrivate)); + gee_read_only_bidir_list_iterator_type_id = gee_read_only_bidir_list_iterator_get_type_once (); g_once_init_leave (&gee_read_only_bidir_list_iterator_type_id__volatile, gee_read_only_bidir_list_iterator_type_id); } return gee_read_only_bidir_list_iterator_type_id__volatile; @@ -884,17 +648,25 @@ self->priv = gee_read_only_bidir_list_get_instance_private (self); } -G_GNUC_INTERNAL GType +static GType +gee_read_only_bidir_list_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirList), 0, (GInstanceInitFunc) gee_read_only_bidir_list_instance_init, NULL }; + static const GInterfaceInfo gee_bidir_list_info = { (GInterfaceInitFunc) gee_read_only_bidir_list_gee_bidir_list_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_bidir_list_type_id; + gee_read_only_bidir_list_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_LIST, "GeeReadOnlyBidirList", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_bidir_list_type_id, GEE_TYPE_BIDIR_LIST, &gee_bidir_list_info); + GeeReadOnlyBidirList_private_offset = g_type_add_instance_private (gee_read_only_bidir_list_type_id, sizeof (GeeReadOnlyBidirListPrivate)); + return gee_read_only_bidir_list_type_id; +} + + G_GNUC_INTERNAL GType gee_read_only_bidir_list_get_type (void) { static volatile gsize gee_read_only_bidir_list_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_bidir_list_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirList), 0, (GInstanceInitFunc) gee_read_only_bidir_list_instance_init, NULL }; - static const GInterfaceInfo gee_bidir_list_info = { (GInterfaceInitFunc) gee_read_only_bidir_list_gee_bidir_list_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_bidir_list_type_id; - gee_read_only_bidir_list_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_LIST, "GeeReadOnlyBidirList", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_bidir_list_type_id, GEE_TYPE_BIDIR_LIST, &gee_bidir_list_info); - GeeReadOnlyBidirList_private_offset = g_type_add_instance_private (gee_read_only_bidir_list_type_id, sizeof (GeeReadOnlyBidirListPrivate)); + gee_read_only_bidir_list_type_id = gee_read_only_bidir_list_get_type_once (); g_once_init_leave (&gee_read_only_bidir_list_type_id__volatile, gee_read_only_bidir_list_type_id); } return gee_read_only_bidir_list_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/readonlybidirsortedmap.c libgee-0.8-0.20.4/gee/readonlybidirsortedmap.c --- libgee-0.8-0.20.3/gee/readonlybidirsortedmap.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/readonlybidirsortedmap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* readonlybidirsortedmap.c generated by valac 0.46.6, the Vala compiler +/* readonlybidirsortedmap.c generated by valac 0.52.0, the Vala compiler * generated from readonlybidirsortedmap.vala, do not modify */ /* readonlybidirsortedmap.vala @@ -24,100 +24,9 @@ */ #include +#include "gee.h" #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - #define GEE_TYPE_READ_ONLY_MAP (gee_read_only_map_get_type ()) #define GEE_READ_ONLY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMap)) #define GEE_READ_ONLY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMapClass)) @@ -129,22 +38,6 @@ typedef struct _GeeReadOnlyMapClass GeeReadOnlyMapClass; typedef struct _GeeReadOnlyMapPrivate GeeReadOnlyMapPrivate; -#define GEE_TYPE_SORTED_MAP (gee_sorted_map_get_type ()) -#define GEE_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMap)) -#define GEE_IS_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_MAP)) -#define GEE_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMapIface)) - -typedef struct _GeeSortedMap GeeSortedMap; -typedef struct _GeeSortedMapIface GeeSortedMapIface; - -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - #define GEE_TYPE_READ_ONLY_SORTED_MAP (gee_read_only_sorted_map_get_type ()) #define GEE_READ_ONLY_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SORTED_MAP, GeeReadOnlySortedMap)) #define GEE_READ_ONLY_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SORTED_MAP, GeeReadOnlySortedMapClass)) @@ -156,22 +49,6 @@ typedef struct _GeeReadOnlySortedMapClass GeeReadOnlySortedMapClass; typedef struct _GeeReadOnlySortedMapPrivate GeeReadOnlySortedMapPrivate; -#define GEE_TYPE_BIDIR_SORTED_MAP (gee_bidir_sorted_map_get_type ()) -#define GEE_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMap)) -#define GEE_IS_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_MAP)) -#define GEE_BIDIR_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMapIface)) - -typedef struct _GeeBidirSortedMap GeeBidirSortedMap; -typedef struct _GeeBidirSortedMapIface GeeBidirSortedMapIface; - -#define GEE_TYPE_BIDIR_MAP_ITERATOR (gee_bidir_map_iterator_get_type ()) -#define GEE_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIterator)) -#define GEE_IS_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR)) -#define GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIteratorIface)) - -typedef struct _GeeBidirMapIterator GeeBidirMapIterator; -typedef struct _GeeBidirMapIteratorIface GeeBidirMapIteratorIface; - #define GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP (gee_read_only_bidir_sorted_map_get_type ()) #define GEE_READ_ONLY_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP, GeeReadOnlyBidirSortedMap)) #define GEE_READ_ONLY_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_BIDIR_SORTED_MAP, GeeReadOnlyBidirSortedMapClass)) @@ -229,129 +106,6 @@ }; static GParamSpec* gee_read_only_bidir_sorted_map_bidir_map_iterator_properties[GEE_READ_ONLY_BIDIR_SORTED_MAP_BIDIR_MAP_ITERATOR_NUM_PROPERTIES]; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - struct _GeeReadOnlyMap { GObject parent_instance; GeeReadOnlyMapPrivate * priv; @@ -363,34 +117,6 @@ GeeMap* (*get_read_only_view) (GeeReadOnlyMap* self); }; -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - -struct _GeeSortedMapIface { - GTypeInterface parent_iface; - GeeSortedMap* (*head_map) (GeeSortedMap* self, gconstpointer before); - GeeSortedMap* (*tail_map) (GeeSortedMap* self, gconstpointer after); - GeeSortedMap* (*sub_map) (GeeSortedMap* self, gconstpointer before, gconstpointer after); - GeeSortedSet* (*get_ascending_keys) (GeeSortedMap* self); - GeeSortedSet* (*get_ascending_entries) (GeeSortedMap* self); - GeeSortedMap* (*get_read_only_view) (GeeSortedMap* self); -}; - struct _GeeReadOnlySortedMap { GeeReadOnlyMap parent_instance; GeeReadOnlySortedMapPrivate * priv; @@ -400,32 +126,6 @@ GeeReadOnlyMapClass parent_class; }; -struct _GeeBidirMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeBidirMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeBidirMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeBidirMapIterator* self); - GType (*get_v_type) (GeeBidirMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeBidirMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeBidirMapIterator* self); - gboolean (*previous) (GeeBidirMapIterator* self); - gboolean (*has_previous) (GeeBidirMapIterator* self); - gboolean (*first) (GeeBidirMapIterator* self); - gboolean (*last) (GeeBidirMapIterator* self); -}; - -struct _GeeBidirSortedMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeBidirSortedMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeBidirSortedMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeBidirSortedMap* self); - GType (*get_v_type) (GeeBidirSortedMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeBidirSortedMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeBidirSortedMap* self); - GeeBidirMapIterator* (*bidir_map_iterator) (GeeBidirSortedMap* self); - GeeBidirSortedMap* (*get_read_only_view) (GeeBidirSortedMap* self); -}; - struct _GeeReadOnlyBidirSortedMap { GeeReadOnlySortedMap parent_instance; GeeReadOnlyBidirSortedMapPrivate * priv; @@ -479,48 +179,17 @@ static GeeBidirMapIteratorIface * gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_parent_iface = NULL; static GeeBidirSortedMapIface * gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMap, g_object_unref) -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_sorted_map_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_sorted_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySortedMap, g_object_unref) -GType gee_bidir_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_sorted_map_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_bidir_sorted_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyBidirSortedMap, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_new (GType k_type, + G_GNUC_INTERNAL GType gee_read_only_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_sorted_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_bidir_sorted_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeBidirSortedMap* map); -G_GNUC_INTERNAL GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -528,14 +197,14 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeBidirSortedMap* map); -G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_new (GType k_type, + G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map); -G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -544,15 +213,14 @@ GDestroyNotify v_destroy_func, GeeMap* map); static GeeBidirMapIterator* gee_read_only_bidir_sorted_map_real_bidir_map_iterator (GeeBidirSortedMap* base); -GeeBidirMapIterator* gee_bidir_sorted_map_bidir_map_iterator (GeeBidirSortedMap* self); -G_GNUC_INTERNAL GeeReadOnlyBidirSortedMapBidirMapIterator* gee_read_only_bidir_sorted_map_bidir_map_iterator_new (GType k_type, + G_GNUC_INTERNAL GeeReadOnlyBidirSortedMapBidirMapIterator* gee_read_only_bidir_sorted_map_bidir_map_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeBidirMapIterator* iterator); -G_GNUC_INTERNAL GeeReadOnlyBidirSortedMapBidirMapIterator* gee_read_only_bidir_sorted_map_bidir_map_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyBidirSortedMapBidirMapIterator* gee_read_only_bidir_sorted_map_bidir_map_iterator_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -560,18 +228,16 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeBidirMapIterator* iterator); -G_GNUC_INTERNAL GType gee_read_only_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMapMapIterator, g_object_unref) -GType gee_read_only_bidir_sorted_map_bidir_map_iterator_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyBidirSortedMapBidirMapIterator, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_new (GType k_type, + G_GNUC_INTERNAL GType gee_read_only_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +GType gee_read_only_bidir_sorted_map_bidir_map_iterator_get_type (void) G_GNUC_CONST ; + G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* iterator); -G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -580,13 +246,10 @@ GDestroyNotify v_destroy_func, GeeMapIterator* iterator); static gboolean gee_read_only_bidir_sorted_map_bidir_map_iterator_real_first (GeeBidirMapIterator* base); -gboolean gee_bidir_map_iterator_first (GeeBidirMapIterator* self); static gboolean gee_read_only_bidir_sorted_map_bidir_map_iterator_real_previous (GeeBidirMapIterator* base); -gboolean gee_bidir_map_iterator_previous (GeeBidirMapIterator* self); static gboolean gee_read_only_bidir_sorted_map_bidir_map_iterator_real_has_previous (GeeBidirMapIterator* base); -gboolean gee_bidir_map_iterator_has_previous (GeeBidirMapIterator* self); static gboolean gee_read_only_bidir_sorted_map_bidir_map_iterator_real_last (GeeBidirMapIterator* base); -gboolean gee_bidir_map_iterator_last (GeeBidirMapIterator* self); +static GType gee_read_only_bidir_sorted_map_bidir_map_iterator_get_type_once (void); static void _vala_gee_read_only_bidir_sorted_map_bidir_map_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -595,7 +258,7 @@ guint property_id, const GValue * value, GParamSpec * pspec); -GeeBidirSortedMap* gee_bidir_sorted_map_get_read_only_view (GeeBidirSortedMap* self); +static GType gee_read_only_bidir_sorted_map_get_type_once (void); static void _vala_gee_read_only_bidir_sorted_map_get_property (GObject * object, guint property_id, GValue * value, @@ -616,7 +279,7 @@ * * @param set the set to decorate. */ -G_GNUC_INTERNAL GeeReadOnlyBidirSortedMap* + G_GNUC_INTERNAL GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, @@ -638,7 +301,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlyBidirSortedMap* + G_GNUC_INTERNAL GeeReadOnlyBidirSortedMap* gee_read_only_bidir_sorted_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -698,7 +361,7 @@ return G_STRUCT_MEMBER_P (self, GeeReadOnlyBidirSortedMapBidirMapIterator_private_offset); } -G_GNUC_INTERNAL GeeReadOnlyBidirSortedMapBidirMapIterator* + G_GNUC_INTERNAL GeeReadOnlyBidirSortedMapBidirMapIterator* gee_read_only_bidir_sorted_map_bidir_map_iterator_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, @@ -720,7 +383,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlyBidirSortedMapBidirMapIterator* + G_GNUC_INTERNAL GeeReadOnlyBidirSortedMapBidirMapIterator* gee_read_only_bidir_sorted_map_bidir_map_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -856,17 +519,25 @@ self->priv = gee_read_only_bidir_sorted_map_bidir_map_iterator_get_instance_private (self); } +static GType +gee_read_only_bidir_sorted_map_bidir_map_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirSortedMapBidirMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_sorted_map_bidir_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirSortedMapBidirMapIterator), 0, (GInstanceInitFunc) gee_read_only_bidir_sorted_map_bidir_map_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_bidir_map_iterator_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id; + gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id = g_type_register_static (GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, "GeeReadOnlyBidirSortedMapBidirMapIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id, GEE_TYPE_BIDIR_MAP_ITERATOR, &gee_bidir_map_iterator_info); + GeeReadOnlyBidirSortedMapBidirMapIterator_private_offset = g_type_add_instance_private (gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id, sizeof (GeeReadOnlyBidirSortedMapBidirMapIteratorPrivate)); + return gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id; +} + GType gee_read_only_bidir_sorted_map_bidir_map_iterator_get_type (void) { static volatile gsize gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirSortedMapBidirMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_sorted_map_bidir_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirSortedMapBidirMapIterator), 0, (GInstanceInitFunc) gee_read_only_bidir_sorted_map_bidir_map_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_bidir_map_iterator_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_map_bidir_map_iterator_gee_bidir_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id; - gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id = g_type_register_static (GEE_READ_ONLY_MAP_TYPE_MAP_ITERATOR, "GeeReadOnlyBidirSortedMapBidirMapIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id, GEE_TYPE_BIDIR_MAP_ITERATOR, &gee_bidir_map_iterator_info); - GeeReadOnlyBidirSortedMapBidirMapIterator_private_offset = g_type_add_instance_private (gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id, sizeof (GeeReadOnlyBidirSortedMapBidirMapIteratorPrivate)); + gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id = gee_read_only_bidir_sorted_map_bidir_map_iterator_get_type_once (); g_once_init_leave (&gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id__volatile, gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id); } return gee_read_only_bidir_sorted_map_bidir_map_iterator_type_id__volatile; @@ -1025,17 +696,25 @@ * * @see BidirSortedMap */ -G_GNUC_INTERNAL GType +static GType +gee_read_only_bidir_sorted_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirSortedMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_sorted_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirSortedMap), 0, (GInstanceInitFunc) gee_read_only_bidir_sorted_map_instance_init, NULL }; + static const GInterfaceInfo gee_bidir_sorted_map_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_bidir_sorted_map_type_id; + gee_read_only_bidir_sorted_map_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_SORTED_MAP, "GeeReadOnlyBidirSortedMap", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_bidir_sorted_map_type_id, GEE_TYPE_BIDIR_SORTED_MAP, &gee_bidir_sorted_map_info); + GeeReadOnlyBidirSortedMap_private_offset = g_type_add_instance_private (gee_read_only_bidir_sorted_map_type_id, sizeof (GeeReadOnlyBidirSortedMapPrivate)); + return gee_read_only_bidir_sorted_map_type_id; +} + + G_GNUC_INTERNAL GType gee_read_only_bidir_sorted_map_get_type (void) { static volatile gsize gee_read_only_bidir_sorted_map_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_bidir_sorted_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirSortedMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_sorted_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirSortedMap), 0, (GInstanceInitFunc) gee_read_only_bidir_sorted_map_instance_init, NULL }; - static const GInterfaceInfo gee_bidir_sorted_map_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_map_gee_bidir_sorted_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_bidir_sorted_map_type_id; - gee_read_only_bidir_sorted_map_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_SORTED_MAP, "GeeReadOnlyBidirSortedMap", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_bidir_sorted_map_type_id, GEE_TYPE_BIDIR_SORTED_MAP, &gee_bidir_sorted_map_info); - GeeReadOnlyBidirSortedMap_private_offset = g_type_add_instance_private (gee_read_only_bidir_sorted_map_type_id, sizeof (GeeReadOnlyBidirSortedMapPrivate)); + gee_read_only_bidir_sorted_map_type_id = gee_read_only_bidir_sorted_map_get_type_once (); g_once_init_leave (&gee_read_only_bidir_sorted_map_type_id__volatile, gee_read_only_bidir_sorted_map_type_id); } return gee_read_only_bidir_sorted_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/readonlybidirsortedset.c libgee-0.8-0.20.4/gee/readonlybidirsortedset.c --- libgee-0.8-0.20.3/gee/readonlybidirsortedset.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/readonlybidirsortedset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* readonlybidirsortedset.c generated by valac 0.46.6, the Vala compiler +/* readonlybidirsortedset.c generated by valac 0.52.0, the Vala compiler * generated from readonlybidirsortedset.vala, do not modify */ /* readonlybidirsortedset.vala @@ -24,64 +24,9 @@ */ #include +#include "gee.h" #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - #define GEE_TYPE_READ_ONLY_COLLECTION (gee_read_only_collection_get_type ()) #define GEE_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollection)) #define GEE_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass)) @@ -93,14 +38,6 @@ typedef struct _GeeReadOnlyCollectionClass GeeReadOnlyCollectionClass; typedef struct _GeeReadOnlyCollectionPrivate GeeReadOnlyCollectionPrivate; -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - #define GEE_TYPE_READ_ONLY_SET (gee_read_only_set_get_type ()) #define GEE_READ_ONLY_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySet)) #define GEE_READ_ONLY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySetClass)) @@ -112,14 +49,6 @@ typedef struct _GeeReadOnlySetClass GeeReadOnlySetClass; typedef struct _GeeReadOnlySetPrivate GeeReadOnlySetPrivate; -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - #define GEE_TYPE_READ_ONLY_SORTED_SET (gee_read_only_sorted_set_get_type ()) #define GEE_READ_ONLY_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSet)) #define GEE_READ_ONLY_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSetClass)) @@ -131,22 +60,6 @@ typedef struct _GeeReadOnlySortedSetClass GeeReadOnlySortedSetClass; typedef struct _GeeReadOnlySortedSetPrivate GeeReadOnlySortedSetPrivate; -#define GEE_TYPE_BIDIR_SORTED_SET (gee_bidir_sorted_set_get_type ()) -#define GEE_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSet)) -#define GEE_IS_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_SET)) -#define GEE_BIDIR_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSetIface)) - -typedef struct _GeeBidirSortedSet GeeBidirSortedSet; -typedef struct _GeeBidirSortedSetIface GeeBidirSortedSetIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; - #define GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET (gee_read_only_bidir_sorted_set_get_type ()) #define GEE_READ_ONLY_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSet)) #define GEE_READ_ONLY_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_BIDIR_SORTED_SET, GeeReadOnlyBidirSortedSetClass)) @@ -197,73 +110,6 @@ }; static GParamSpec* gee_read_only_bidir_sorted_set_bidir_iterator_properties[GEE_READ_ONLY_BIDIR_SORTED_SET_BIDIR_ITERATOR_NUM_PROPERTIES]; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - struct _GeeReadOnlyCollection { GObject parent_instance; GeeReadOnlyCollectionPrivate * priv; @@ -275,14 +121,6 @@ GeeCollection* (*get_read_only_view) (GeeReadOnlyCollection* self); }; -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - struct _GeeReadOnlySet { GeeReadOnlyCollection parent_instance; GeeReadOnlySetPrivate * priv; @@ -293,24 +131,6 @@ GeeSet* (*get_read_only_view) (GeeReadOnlySet* self); }; -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - struct _GeeReadOnlySortedSet { GeeReadOnlySet parent_instance; GeeReadOnlySortedSetPrivate * priv; @@ -320,26 +140,6 @@ GeeReadOnlySetClass parent_class; }; -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirSortedSet* self); - GeeBidirIterator* (*bidir_iterator) (GeeBidirSortedSet* self); - GeeBidirSortedSet* (*get_read_only_view) (GeeBidirSortedSet* self); -}; - struct _GeeReadOnlyBidirSortedSet { GeeReadOnlySortedSet parent_instance; GeeReadOnlyBidirSortedSetPrivate * priv; @@ -387,87 +187,54 @@ static GeeBidirIteratorIface * gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_parent_iface = NULL; static GeeBidirSortedSetIface * gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -GType gee_set_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySet, g_object_unref) -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySortedSet, g_object_unref) -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_sorted_set_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_bidir_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyBidirSortedSet, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_new (GType g_type, + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_bidir_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirSortedSet* set); -G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirSortedSet* set); -G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSortedSet* set); -G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSortedSet* set); static GeeBidirIterator* gee_read_only_bidir_sorted_set_real_bidir_iterator (GeeBidirSortedSet* base); -GeeBidirIterator* gee_bidir_sorted_set_bidir_iterator (GeeBidirSortedSet* self); -G_GNUC_INTERNAL GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirIterator* iterator); -G_GNUC_INTERNAL GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeBidirIterator* iterator); -GType gee_read_only_collection_iterator_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollectionIterator, g_object_unref) -GType gee_read_only_bidir_sorted_set_bidir_iterator_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyBidirSortedSetBidirIterator, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_new (GType g_type, +GType gee_read_only_collection_iterator_get_type (void) G_GNUC_CONST ; +GType gee_read_only_bidir_sorted_set_bidir_iterator_get_type (void) G_GNUC_CONST ; + G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iterator); -G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iterator); static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_first (GeeBidirIterator* base); -gboolean gee_bidir_iterator_first (GeeBidirIterator* self); static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_previous (GeeBidirIterator* base); -gboolean gee_bidir_iterator_previous (GeeBidirIterator* self); static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_has_previous (GeeBidirIterator* base); -gboolean gee_bidir_iterator_has_previous (GeeBidirIterator* self); static gboolean gee_read_only_bidir_sorted_set_bidir_iterator_real_last (GeeBidirIterator* base); -gboolean gee_bidir_iterator_last (GeeBidirIterator* self); +static GType gee_read_only_bidir_sorted_set_bidir_iterator_get_type_once (void); static void _vala_gee_read_only_bidir_sorted_set_bidir_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -476,7 +243,7 @@ guint property_id, const GValue * value, GParamSpec * pspec); -GeeSortedSet* gee_sorted_set_get_read_only_view (GeeSortedSet* self); +static GType gee_read_only_bidir_sorted_set_get_type_once (void); static void _vala_gee_read_only_bidir_sorted_set_get_property (GObject * object, guint property_id, GValue * value, @@ -497,7 +264,7 @@ * * @param set the set to decorate. */ -G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* + G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -513,7 +280,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* + G_GNUC_INTERNAL GeeReadOnlyBidirSortedSet* gee_read_only_bidir_sorted_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -552,7 +319,7 @@ return G_STRUCT_MEMBER_P (self, GeeReadOnlyBidirSortedSetBidirIterator_private_offset); } -G_GNUC_INTERNAL GeeReadOnlyBidirSortedSetBidirIterator* + G_GNUC_INTERNAL GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -568,7 +335,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlyBidirSortedSetBidirIterator* + G_GNUC_INTERNAL GeeReadOnlyBidirSortedSetBidirIterator* gee_read_only_bidir_sorted_set_bidir_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -677,17 +444,25 @@ self->priv = gee_read_only_bidir_sorted_set_bidir_iterator_get_instance_private (self); } +static GType +gee_read_only_bidir_sorted_set_bidir_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirSortedSetBidirIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_sorted_set_bidir_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirSortedSetBidirIterator), 0, (GInstanceInitFunc) gee_read_only_bidir_sorted_set_bidir_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_bidir_sorted_set_bidir_iterator_type_id; + gee_read_only_bidir_sorted_set_bidir_iterator_type_id = g_type_register_static (GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, "GeeReadOnlyBidirSortedSetBidirIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_bidir_sorted_set_bidir_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); + GeeReadOnlyBidirSortedSetBidirIterator_private_offset = g_type_add_instance_private (gee_read_only_bidir_sorted_set_bidir_iterator_type_id, sizeof (GeeReadOnlyBidirSortedSetBidirIteratorPrivate)); + return gee_read_only_bidir_sorted_set_bidir_iterator_type_id; +} + GType gee_read_only_bidir_sorted_set_bidir_iterator_get_type (void) { static volatile gsize gee_read_only_bidir_sorted_set_bidir_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_bidir_sorted_set_bidir_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirSortedSetBidirIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_sorted_set_bidir_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirSortedSetBidirIterator), 0, (GInstanceInitFunc) gee_read_only_bidir_sorted_set_bidir_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_set_bidir_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_bidir_sorted_set_bidir_iterator_type_id; - gee_read_only_bidir_sorted_set_bidir_iterator_type_id = g_type_register_static (GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, "GeeReadOnlyBidirSortedSetBidirIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_bidir_sorted_set_bidir_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); - GeeReadOnlyBidirSortedSetBidirIterator_private_offset = g_type_add_instance_private (gee_read_only_bidir_sorted_set_bidir_iterator_type_id, sizeof (GeeReadOnlyBidirSortedSetBidirIteratorPrivate)); + gee_read_only_bidir_sorted_set_bidir_iterator_type_id = gee_read_only_bidir_sorted_set_bidir_iterator_get_type_once (); g_once_init_leave (&gee_read_only_bidir_sorted_set_bidir_iterator_type_id__volatile, gee_read_only_bidir_sorted_set_bidir_iterator_type_id); } return gee_read_only_bidir_sorted_set_bidir_iterator_type_id__volatile; @@ -800,17 +575,25 @@ * * @see BidirSortedSet */ -G_GNUC_INTERNAL GType +static GType +gee_read_only_bidir_sorted_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirSortedSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_sorted_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirSortedSet), 0, (GInstanceInitFunc) gee_read_only_bidir_sorted_set_instance_init, NULL }; + static const GInterfaceInfo gee_bidir_sorted_set_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_bidir_sorted_set_type_id; + gee_read_only_bidir_sorted_set_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_SORTED_SET, "GeeReadOnlyBidirSortedSet", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_bidir_sorted_set_type_id, GEE_TYPE_BIDIR_SORTED_SET, &gee_bidir_sorted_set_info); + GeeReadOnlyBidirSortedSet_private_offset = g_type_add_instance_private (gee_read_only_bidir_sorted_set_type_id, sizeof (GeeReadOnlyBidirSortedSetPrivate)); + return gee_read_only_bidir_sorted_set_type_id; +} + + G_GNUC_INTERNAL GType gee_read_only_bidir_sorted_set_get_type (void) { static volatile gsize gee_read_only_bidir_sorted_set_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_bidir_sorted_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyBidirSortedSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_bidir_sorted_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyBidirSortedSet), 0, (GInstanceInitFunc) gee_read_only_bidir_sorted_set_instance_init, NULL }; - static const GInterfaceInfo gee_bidir_sorted_set_info = { (GInterfaceInitFunc) gee_read_only_bidir_sorted_set_gee_bidir_sorted_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_bidir_sorted_set_type_id; - gee_read_only_bidir_sorted_set_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_SORTED_SET, "GeeReadOnlyBidirSortedSet", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_bidir_sorted_set_type_id, GEE_TYPE_BIDIR_SORTED_SET, &gee_bidir_sorted_set_info); - GeeReadOnlyBidirSortedSet_private_offset = g_type_add_instance_private (gee_read_only_bidir_sorted_set_type_id, sizeof (GeeReadOnlyBidirSortedSetPrivate)); + gee_read_only_bidir_sorted_set_type_id = gee_read_only_bidir_sorted_set_get_type_once (); g_once_init_leave (&gee_read_only_bidir_sorted_set_type_id__volatile, gee_read_only_bidir_sorted_set_type_id); } return gee_read_only_bidir_sorted_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/readonlycollection.c libgee-0.8-0.20.4/gee/readonlycollection.c --- libgee-0.8-0.20.3/gee/readonlycollection.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/readonlycollection.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* readonlycollection.c generated by valac 0.46.6, the Vala compiler +/* readonlycollection.c generated by valac 0.52.0, the Vala compiler * generated from readonlycollection.vala, do not modify */ /* readonlycollection.vala @@ -25,64 +25,9 @@ */ #include +#include "gee.h" #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - #define GEE_TYPE_READ_ONLY_COLLECTION (gee_read_only_collection_get_type ()) #define GEE_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollection)) #define GEE_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass)) @@ -127,73 +72,6 @@ }; static GParamSpec* gee_read_only_collection_iterator_properties[GEE_READ_ONLY_COLLECTION_ITERATOR_NUM_PROPERTIES]; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - struct _GeeReadOnlyCollection { GObject parent_instance; GeeReadOnlyCollectionPrivate * priv; @@ -237,32 +115,13 @@ static GeeIterableIface * gee_read_only_collection_gee_iterable_parent_iface = NULL; static GeeCollectionIface * gee_read_only_collection_gee_collection_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_new (GType g_type, + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeCollection* gee_read_only_collection_get_read_only_view (GeeReadOnlyCollection* self); + G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeCollection* collection); -G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -270,9 +129,6 @@ static gboolean gee_read_only_collection_real_foreach (GeeTraversable* base, GeeForallFunc f, gpointer f_target); -gboolean gee_traversable_foreach (GeeTraversable* self, - GeeForallFunc f, - gpointer f_target); static GeeIterator* gee_read_only_collection_real_stream (GeeTraversable* base, GType a_type, GBoxedCopyFunc a_dup_func, @@ -280,44 +136,26 @@ GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); -GeeIterator* gee_traversable_stream (GeeTraversable* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeStreamFunc f, - gpointer f_target, - GDestroyNotify f_target_destroy_notify); static GeeIterator* gee_read_only_collection_real_filter (GeeTraversable* base, GeePredicate f, gpointer f_target, GDestroyNotify f_target_destroy_notify); -GeeIterator* gee_traversable_filter (GeeTraversable* self, - GeePredicate pred, - gpointer pred_target, - GDestroyNotify pred_target_destroy_notify); static GeeIterator* gee_read_only_collection_real_chop (GeeTraversable* base, gint offset, gint length); -GeeIterator* gee_traversable_chop (GeeTraversable* self, - gint offset, - gint length); static GeeIterator* gee_read_only_collection_real_iterator (GeeIterable* base); -GeeIterator* gee_iterable_iterator (GeeIterable* self); -G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iterator); -G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iterator); -GType gee_read_only_collection_iterator_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollectionIterator, g_object_unref) +GType gee_read_only_collection_iterator_get_type (void) G_GNUC_CONST ; static gboolean gee_read_only_collection_real_contains (GeeCollection* base, gconstpointer item); -gboolean gee_collection_contains (GeeCollection* self, - gconstpointer item); static gboolean gee_read_only_collection_real_add (GeeCollection* base, gconstpointer item); static gboolean gee_read_only_collection_real_remove (GeeCollection* base, @@ -327,25 +165,15 @@ GeeCollection* collection); static gboolean gee_read_only_collection_real_contains_all (GeeCollection* base, GeeCollection* collection); -gboolean gee_collection_contains_all (GeeCollection* self, - GeeCollection* collection); static gboolean gee_read_only_collection_real_remove_all (GeeCollection* base, GeeCollection* collection); static gboolean gee_read_only_collection_real_retain_all (GeeCollection* base, GeeCollection* collection); static gpointer* gee_read_only_collection_real_to_array (GeeCollection* base, gint* result_length1); -gpointer* gee_collection_to_array (GeeCollection* self, - gint* result_length1); -gint gee_collection_get_size (GeeCollection* self); -gboolean gee_collection_get_is_empty (GeeCollection* self); -G_GNUC_INTERNAL GeeCollection* gee_read_only_collection_get_read_only_view (GeeReadOnlyCollection* self); static gboolean gee_read_only_collection_iterator_real_next (GeeIterator* base); -gboolean gee_iterator_next (GeeIterator* self); static gboolean gee_read_only_collection_iterator_real_has_next (GeeIterator* base); -gboolean gee_iterator_has_next (GeeIterator* self); static gpointer gee_read_only_collection_iterator_real_get (GeeIterator* base); -gpointer gee_iterator_get (GeeIterator* self); static void gee_read_only_collection_iterator_real_remove (GeeIterator* base); static gboolean gee_read_only_collection_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, @@ -367,12 +195,8 @@ static GeeIterator** gee_read_only_collection_iterator_real_tee (GeeTraversable* base, guint forks, gint* result_length1); -GeeIterator** gee_traversable_tee (GeeTraversable* self, - guint forks, - gint* result_length1); -gboolean gee_iterator_get_valid (GeeIterator* self); static void gee_read_only_collection_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_read_only (GeeIterator* self); +static GType gee_read_only_collection_iterator_get_type_once (void); static void _vala_gee_read_only_collection_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -382,7 +206,7 @@ const GValue * value, GParamSpec * pspec); static void gee_read_only_collection_finalize (GObject * obj); -gboolean gee_collection_get_read_only (GeeCollection* self); +static GType gee_read_only_collection_get_type_once (void); static void _vala_gee_read_only_collection_get_property (GObject * object, guint property_id, GValue * value, @@ -416,7 +240,7 @@ return self ? g_object_ref (self) : NULL; } -G_GNUC_INTERNAL GeeReadOnlyCollection* + G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -436,7 +260,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlyCollection* + G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -759,11 +583,16 @@ return result; } -G_GNUC_INTERNAL GeeCollection* + G_GNUC_INTERNAL GeeCollection* gee_read_only_collection_get_read_only_view (GeeReadOnlyCollection* self) { + GeeReadOnlyCollectionClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_READ_ONLY_COLLECTION_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_READ_ONLY_COLLECTION_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static GeeCollection* @@ -784,7 +613,7 @@ return G_STRUCT_MEMBER_P (self, GeeReadOnlyCollectionIterator_private_offset); } -G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* + G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -804,7 +633,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* + G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -1186,19 +1015,27 @@ G_OBJECT_CLASS (gee_read_only_collection_iterator_parent_class)->finalize (obj); } +static GType +gee_read_only_collection_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyCollectionIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_collection_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyCollectionIterator), 0, (GInstanceInitFunc) gee_read_only_collection_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_read_only_collection_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_read_only_collection_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_collection_iterator_type_id; + gee_read_only_collection_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeReadOnlyCollectionIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_collection_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_read_only_collection_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeReadOnlyCollectionIterator_private_offset = g_type_add_instance_private (gee_read_only_collection_iterator_type_id, sizeof (GeeReadOnlyCollectionIteratorPrivate)); + return gee_read_only_collection_iterator_type_id; +} + GType gee_read_only_collection_iterator_get_type (void) { static volatile gsize gee_read_only_collection_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_collection_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyCollectionIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_collection_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyCollectionIterator), 0, (GInstanceInitFunc) gee_read_only_collection_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_read_only_collection_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_read_only_collection_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_collection_iterator_type_id; - gee_read_only_collection_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeReadOnlyCollectionIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_collection_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_read_only_collection_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeReadOnlyCollectionIterator_private_offset = g_type_add_instance_private (gee_read_only_collection_iterator_type_id, sizeof (GeeReadOnlyCollectionIteratorPrivate)); + gee_read_only_collection_iterator_type_id = gee_read_only_collection_iterator_get_type_once (); g_once_init_leave (&gee_read_only_collection_iterator_type_id__volatile, gee_read_only_collection_iterator_type_id); } return gee_read_only_collection_iterator_type_id__volatile; @@ -1410,21 +1247,29 @@ * * @see Collection */ -G_GNUC_INTERNAL GType +static GType +gee_read_only_collection_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyCollection), 0, (GInstanceInitFunc) gee_read_only_collection_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_read_only_collection_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterable_info = { (GInterfaceInitFunc) gee_read_only_collection_gee_iterable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_collection_info = { (GInterfaceInitFunc) gee_read_only_collection_gee_collection_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_collection_type_id; + gee_read_only_collection_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeReadOnlyCollection", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_collection_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_read_only_collection_type_id, GEE_TYPE_ITERABLE, &gee_iterable_info); + g_type_add_interface_static (gee_read_only_collection_type_id, GEE_TYPE_COLLECTION, &gee_collection_info); + GeeReadOnlyCollection_private_offset = g_type_add_instance_private (gee_read_only_collection_type_id, sizeof (GeeReadOnlyCollectionPrivate)); + return gee_read_only_collection_type_id; +} + + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) { static volatile gsize gee_read_only_collection_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_collection_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyCollection), 0, (GInstanceInitFunc) gee_read_only_collection_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_read_only_collection_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterable_info = { (GInterfaceInitFunc) gee_read_only_collection_gee_iterable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_collection_info = { (GInterfaceInitFunc) gee_read_only_collection_gee_collection_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_collection_type_id; - gee_read_only_collection_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeReadOnlyCollection", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_collection_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_read_only_collection_type_id, GEE_TYPE_ITERABLE, &gee_iterable_info); - g_type_add_interface_static (gee_read_only_collection_type_id, GEE_TYPE_COLLECTION, &gee_collection_info); - GeeReadOnlyCollection_private_offset = g_type_add_instance_private (gee_read_only_collection_type_id, sizeof (GeeReadOnlyCollectionPrivate)); + gee_read_only_collection_type_id = gee_read_only_collection_get_type_once (); g_once_init_leave (&gee_read_only_collection_type_id__volatile, gee_read_only_collection_type_id); } return gee_read_only_collection_type_id__volatile; @@ -1493,7 +1338,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/readonlylist.c libgee-0.8-0.20.4/gee/readonlylist.c --- libgee-0.8-0.20.3/gee/readonlylist.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/readonlylist.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* readonlylist.c generated by valac 0.46.6, the Vala compiler +/* readonlylist.c generated by valac 0.52.0, the Vala compiler * generated from readonlylist.vala, do not modify */ /* readonlylist.vala @@ -24,64 +24,9 @@ */ #include +#include "gee.h" #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - #define GEE_TYPE_READ_ONLY_COLLECTION (gee_read_only_collection_get_type ()) #define GEE_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollection)) #define GEE_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass)) @@ -93,22 +38,6 @@ typedef struct _GeeReadOnlyCollectionClass GeeReadOnlyCollectionClass; typedef struct _GeeReadOnlyCollectionPrivate GeeReadOnlyCollectionPrivate; -#define GEE_TYPE_LIST (gee_list_get_type ()) -#define GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST, GeeList)) -#define GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST)) -#define GEE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST, GeeListIface)) - -typedef struct _GeeList GeeList; -typedef struct _GeeListIface GeeListIface; - -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; - #define GEE_TYPE_READ_ONLY_LIST (gee_read_only_list_get_type ()) #define GEE_READ_ONLY_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_LIST, GeeReadOnlyList)) #define GEE_READ_ONLY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_LIST, GeeReadOnlyListClass)) @@ -160,73 +89,6 @@ }; static GParamSpec* gee_read_only_list_iterator_properties[GEE_READ_ONLY_LIST_ITERATOR_NUM_PROPERTIES]; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - struct _GeeReadOnlyCollection { GObject parent_instance; GeeReadOnlyCollectionPrivate * priv; @@ -238,32 +100,6 @@ GeeCollection* (*get_read_only_view) (GeeReadOnlyCollection* self); }; -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -struct _GeeListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeList* self); - GDestroyNotify (*get_g_destroy_func) (GeeList* self); - GeeListIterator* (*list_iterator) (GeeList* self); - gpointer (*get) (GeeList* self, gint index); - void (*set) (GeeList* self, gint index, gconstpointer item); - gint (*index_of) (GeeList* self, gconstpointer item); - void (*insert) (GeeList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeList* self, gint index); - GeeList* (*slice) (GeeList* self, gint start, gint stop); - gpointer (*first) (GeeList* self); - gpointer (*last) (GeeList* self); - void (*insert_all) (GeeList* self, gint index, GeeCollection* collection); - void (*sort) (GeeList* self, GCompareDataFunc compare_func, gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify); - GeeList* (*get_read_only_view) (GeeList* self); -}; - struct _GeeReadOnlyList { GeeReadOnlyCollection parent_instance; GeeReadOnlyListPrivate * priv; @@ -312,68 +148,41 @@ static GeeListIteratorIface * gee_read_only_list_iterator_gee_list_iterator_parent_iface = NULL; static GeeListIface * gee_read_only_list_gee_list_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_list_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyList, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_new (GType g_type, + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_list_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeList* gee_read_only_list_get_read_only_view (GeeReadOnlyList* self); + G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeList* list); -G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeList* list); -G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeCollection* collection); -G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeCollection* collection); static GeeListIterator* gee_read_only_list_real_list_iterator (GeeList* base); -GeeListIterator* gee_list_list_iterator (GeeList* self); -G_GNUC_INTERNAL GeeReadOnlyListIterator* gee_read_only_list_iterator_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyListIterator* gee_read_only_list_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeListIterator* iterator); -G_GNUC_INTERNAL GeeReadOnlyListIterator* gee_read_only_list_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyListIterator* gee_read_only_list_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeListIterator* iterator); -GType gee_read_only_collection_iterator_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollectionIterator, g_object_unref) -GType gee_read_only_list_iterator_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyListIterator, g_object_unref) +GType gee_read_only_collection_iterator_get_type (void) G_GNUC_CONST ; +GType gee_read_only_list_iterator_get_type (void) G_GNUC_CONST ; static gint gee_read_only_list_real_index_of (GeeList* base, gconstpointer item); -gint gee_list_index_of (GeeList* self, - gconstpointer item); static void gee_read_only_list_real_insert (GeeList* base, gint index, gconstpointer item); @@ -381,21 +190,14 @@ gint index); static gpointer gee_read_only_list_real_get (GeeList* base, gint index); -gpointer gee_list_get (GeeList* self, - gint index); static void gee_read_only_list_real_set (GeeList* base, gint index, gconstpointer o); static GeeList* gee_read_only_list_real_slice (GeeList* base, gint start, gint stop); -GeeList* gee_list_slice (GeeList* self, - gint start, - gint stop); static gpointer gee_read_only_list_real_first (GeeList* base); -gpointer gee_list_first (GeeList* self); static gpointer gee_read_only_list_real_last (GeeList* base); -gpointer gee_list_last (GeeList* self); static void gee_read_only_list_real_insert_all (GeeList* base, gint index, GeeCollection* collection); @@ -403,12 +205,11 @@ GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -G_GNUC_INTERNAL GeeList* gee_read_only_list_get_read_only_view (GeeReadOnlyList* self); -G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iterator); -G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -418,7 +219,7 @@ static void gee_read_only_list_iterator_real_add (GeeListIterator* base, gconstpointer item); static gint gee_read_only_list_iterator_real_index (GeeListIterator* base); -gint gee_list_iterator_index (GeeListIterator* self); +static GType gee_read_only_list_iterator_get_type_once (void); static void _vala_gee_read_only_list_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -427,6 +228,7 @@ guint property_id, const GValue * value, GParamSpec * pspec); +static GType gee_read_only_list_get_type_once (void); static void _vala_gee_read_only_list_get_property (GObject * object, guint property_id, GValue * value, @@ -448,7 +250,7 @@ * * @param list the list to decorate. */ -G_GNUC_INTERNAL GeeReadOnlyList* + G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -464,7 +266,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlyList* + G_GNUC_INTERNAL GeeReadOnlyList* gee_read_only_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -648,17 +450,18 @@ GeeReadOnlyList * self; self = (GeeReadOnlyList*) base; g_assert_not_reached (); - (compare_target_destroy_notify == NULL) ? NULL : (compare_target_destroy_notify (compare_target), NULL); - compare = NULL; - compare_target = NULL; - compare_target_destroy_notify = NULL; } -G_GNUC_INTERNAL GeeList* + G_GNUC_INTERNAL GeeList* gee_read_only_list_get_read_only_view (GeeReadOnlyList* self) { + GeeReadOnlyListClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_READ_ONLY_LIST_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_READ_ONLY_LIST_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static gpointer @@ -685,7 +488,7 @@ return G_STRUCT_MEMBER_P (self, GeeReadOnlyListIterator_private_offset); } -G_GNUC_INTERNAL GeeReadOnlyListIterator* + G_GNUC_INTERNAL GeeReadOnlyListIterator* gee_read_only_list_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -701,7 +504,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlyListIterator* + G_GNUC_INTERNAL GeeReadOnlyListIterator* gee_read_only_list_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -770,17 +573,25 @@ self->priv = gee_read_only_list_iterator_get_instance_private (self); } +static GType +gee_read_only_list_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyListIterator), 0, (GInstanceInitFunc) gee_read_only_list_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_list_iterator_info = { (GInterfaceInitFunc) gee_read_only_list_iterator_gee_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_list_iterator_type_id; + gee_read_only_list_iterator_type_id = g_type_register_static (GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, "GeeReadOnlyListIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_list_iterator_type_id, GEE_TYPE_LIST_ITERATOR, &gee_list_iterator_info); + GeeReadOnlyListIterator_private_offset = g_type_add_instance_private (gee_read_only_list_iterator_type_id, sizeof (GeeReadOnlyListIteratorPrivate)); + return gee_read_only_list_iterator_type_id; +} + GType gee_read_only_list_iterator_get_type (void) { static volatile gsize gee_read_only_list_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_list_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyListIterator), 0, (GInstanceInitFunc) gee_read_only_list_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_list_iterator_info = { (GInterfaceInitFunc) gee_read_only_list_iterator_gee_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_list_iterator_type_id; - gee_read_only_list_iterator_type_id = g_type_register_static (GEE_READ_ONLY_COLLECTION_TYPE_ITERATOR, "GeeReadOnlyListIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_list_iterator_type_id, GEE_TYPE_LIST_ITERATOR, &gee_list_iterator_info); - GeeReadOnlyListIterator_private_offset = g_type_add_instance_private (gee_read_only_list_iterator_type_id, sizeof (GeeReadOnlyListIteratorPrivate)); + gee_read_only_list_iterator_type_id = gee_read_only_list_iterator_get_type_once (); g_once_init_leave (&gee_read_only_list_iterator_type_id__volatile, gee_read_only_list_iterator_type_id); } return gee_read_only_list_iterator_type_id__volatile; @@ -908,17 +719,25 @@ * * @see List */ -G_GNUC_INTERNAL GType +static GType +gee_read_only_list_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyList), 0, (GInstanceInitFunc) gee_read_only_list_instance_init, NULL }; + static const GInterfaceInfo gee_list_info = { (GInterfaceInitFunc) gee_read_only_list_gee_list_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_list_type_id; + gee_read_only_list_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_COLLECTION, "GeeReadOnlyList", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_list_type_id, GEE_TYPE_LIST, &gee_list_info); + GeeReadOnlyList_private_offset = g_type_add_instance_private (gee_read_only_list_type_id, sizeof (GeeReadOnlyListPrivate)); + return gee_read_only_list_type_id; +} + + G_GNUC_INTERNAL GType gee_read_only_list_get_type (void) { static volatile gsize gee_read_only_list_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_list_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyList), 0, (GInstanceInitFunc) gee_read_only_list_instance_init, NULL }; - static const GInterfaceInfo gee_list_info = { (GInterfaceInitFunc) gee_read_only_list_gee_list_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_list_type_id; - gee_read_only_list_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_COLLECTION, "GeeReadOnlyList", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_list_type_id, GEE_TYPE_LIST, &gee_list_info); - GeeReadOnlyList_private_offset = g_type_add_instance_private (gee_read_only_list_type_id, sizeof (GeeReadOnlyListPrivate)); + gee_read_only_list_type_id = gee_read_only_list_get_type_once (); g_once_init_leave (&gee_read_only_list_type_id__volatile, gee_read_only_list_type_id); } return gee_read_only_list_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/readonlymap.c libgee-0.8-0.20.4/gee/readonlymap.c --- libgee-0.8-0.20.3/gee/readonlymap.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/readonlymap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* readonlymap.c generated by valac 0.46.6, the Vala compiler +/* readonlymap.c generated by valac 0.52.0, the Vala compiler * generated from readonlymap.vala, do not modify */ /* readonlymap.vala @@ -24,100 +24,9 @@ */ #include +#include "gee.h" #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - #define GEE_TYPE_READ_ONLY_MAP (gee_read_only_map_get_type ()) #define GEE_READ_ONLY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMap)) #define GEE_READ_ONLY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMapClass)) @@ -174,129 +83,6 @@ }; static GParamSpec* gee_read_only_map_map_iterator_properties[GEE_READ_ONLY_MAP_MAP_ITERATOR_NUM_PROPERTIES]; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - struct _GeeReadOnlyMap { GObject parent_instance; GeeReadOnlyMapPrivate * priv; @@ -345,40 +131,16 @@ static GeeIterableIface * gee_read_only_map_gee_iterable_parent_iface = NULL; static GeeMapIface * gee_read_only_map_gee_map_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMap, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_new (GType k_type, + G_GNUC_INTERNAL GType gee_read_only_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeMap* gee_read_only_map_get_read_only_view (GeeReadOnlyMap* self); + G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map); -G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -388,40 +150,32 @@ GeeMap* map); static gboolean gee_read_only_map_real_has_key (GeeMap* base, gconstpointer key); -gboolean gee_map_has_key (GeeMap* self, - gconstpointer key); -G_GNUC_INTERNAL gboolean gee_read_only_map_contains (GeeReadOnlyMap* self, + G_GNUC_INTERNAL gboolean gee_read_only_map_contains (GeeReadOnlyMap* self, gconstpointer key); static gboolean gee_read_only_map_real_has (GeeMap* base, gconstpointer key, gconstpointer value); -gboolean gee_map_has (GeeMap* self, - gconstpointer key, - gconstpointer value); static gpointer gee_read_only_map_real_get (GeeMap* base, gconstpointer key); -gpointer gee_map_get (GeeMap* self, - gconstpointer key); static void gee_read_only_map_real_set (GeeMap* base, gconstpointer key, gconstpointer value); static gboolean gee_read_only_map_real_unset (GeeMap* base, gconstpointer key, gpointer* value); -G_GNUC_INTERNAL gboolean gee_read_only_map_remove (GeeReadOnlyMap* self, + G_GNUC_INTERNAL gboolean gee_read_only_map_remove (GeeReadOnlyMap* self, gconstpointer key, gpointer* value); static void gee_read_only_map_real_clear (GeeMap* base); static GeeMapIterator* gee_read_only_map_real_map_iterator (GeeMap* base); -GeeMapIterator* gee_map_map_iterator (GeeMap* self); -G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_new (GType k_type, + G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* iterator); -G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -429,29 +183,21 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* iterator); -G_GNUC_INTERNAL GType gee_read_only_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMapMapIterator, g_object_unref) + G_GNUC_INTERNAL GType gee_read_only_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static void gee_read_only_map_real_set_all (GeeMap* base, GeeMap* map); static gboolean gee_read_only_map_real_unset_all (GeeMap* base, GeeMap* map); -G_GNUC_INTERNAL gboolean gee_read_only_map_remove_all (GeeReadOnlyMap* self, + G_GNUC_INTERNAL gboolean gee_read_only_map_remove_all (GeeReadOnlyMap* self, GeeMap* map); static gboolean gee_read_only_map_real_has_all (GeeMap* base, GeeMap* map); -gboolean gee_map_has_all (GeeMap* self, - GeeMap* map); -G_GNUC_INTERNAL gboolean gee_read_only_map_contains_all (GeeReadOnlyMap* self, + G_GNUC_INTERNAL gboolean gee_read_only_map_contains_all (GeeReadOnlyMap* self, GeeMap* map); static GeeIterator* gee_read_only_map_real_iterator (GeeIterable* base); -GeeSet* gee_map_get_entries (GeeMap* self); -GeeIterator* gee_iterable_iterator (GeeIterable* self); static gboolean gee_read_only_map_real_foreach (GeeTraversable* base, GeeForallFunc f, gpointer f_target); -gboolean gee_traversable_foreach (GeeTraversable* self, - GeeForallFunc f, - gpointer f_target); static GeeIterator* gee_read_only_map_real_stream (GeeTraversable* base, GType a_type, GBoxedCopyFunc a_dup_func, @@ -459,49 +205,24 @@ GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); -GeeIterator* gee_traversable_stream (GeeTraversable* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeStreamFunc f, - gpointer f_target, - GDestroyNotify f_target_destroy_notify); static GeeIterator* gee_read_only_map_real_filter (GeeTraversable* base, GeePredicate f, gpointer f_target, GDestroyNotify f_target_destroy_notify); -GeeIterator* gee_traversable_filter (GeeTraversable* self, - GeePredicate pred, - gpointer pred_target, - GDestroyNotify pred_target_destroy_notify); static GeeIterator* gee_read_only_map_real_chop (GeeTraversable* base, gint offset, gint length); -GeeIterator* gee_traversable_chop (GeeTraversable* self, - gint offset, - gint length); -gint gee_map_get_size (GeeMap* self); -gboolean gee_map_get_is_empty (GeeMap* self); -GeeSet* gee_map_get_keys (GeeMap* self); -GeeCollection* gee_map_get_values (GeeMap* self); -G_GNUC_INTERNAL GeeMap* gee_read_only_map_get_read_only_view (GeeReadOnlyMap* self); -G_GNUC_INTERNAL GType gee_read_only_map_get_key_type (GeeReadOnlyMap* self); -G_GNUC_INTERNAL GType gee_read_only_map_get_value_type (GeeReadOnlyMap* self); + G_GNUC_INTERNAL GType gee_read_only_map_get_key_type (GeeReadOnlyMap* self); + G_GNUC_INTERNAL GType gee_read_only_map_get_value_type (GeeReadOnlyMap* self); static gboolean gee_read_only_map_map_iterator_real_next (GeeMapIterator* base); -gboolean gee_map_iterator_next (GeeMapIterator* self); static gboolean gee_read_only_map_map_iterator_real_has_next (GeeMapIterator* base); -gboolean gee_map_iterator_has_next (GeeMapIterator* self); static gpointer gee_read_only_map_map_iterator_real_get_key (GeeMapIterator* base); -gpointer gee_map_iterator_get_key (GeeMapIterator* self); static gpointer gee_read_only_map_map_iterator_real_get_value (GeeMapIterator* base); -gpointer gee_map_iterator_get_value (GeeMapIterator* self); static void gee_read_only_map_map_iterator_real_set_value (GeeMapIterator* base, gconstpointer value); static void gee_read_only_map_map_iterator_real_unset (GeeMapIterator* base); -gboolean gee_map_iterator_get_valid (GeeMapIterator* self); static void gee_read_only_map_map_iterator_finalize (GObject * obj); -gboolean gee_map_iterator_get_read_only (GeeMapIterator* self); -gboolean gee_map_iterator_get_mutable (GeeMapIterator* self); +static GType gee_read_only_map_map_iterator_get_type_once (void); static void _vala_gee_read_only_map_map_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -511,7 +232,7 @@ const GValue * value, GParamSpec * pspec); static void gee_read_only_map_finalize (GObject * obj); -gboolean gee_map_get_read_only (GeeMap* self); +static GType gee_read_only_map_get_type_once (void); static void _vala_gee_read_only_map_get_property (GObject * object, guint property_id, GValue * value, @@ -538,7 +259,7 @@ return self ? g_object_ref (self) : NULL; } -G_GNUC_INTERNAL GeeReadOnlyMap* + G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, @@ -564,7 +285,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlyMap* + G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -595,7 +316,7 @@ /** * {@inheritDoc} */ -G_GNUC_INTERNAL gboolean + G_GNUC_INTERNAL gboolean gee_read_only_map_contains (GeeReadOnlyMap* self, gconstpointer key) { @@ -667,17 +388,12 @@ gpointer _vala_value = NULL; self = (GeeReadOnlyMap*) base; g_assert_not_reached (); - if (value) { - *value = _vala_value; - } else { - ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL)); - } } /** * Unimplemented method (read only map). */ -G_GNUC_INTERNAL gboolean + G_GNUC_INTERNAL gboolean gee_read_only_map_remove (GeeReadOnlyMap* self, gconstpointer key, gpointer* value) @@ -685,11 +401,6 @@ gpointer _vala_value = NULL; g_return_val_if_fail (self != NULL, FALSE); g_assert_not_reached (); - if (value) { - *value = _vala_value; - } else { - ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL)); - } } /** @@ -756,7 +467,7 @@ /** * Unimplemented method (read only map). */ -G_GNUC_INTERNAL gboolean + G_GNUC_INTERNAL gboolean gee_read_only_map_remove_all (GeeReadOnlyMap* self, GeeMap* map) { @@ -785,7 +496,7 @@ /** * {@inheritDoc} */ -G_GNUC_INTERNAL gboolean + G_GNUC_INTERNAL gboolean gee_read_only_map_contains_all (GeeReadOnlyMap* self, GeeMap* map) { @@ -1011,11 +722,16 @@ return result; } -G_GNUC_INTERNAL GeeMap* + G_GNUC_INTERNAL GeeMap* gee_read_only_map_get_read_only_view (GeeReadOnlyMap* self) { + GeeReadOnlyMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_READ_ONLY_MAP_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_READ_ONLY_MAP_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static GeeMap* @@ -1030,7 +746,7 @@ return result; } -G_GNUC_INTERNAL GType + G_GNUC_INTERNAL GType gee_read_only_map_get_key_type (GeeReadOnlyMap* self) { GType result; @@ -1039,7 +755,7 @@ return result; } -G_GNUC_INTERNAL GType + G_GNUC_INTERNAL GType gee_read_only_map_get_value_type (GeeReadOnlyMap* self) { GType result; @@ -1064,7 +780,7 @@ return G_STRUCT_MEMBER_P (self, GeeReadOnlyMapMapIterator_private_offset); } -G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* + G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, @@ -1090,7 +806,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* + G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -1301,17 +1017,25 @@ G_OBJECT_CLASS (gee_read_only_map_map_iterator_parent_class)->finalize (obj); } -G_GNUC_INTERNAL GType +static GType +gee_read_only_map_map_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyMapMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_map_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyMapMapIterator), 0, (GInstanceInitFunc) gee_read_only_map_map_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_read_only_map_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_map_map_iterator_type_id; + gee_read_only_map_map_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeReadOnlyMapMapIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_map_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info); + GeeReadOnlyMapMapIterator_private_offset = g_type_add_instance_private (gee_read_only_map_map_iterator_type_id, sizeof (GeeReadOnlyMapMapIteratorPrivate)); + return gee_read_only_map_map_iterator_type_id; +} + + G_GNUC_INTERNAL GType gee_read_only_map_map_iterator_get_type (void) { static volatile gsize gee_read_only_map_map_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_map_map_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyMapMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_map_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyMapMapIterator), 0, (GInstanceInitFunc) gee_read_only_map_map_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_read_only_map_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_map_map_iterator_type_id; - gee_read_only_map_map_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeReadOnlyMapMapIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_map_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info); - GeeReadOnlyMapMapIterator_private_offset = g_type_add_instance_private (gee_read_only_map_map_iterator_type_id, sizeof (GeeReadOnlyMapMapIteratorPrivate)); + gee_read_only_map_map_iterator_type_id = gee_read_only_map_map_iterator_get_type_once (); g_once_init_leave (&gee_read_only_map_map_iterator_type_id__volatile, gee_read_only_map_map_iterator_type_id); } return gee_read_only_map_map_iterator_type_id__volatile; @@ -1592,21 +1316,29 @@ * * @see Map */ -G_GNUC_INTERNAL GType +static GType +gee_read_only_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyMap), 0, (GInstanceInitFunc) gee_read_only_map_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_read_only_map_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterable_info = { (GInterfaceInitFunc) gee_read_only_map_gee_iterable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_map_info = { (GInterfaceInitFunc) gee_read_only_map_gee_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_map_type_id; + gee_read_only_map_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeReadOnlyMap", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_map_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_read_only_map_type_id, GEE_TYPE_ITERABLE, &gee_iterable_info); + g_type_add_interface_static (gee_read_only_map_type_id, GEE_TYPE_MAP, &gee_map_info); + GeeReadOnlyMap_private_offset = g_type_add_instance_private (gee_read_only_map_type_id, sizeof (GeeReadOnlyMapPrivate)); + return gee_read_only_map_type_id; +} + + G_GNUC_INTERNAL GType gee_read_only_map_get_type (void) { static volatile gsize gee_read_only_map_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyMap), 0, (GInstanceInitFunc) gee_read_only_map_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_read_only_map_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterable_info = { (GInterfaceInitFunc) gee_read_only_map_gee_iterable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_map_info = { (GInterfaceInitFunc) gee_read_only_map_gee_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_map_type_id; - gee_read_only_map_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeReadOnlyMap", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_map_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_read_only_map_type_id, GEE_TYPE_ITERABLE, &gee_iterable_info); - g_type_add_interface_static (gee_read_only_map_type_id, GEE_TYPE_MAP, &gee_map_info); - GeeReadOnlyMap_private_offset = g_type_add_instance_private (gee_read_only_map_type_id, sizeof (GeeReadOnlyMapPrivate)); + gee_read_only_map_type_id = gee_read_only_map_get_type_once (); g_once_init_leave (&gee_read_only_map_type_id__volatile, gee_read_only_map_type_id); } return gee_read_only_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/readonlymultimap.c libgee-0.8-0.20.4/gee/readonlymultimap.c --- libgee-0.8-0.20.3/gee/readonlymultimap.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/readonlymultimap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* readonlymultimap.c generated by valac 0.46.6, the Vala compiler +/* readonlymultimap.c generated by valac 0.52.0, the Vala compiler * generated from readonlymultimap.vala, do not modify */ /* readonlymultimap.vala @@ -24,98 +24,9 @@ */ #include +#include "gee.h" #include -#define GEE_TYPE_MULTI_MAP (gee_multi_map_get_type ()) -#define GEE_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMap)) -#define GEE_IS_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_MAP)) -#define GEE_MULTI_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMapIface)) - -typedef struct _GeeMultiMap GeeMultiMap; -typedef struct _GeeMultiMapIface GeeMultiMapIface; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_MULTI_SET (gee_multi_set_get_type ()) -#define GEE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_SET, GeeMultiSet)) -#define GEE_IS_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_SET)) -#define GEE_MULTI_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface)) - -typedef struct _GeeMultiSet GeeMultiSet; -typedef struct _GeeMultiSetIface GeeMultiSetIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - #define GEE_TYPE_READ_ONLY_MULTI_MAP (gee_read_only_multi_map_get_type ()) #define GEE_READ_ONLY_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_MULTI_MAP, GeeReadOnlyMultiMap)) #define GEE_READ_ONLY_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_MULTI_MAP, GeeReadOnlyMultiMapClass)) @@ -151,134 +62,6 @@ typedef struct _GeeReadOnlyMapMapIterator GeeReadOnlyMapMapIterator; typedef struct _GeeReadOnlyMapMapIteratorClass GeeReadOnlyMapMapIteratorClass; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMultiSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeMultiSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeMultiSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeMultiSet* self); - gint (*count) (GeeMultiSet* self, gconstpointer item); - GeeMultiSet* (*get_read_only_view) (GeeMultiSet* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeMultiMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMultiMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMultiMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMultiMap* self); - GType (*get_v_type) (GeeMultiMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMultiMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMultiMap* self); - GeeSet* (*get_keys) (GeeMultiMap* self); - GeeMultiSet* (*get_all_keys) (GeeMultiMap* self); - GeeCollection* (*get_values) (GeeMultiMap* self); - gboolean (*contains) (GeeMultiMap* self, gconstpointer key); - GeeCollection* (*get) (GeeMultiMap* self, gconstpointer key); - void (*set) (GeeMultiMap* self, gconstpointer key, gconstpointer value); - gboolean (*remove) (GeeMultiMap* self, gconstpointer key, gconstpointer value); - gboolean (*remove_all) (GeeMultiMap* self, gconstpointer key); - void (*clear) (GeeMultiMap* self); - GeeMapIterator* (*map_iterator) (GeeMultiMap* self); - gint (*get_size) (GeeMultiMap* self); - gboolean (*get_read_only) (GeeMultiMap* self); - GeeMultiMap* (*get_read_only_view) (GeeMultiMap* self); -}; - struct _GeeReadOnlyMultiMap { GObject parent_instance; GeeReadOnlyMultiMapPrivate * priv; @@ -303,39 +86,16 @@ static gpointer gee_read_only_multi_map_parent_class = NULL; static GeeMultiMapIface * gee_read_only_multi_map_gee_multi_map_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_multi_set_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_multi_map_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_multi_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMultiMap, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_new (GType k_type, + G_GNUC_INTERNAL GType gee_read_only_multi_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeMultiMap* gee_read_only_multi_map_get_read_only_view (GeeReadOnlyMultiMap* self); + G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMultiMap* multimap); -G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -344,19 +104,12 @@ GDestroyNotify v_destroy_func, GeeMultiMap* multimap); static GeeSet* gee_read_only_multi_map_real_get_keys (GeeMultiMap* base); -GeeSet* gee_multi_map_get_keys (GeeMultiMap* self); static GeeMultiSet* gee_read_only_multi_map_real_get_all_keys (GeeMultiMap* base); -GeeMultiSet* gee_multi_map_get_all_keys (GeeMultiMap* self); static GeeCollection* gee_read_only_multi_map_real_get_values (GeeMultiMap* base); -GeeCollection* gee_multi_map_get_values (GeeMultiMap* self); static gboolean gee_read_only_multi_map_real_contains (GeeMultiMap* base, gconstpointer key); -gboolean gee_multi_map_contains (GeeMultiMap* self, - gconstpointer key); static GeeCollection* gee_read_only_multi_map_real_get (GeeMultiMap* base, gconstpointer key); -GeeCollection* gee_multi_map_get (GeeMultiMap* self, - gconstpointer key); static void gee_read_only_multi_map_real_set (GeeMultiMap* base, gconstpointer key, gconstpointer value); @@ -367,15 +120,14 @@ gconstpointer key); static void gee_read_only_multi_map_real_clear (GeeMultiMap* base); static GeeMapIterator* gee_read_only_multi_map_real_map_iterator (GeeMultiMap* base); -GeeMapIterator* gee_multi_map_map_iterator (GeeMultiMap* self); -G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_new (GType k_type, + G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* iterator); -G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyMapMapIterator* gee_read_only_map_map_iterator_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -383,12 +135,9 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMapIterator* iterator); -G_GNUC_INTERNAL GType gee_read_only_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMapMapIterator, g_object_unref) -gint gee_multi_map_get_size (GeeMultiMap* self); -G_GNUC_INTERNAL GeeMultiMap* gee_read_only_multi_map_get_read_only_view (GeeReadOnlyMultiMap* self); + G_GNUC_INTERNAL GType gee_read_only_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static void gee_read_only_multi_map_finalize (GObject * obj); -gboolean gee_multi_map_get_read_only (GeeMultiMap* self); +static GType gee_read_only_multi_map_get_type_once (void); static void _vala_gee_read_only_multi_map_get_property (GObject * object, guint property_id, GValue * value, @@ -416,7 +165,7 @@ return self ? g_object_ref (self) : NULL; } -G_GNUC_INTERNAL GeeReadOnlyMultiMap* + G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, @@ -442,7 +191,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlyMultiMap* + G_GNUC_INTERNAL GeeReadOnlyMultiMap* gee_read_only_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -638,11 +387,16 @@ return result; } -G_GNUC_INTERNAL GeeMultiMap* + G_GNUC_INTERNAL GeeMultiMap* gee_read_only_multi_map_get_read_only_view (GeeReadOnlyMultiMap* self) { + GeeReadOnlyMultiMapClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_READ_ONLY_MULTI_MAP_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_READ_ONLY_MULTI_MAP_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static GeeMultiMap* @@ -770,17 +524,25 @@ * * @see MultiMap */ -G_GNUC_INTERNAL GType +static GType +gee_read_only_multi_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyMultiMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_multi_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyMultiMap), 0, (GInstanceInitFunc) gee_read_only_multi_map_instance_init, NULL }; + static const GInterfaceInfo gee_multi_map_info = { (GInterfaceInitFunc) gee_read_only_multi_map_gee_multi_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_multi_map_type_id; + gee_read_only_multi_map_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeReadOnlyMultiMap", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_multi_map_type_id, GEE_TYPE_MULTI_MAP, &gee_multi_map_info); + GeeReadOnlyMultiMap_private_offset = g_type_add_instance_private (gee_read_only_multi_map_type_id, sizeof (GeeReadOnlyMultiMapPrivate)); + return gee_read_only_multi_map_type_id; +} + + G_GNUC_INTERNAL GType gee_read_only_multi_map_get_type (void) { static volatile gsize gee_read_only_multi_map_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_multi_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyMultiMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_multi_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyMultiMap), 0, (GInstanceInitFunc) gee_read_only_multi_map_instance_init, NULL }; - static const GInterfaceInfo gee_multi_map_info = { (GInterfaceInitFunc) gee_read_only_multi_map_gee_multi_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_multi_map_type_id; - gee_read_only_multi_map_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeReadOnlyMultiMap", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_multi_map_type_id, GEE_TYPE_MULTI_MAP, &gee_multi_map_info); - GeeReadOnlyMultiMap_private_offset = g_type_add_instance_private (gee_read_only_multi_map_type_id, sizeof (GeeReadOnlyMultiMapPrivate)); + gee_read_only_multi_map_type_id = gee_read_only_multi_map_get_type_once (); g_once_init_leave (&gee_read_only_multi_map_type_id__volatile, gee_read_only_multi_map_type_id); } return gee_read_only_multi_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/readonlymultiset.c libgee-0.8-0.20.4/gee/readonlymultiset.c --- libgee-0.8-0.20.3/gee/readonlymultiset.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/readonlymultiset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* readonlymultiset.c generated by valac 0.46.6, the Vala compiler +/* readonlymultiset.c generated by valac 0.52.0, the Vala compiler * generated from readonlymultiset.vala, do not modify */ /* readonlymultiset.vala @@ -24,64 +24,9 @@ */ #include +#include "gee.h" #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - #define GEE_TYPE_READ_ONLY_COLLECTION (gee_read_only_collection_get_type ()) #define GEE_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollection)) #define GEE_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass)) @@ -93,14 +38,6 @@ typedef struct _GeeReadOnlyCollectionClass GeeReadOnlyCollectionClass; typedef struct _GeeReadOnlyCollectionPrivate GeeReadOnlyCollectionPrivate; -#define GEE_TYPE_MULTI_SET (gee_multi_set_get_type ()) -#define GEE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_SET, GeeMultiSet)) -#define GEE_IS_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_SET)) -#define GEE_MULTI_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface)) - -typedef struct _GeeMultiSet GeeMultiSet; -typedef struct _GeeMultiSetIface GeeMultiSetIface; - #define GEE_TYPE_READ_ONLY_MULTI_SET (gee_read_only_multi_set_get_type ()) #define GEE_READ_ONLY_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_MULTI_SET, GeeReadOnlyMultiSet)) #define GEE_READ_ONLY_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_MULTI_SET, GeeReadOnlyMultiSetClass)) @@ -120,73 +57,6 @@ }; static GParamSpec* gee_read_only_multi_set_properties[GEE_READ_ONLY_MULTI_SET_NUM_PROPERTIES]; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - struct _GeeReadOnlyCollection { GObject parent_instance; GeeReadOnlyCollectionPrivate * priv; @@ -198,15 +68,6 @@ GeeCollection* (*get_read_only_view) (GeeReadOnlyCollection* self); }; -struct _GeeMultiSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeMultiSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeMultiSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeMultiSet* self); - gint (*count) (GeeMultiSet* self, gconstpointer item); - GeeMultiSet* (*get_read_only_view) (GeeMultiSet* self); -}; - struct _GeeReadOnlyMultiSet { GeeReadOnlyCollection parent_instance; GeeReadOnlyMultiSetPrivate * priv; @@ -227,53 +88,30 @@ static gpointer gee_read_only_multi_set_parent_class = NULL; static GeeMultiSetIface * gee_read_only_multi_set_gee_multi_set_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -GType gee_multi_set_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_multi_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMultiSet, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_new (GType g_type, + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_multi_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeMultiSet* gee_read_only_multi_set_get_read_only_view (GeeReadOnlyMultiSet* self); + G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeMultiSet* multiset); -G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeMultiSet* multiset); -G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeCollection* collection); -G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeCollection* collection); static gint gee_read_only_multi_set_real_count (GeeMultiSet* base, gconstpointer item); -gint gee_multi_set_count (GeeMultiSet* self, - gconstpointer item); -G_GNUC_INTERNAL GeeMultiSet* gee_read_only_multi_set_get_read_only_view (GeeReadOnlyMultiSet* self); +static GType gee_read_only_multi_set_get_type_once (void); static void _vala_gee_read_only_multi_set_get_property (GObject * object, guint property_id, GValue * value, @@ -295,7 +133,7 @@ * * @param multiset the multi-set to decorate. */ -G_GNUC_INTERNAL GeeReadOnlyMultiSet* + G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -311,7 +149,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlyMultiSet* + G_GNUC_INTERNAL GeeReadOnlyMultiSet* gee_read_only_multi_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -336,11 +174,16 @@ return result; } -G_GNUC_INTERNAL GeeMultiSet* + G_GNUC_INTERNAL GeeMultiSet* gee_read_only_multi_set_get_read_only_view (GeeReadOnlyMultiSet* self) { + GeeReadOnlyMultiSetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_READ_ONLY_MULTI_SET_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_READ_ONLY_MULTI_SET_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static gpointer @@ -421,17 +264,25 @@ * * @see MultiSet */ -G_GNUC_INTERNAL GType +static GType +gee_read_only_multi_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyMultiSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_multi_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyMultiSet), 0, (GInstanceInitFunc) gee_read_only_multi_set_instance_init, NULL }; + static const GInterfaceInfo gee_multi_set_info = { (GInterfaceInitFunc) gee_read_only_multi_set_gee_multi_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_multi_set_type_id; + gee_read_only_multi_set_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_COLLECTION, "GeeReadOnlyMultiSet", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_multi_set_type_id, GEE_TYPE_MULTI_SET, &gee_multi_set_info); + GeeReadOnlyMultiSet_private_offset = g_type_add_instance_private (gee_read_only_multi_set_type_id, sizeof (GeeReadOnlyMultiSetPrivate)); + return gee_read_only_multi_set_type_id; +} + + G_GNUC_INTERNAL GType gee_read_only_multi_set_get_type (void) { static volatile gsize gee_read_only_multi_set_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_multi_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlyMultiSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_multi_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlyMultiSet), 0, (GInstanceInitFunc) gee_read_only_multi_set_instance_init, NULL }; - static const GInterfaceInfo gee_multi_set_info = { (GInterfaceInitFunc) gee_read_only_multi_set_gee_multi_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_multi_set_type_id; - gee_read_only_multi_set_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_COLLECTION, "GeeReadOnlyMultiSet", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_multi_set_type_id, GEE_TYPE_MULTI_SET, &gee_multi_set_info); - GeeReadOnlyMultiSet_private_offset = g_type_add_instance_private (gee_read_only_multi_set_type_id, sizeof (GeeReadOnlyMultiSetPrivate)); + gee_read_only_multi_set_type_id = gee_read_only_multi_set_get_type_once (); g_once_init_leave (&gee_read_only_multi_set_type_id__volatile, gee_read_only_multi_set_type_id); } return gee_read_only_multi_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/readonlyset.c libgee-0.8-0.20.4/gee/readonlyset.c --- libgee-0.8-0.20.3/gee/readonlyset.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/readonlyset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* readonlyset.c generated by valac 0.46.6, the Vala compiler +/* readonlyset.c generated by valac 0.52.0, the Vala compiler * generated from readonlyset.vala, do not modify */ /* readonlyset.vala @@ -24,64 +24,9 @@ */ #include +#include "gee.h" #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - #define GEE_TYPE_READ_ONLY_COLLECTION (gee_read_only_collection_get_type ()) #define GEE_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollection)) #define GEE_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass)) @@ -93,14 +38,6 @@ typedef struct _GeeReadOnlyCollectionClass GeeReadOnlyCollectionClass; typedef struct _GeeReadOnlyCollectionPrivate GeeReadOnlyCollectionPrivate; -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - #define GEE_TYPE_READ_ONLY_SET (gee_read_only_set_get_type ()) #define GEE_READ_ONLY_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySet)) #define GEE_READ_ONLY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySetClass)) @@ -121,73 +58,6 @@ }; static GParamSpec* gee_read_only_set_properties[GEE_READ_ONLY_SET_NUM_PROPERTIES]; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - struct _GeeReadOnlyCollection { GObject parent_instance; GeeReadOnlyCollectionPrivate * priv; @@ -199,14 +69,6 @@ GeeCollection* (*get_read_only_view) (GeeReadOnlyCollection* self); }; -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - struct _GeeReadOnlySet { GeeReadOnlyCollection parent_instance; GeeReadOnlySetPrivate * priv; @@ -227,49 +89,28 @@ static gpointer gee_read_only_set_parent_class = NULL; static GeeSetIface * gee_read_only_set_gee_set_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -GType gee_set_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySet, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_new (GType g_type, + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeSet* gee_read_only_set_get_read_only_view (GeeReadOnlySet* self); + G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSet* set); -G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSet* set); -G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeCollection* collection); -G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyCollection* gee_read_only_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeCollection* collection); -G_GNUC_INTERNAL GeeSet* gee_read_only_set_get_read_only_view (GeeReadOnlySet* self); +static GType gee_read_only_set_get_type_once (void); static void _vala_gee_read_only_set_get_property (GObject * object, guint property_id, GValue * value, @@ -290,7 +131,7 @@ * * @param set the set to decorate. */ -G_GNUC_INTERNAL GeeReadOnlySet* + G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -306,7 +147,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlySet* + G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -315,11 +156,16 @@ return gee_read_only_set_construct (GEE_TYPE_READ_ONLY_SET, g_type, g_dup_func, g_destroy_func, set); } -G_GNUC_INTERNAL GeeSet* + G_GNUC_INTERNAL GeeSet* gee_read_only_set_get_read_only_view (GeeReadOnlySet* self) { + GeeReadOnlySetClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_READ_ONLY_SET_GET_CLASS (self)->get_read_only_view (self); + _klass_ = GEE_READ_ONLY_SET_GET_CLASS (self); + if (_klass_->get_read_only_view) { + return _klass_->get_read_only_view (self); + } + return NULL; } static gpointer @@ -400,17 +246,25 @@ * * @see Set */ -G_GNUC_INTERNAL GType +static GType +gee_read_only_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlySet), 0, (GInstanceInitFunc) gee_read_only_set_instance_init, NULL }; + static const GInterfaceInfo gee_set_info = { (GInterfaceInitFunc) gee_read_only_set_gee_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_set_type_id; + gee_read_only_set_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_COLLECTION, "GeeReadOnlySet", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_set_type_id, GEE_TYPE_SET, &gee_set_info); + GeeReadOnlySet_private_offset = g_type_add_instance_private (gee_read_only_set_type_id, sizeof (GeeReadOnlySetPrivate)); + return gee_read_only_set_type_id; +} + + G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) { static volatile gsize gee_read_only_set_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlySet), 0, (GInstanceInitFunc) gee_read_only_set_instance_init, NULL }; - static const GInterfaceInfo gee_set_info = { (GInterfaceInitFunc) gee_read_only_set_gee_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_set_type_id; - gee_read_only_set_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_COLLECTION, "GeeReadOnlySet", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_set_type_id, GEE_TYPE_SET, &gee_set_info); - GeeReadOnlySet_private_offset = g_type_add_instance_private (gee_read_only_set_type_id, sizeof (GeeReadOnlySetPrivate)); + gee_read_only_set_type_id = gee_read_only_set_get_type_once (); g_once_init_leave (&gee_read_only_set_type_id__volatile, gee_read_only_set_type_id); } return gee_read_only_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/readonlysortedmap.c libgee-0.8-0.20.4/gee/readonlysortedmap.c --- libgee-0.8-0.20.3/gee/readonlysortedmap.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/readonlysortedmap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* readonlysortedmap.c generated by valac 0.46.6, the Vala compiler +/* readonlysortedmap.c generated by valac 0.52.0, the Vala compiler * generated from readonlysortedmap.vala, do not modify */ /* readonlysortedmap.vala @@ -24,100 +24,9 @@ */ #include +#include "gee.h" #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - #define GEE_TYPE_READ_ONLY_MAP (gee_read_only_map_get_type ()) #define GEE_READ_ONLY_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMap)) #define GEE_READ_ONLY_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_MAP, GeeReadOnlyMapClass)) @@ -129,22 +38,6 @@ typedef struct _GeeReadOnlyMapClass GeeReadOnlyMapClass; typedef struct _GeeReadOnlyMapPrivate GeeReadOnlyMapPrivate; -#define GEE_TYPE_SORTED_MAP (gee_sorted_map_get_type ()) -#define GEE_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMap)) -#define GEE_IS_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_MAP)) -#define GEE_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMapIface)) - -typedef struct _GeeSortedMap GeeSortedMap; -typedef struct _GeeSortedMapIface GeeSortedMapIface; - -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - #define GEE_TYPE_READ_ONLY_SORTED_MAP (gee_read_only_sorted_map_get_type ()) #define GEE_READ_ONLY_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SORTED_MAP, GeeReadOnlySortedMap)) #define GEE_READ_ONLY_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SORTED_MAP, GeeReadOnlySortedMapClass)) @@ -171,129 +64,6 @@ static GParamSpec* gee_read_only_sorted_map_properties[GEE_READ_ONLY_SORTED_MAP_NUM_PROPERTIES]; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - struct _GeeReadOnlyMap { GObject parent_instance; GeeReadOnlyMapPrivate * priv; @@ -305,34 +75,6 @@ GeeMap* (*get_read_only_view) (GeeReadOnlyMap* self); }; -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - -struct _GeeSortedMapIface { - GTypeInterface parent_iface; - GeeSortedMap* (*head_map) (GeeSortedMap* self, gconstpointer before); - GeeSortedMap* (*tail_map) (GeeSortedMap* self, gconstpointer after); - GeeSortedMap* (*sub_map) (GeeSortedMap* self, gconstpointer before, gconstpointer after); - GeeSortedSet* (*get_ascending_keys) (GeeSortedMap* self); - GeeSortedSet* (*get_ascending_entries) (GeeSortedMap* self); - GeeSortedMap* (*get_read_only_view) (GeeSortedMap* self); -}; - struct _GeeReadOnlySortedMap { GeeReadOnlyMap parent_instance; GeeReadOnlySortedMapPrivate * priv; @@ -355,44 +97,16 @@ static gpointer gee_read_only_sorted_map_parent_class = NULL; static GeeSortedMapIface * gee_read_only_sorted_map_gee_sorted_map_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyMap, g_object_unref) -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_sorted_map_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_sorted_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySortedMap, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_new (GType k_type, + G_GNUC_INTERNAL GType gee_read_only_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_sorted_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map); -G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -400,14 +114,14 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map); -G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_new (GType k_type, + G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* map); -G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyMap* gee_read_only_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -417,22 +131,12 @@ GeeMap* map); static GeeSortedMap* gee_read_only_sorted_map_real_head_map (GeeSortedMap* base, gconstpointer before); -GeeSortedMap* gee_sorted_map_head_map (GeeSortedMap* self, - gconstpointer before); -GeeSortedMap* gee_sorted_map_get_read_only_view (GeeSortedMap* self); static GeeSortedMap* gee_read_only_sorted_map_real_tail_map (GeeSortedMap* base, gconstpointer after); -GeeSortedMap* gee_sorted_map_tail_map (GeeSortedMap* self, - gconstpointer after); static GeeSortedMap* gee_read_only_sorted_map_real_sub_map (GeeSortedMap* base, gconstpointer from, gconstpointer to); -GeeSortedMap* gee_sorted_map_sub_map (GeeSortedMap* self, - gconstpointer before, - gconstpointer after); -GeeSortedSet* gee_sorted_map_get_ascending_keys (GeeSortedMap* self); -GeeSortedSet* gee_sorted_set_get_read_only_view (GeeSortedSet* self); -GeeSortedSet* gee_sorted_map_get_ascending_entries (GeeSortedMap* self); +static GType gee_read_only_sorted_map_get_type_once (void); static void _vala_gee_read_only_sorted_map_get_property (GObject * object, guint property_id, GValue * value, @@ -453,7 +157,7 @@ * * @param map the map to decorate. */ -G_GNUC_INTERNAL GeeReadOnlySortedMap* + G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, @@ -475,7 +179,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlySortedMap* + G_GNUC_INTERNAL GeeReadOnlySortedMap* gee_read_only_sorted_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -694,17 +398,25 @@ * * @see SortedMap */ -G_GNUC_INTERNAL GType +static GType +gee_read_only_sorted_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlySortedMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_sorted_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlySortedMap), 0, (GInstanceInitFunc) gee_read_only_sorted_map_instance_init, NULL }; + static const GInterfaceInfo gee_sorted_map_info = { (GInterfaceInitFunc) gee_read_only_sorted_map_gee_sorted_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_sorted_map_type_id; + gee_read_only_sorted_map_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_MAP, "GeeReadOnlySortedMap", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_sorted_map_type_id, GEE_TYPE_SORTED_MAP, &gee_sorted_map_info); + GeeReadOnlySortedMap_private_offset = g_type_add_instance_private (gee_read_only_sorted_map_type_id, sizeof (GeeReadOnlySortedMapPrivate)); + return gee_read_only_sorted_map_type_id; +} + + G_GNUC_INTERNAL GType gee_read_only_sorted_map_get_type (void) { static volatile gsize gee_read_only_sorted_map_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_sorted_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlySortedMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_sorted_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlySortedMap), 0, (GInstanceInitFunc) gee_read_only_sorted_map_instance_init, NULL }; - static const GInterfaceInfo gee_sorted_map_info = { (GInterfaceInitFunc) gee_read_only_sorted_map_gee_sorted_map_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_sorted_map_type_id; - gee_read_only_sorted_map_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_MAP, "GeeReadOnlySortedMap", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_sorted_map_type_id, GEE_TYPE_SORTED_MAP, &gee_sorted_map_info); - GeeReadOnlySortedMap_private_offset = g_type_add_instance_private (gee_read_only_sorted_map_type_id, sizeof (GeeReadOnlySortedMapPrivate)); + gee_read_only_sorted_map_type_id = gee_read_only_sorted_map_get_type_once (); g_once_init_leave (&gee_read_only_sorted_map_type_id__volatile, gee_read_only_sorted_map_type_id); } return gee_read_only_sorted_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/readonlysortedset.c libgee-0.8-0.20.4/gee/readonlysortedset.c --- libgee-0.8-0.20.3/gee/readonlysortedset.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/readonlysortedset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* readonlysortedset.c generated by valac 0.46.6, the Vala compiler +/* readonlysortedset.c generated by valac 0.52.0, the Vala compiler * generated from readonlysortedset.vala, do not modify */ /* readonlysortedset.vala @@ -25,64 +25,9 @@ */ #include +#include "gee.h" #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - #define GEE_TYPE_READ_ONLY_COLLECTION (gee_read_only_collection_get_type ()) #define GEE_READ_ONLY_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollection)) #define GEE_READ_ONLY_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_COLLECTION, GeeReadOnlyCollectionClass)) @@ -94,14 +39,6 @@ typedef struct _GeeReadOnlyCollectionClass GeeReadOnlyCollectionClass; typedef struct _GeeReadOnlyCollectionPrivate GeeReadOnlyCollectionPrivate; -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - #define GEE_TYPE_READ_ONLY_SET (gee_read_only_set_get_type ()) #define GEE_READ_ONLY_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySet)) #define GEE_READ_ONLY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SET, GeeReadOnlySetClass)) @@ -113,14 +50,6 @@ typedef struct _GeeReadOnlySetClass GeeReadOnlySetClass; typedef struct _GeeReadOnlySetPrivate GeeReadOnlySetPrivate; -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - #define GEE_TYPE_READ_ONLY_SORTED_SET (gee_read_only_sorted_set_get_type ()) #define GEE_READ_ONLY_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSet)) #define GEE_READ_ONLY_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_READ_ONLY_SORTED_SET, GeeReadOnlySortedSetClass)) @@ -152,73 +81,6 @@ typedef struct _GeeReadOnlyCollectionIteratorClass GeeReadOnlyCollectionIteratorClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - struct _GeeReadOnlyCollection { GObject parent_instance; GeeReadOnlyCollectionPrivate * priv; @@ -230,14 +92,6 @@ GeeCollection* (*get_read_only_view) (GeeReadOnlyCollection* self); }; -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - struct _GeeReadOnlySet { GeeReadOnlyCollection parent_instance; GeeReadOnlySetPrivate * priv; @@ -248,24 +102,6 @@ GeeSet* (*get_read_only_view) (GeeReadOnlySet* self); }; -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - struct _GeeReadOnlySortedSet { GeeReadOnlySet parent_instance; GeeReadOnlySortedSetPrivate * priv; @@ -285,101 +121,57 @@ static gpointer gee_read_only_sorted_set_parent_class = NULL; static GeeSortedSetIface * gee_read_only_sorted_set_gee_sorted_set_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollection, g_object_unref) -GType gee_set_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySet, g_object_unref) -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_read_only_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlySortedSet, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_new (GType g_type, + G_GNUC_INTERNAL GType gee_read_only_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_read_only_sorted_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSortedSet* set); -G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSortedSet* set); -G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_new (GType g_type, + G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSet* set); -G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlySet* gee_read_only_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeSet* set); static gpointer gee_read_only_sorted_set_real_first (GeeSortedSet* base); -gpointer gee_sorted_set_first (GeeSortedSet* self); static gpointer gee_read_only_sorted_set_real_last (GeeSortedSet* base); -gpointer gee_sorted_set_last (GeeSortedSet* self); static GeeIterator* gee_read_only_sorted_set_real_iterator_at (GeeSortedSet* base, gconstpointer element); -GeeIterator* gee_sorted_set_iterator_at (GeeSortedSet* self, - gconstpointer element); -GType gee_read_only_collection_iterator_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeReadOnlyCollectionIterator, g_object_unref) -G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_new (GType g_type, +GType gee_read_only_collection_iterator_get_type (void) G_GNUC_CONST ; + G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iterator); -G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeReadOnlyCollectionIterator* gee_read_only_collection_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iterator); static gpointer gee_read_only_sorted_set_real_lower (GeeSortedSet* base, gconstpointer element); -gpointer gee_sorted_set_lower (GeeSortedSet* self, - gconstpointer element); static gpointer gee_read_only_sorted_set_real_higher (GeeSortedSet* base, gconstpointer element); -gpointer gee_sorted_set_higher (GeeSortedSet* self, - gconstpointer element); static gpointer gee_read_only_sorted_set_real_floor (GeeSortedSet* base, gconstpointer element); -gpointer gee_sorted_set_floor (GeeSortedSet* self, - gconstpointer element); static gpointer gee_read_only_sorted_set_real_ceil (GeeSortedSet* base, gconstpointer element); -gpointer gee_sorted_set_ceil (GeeSortedSet* self, - gconstpointer element); static GeeSortedSet* gee_read_only_sorted_set_real_head_set (GeeSortedSet* base, gconstpointer before); -GeeSortedSet* gee_sorted_set_head_set (GeeSortedSet* self, - gconstpointer before); -GeeSortedSet* gee_sorted_set_get_read_only_view (GeeSortedSet* self); static GeeSortedSet* gee_read_only_sorted_set_real_tail_set (GeeSortedSet* base, gconstpointer after); -GeeSortedSet* gee_sorted_set_tail_set (GeeSortedSet* self, - gconstpointer after); static GeeSortedSet* gee_read_only_sorted_set_real_sub_set (GeeSortedSet* base, gconstpointer from, gconstpointer to); -GeeSortedSet* gee_sorted_set_sub_set (GeeSortedSet* self, - gconstpointer from, - gconstpointer to); +static GType gee_read_only_sorted_set_get_type_once (void); static void _vala_gee_read_only_sorted_set_get_property (GObject * object, guint property_id, GValue * value, @@ -400,7 +192,7 @@ * * @param set the set to decorate. */ -G_GNUC_INTERNAL GeeReadOnlySortedSet* + G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -416,7 +208,7 @@ return self; } -G_GNUC_INTERNAL GeeReadOnlySortedSet* + G_GNUC_INTERNAL GeeReadOnlySortedSet* gee_read_only_sorted_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -738,17 +530,25 @@ * * @see SortedSet */ -G_GNUC_INTERNAL GType +static GType +gee_read_only_sorted_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlySortedSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_sorted_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlySortedSet), 0, (GInstanceInitFunc) gee_read_only_sorted_set_instance_init, NULL }; + static const GInterfaceInfo gee_sorted_set_info = { (GInterfaceInitFunc) gee_read_only_sorted_set_gee_sorted_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_read_only_sorted_set_type_id; + gee_read_only_sorted_set_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_SET, "GeeReadOnlySortedSet", &g_define_type_info, 0); + g_type_add_interface_static (gee_read_only_sorted_set_type_id, GEE_TYPE_SORTED_SET, &gee_sorted_set_info); + GeeReadOnlySortedSet_private_offset = g_type_add_instance_private (gee_read_only_sorted_set_type_id, sizeof (GeeReadOnlySortedSetPrivate)); + return gee_read_only_sorted_set_type_id; +} + + G_GNUC_INTERNAL GType gee_read_only_sorted_set_get_type (void) { static volatile gsize gee_read_only_sorted_set_type_id__volatile = 0; if (g_once_init_enter (&gee_read_only_sorted_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeReadOnlySortedSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_read_only_sorted_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeReadOnlySortedSet), 0, (GInstanceInitFunc) gee_read_only_sorted_set_instance_init, NULL }; - static const GInterfaceInfo gee_sorted_set_info = { (GInterfaceInitFunc) gee_read_only_sorted_set_gee_sorted_set_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_read_only_sorted_set_type_id; - gee_read_only_sorted_set_type_id = g_type_register_static (GEE_TYPE_READ_ONLY_SET, "GeeReadOnlySortedSet", &g_define_type_info, 0); - g_type_add_interface_static (gee_read_only_sorted_set_type_id, GEE_TYPE_SORTED_SET, &gee_sorted_set_info); - GeeReadOnlySortedSet_private_offset = g_type_add_instance_private (gee_read_only_sorted_set_type_id, sizeof (GeeReadOnlySortedSetPrivate)); + gee_read_only_sorted_set_type_id = gee_read_only_sorted_set_get_type_once (); g_once_init_leave (&gee_read_only_sorted_set_type_id__volatile, gee_read_only_sorted_set_type_id); } return gee_read_only_sorted_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/set.c libgee-0.8-0.20.4/gee/set.c --- libgee-0.8-0.20.3/gee/set.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/set.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* set.c generated by valac 0.46.6, the Vala compiler +/* set.c generated by valac 0.52.0, the Vala compiler * generated from set.vala, do not modify */ /* set.vala @@ -23,231 +23,13 @@ * Jürg Billeter */ +#include "gee.h" #include #include -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); -typedef guint (*GeeHashDataFunc) (gconstpointer v, gpointer user_data); -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; - -#define GEE_TYPE_HASH_SET (gee_hash_set_get_type ()) -#define GEE_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_SET, GeeHashSet)) -#define GEE_HASH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_HASH_SET, GeeHashSetClass)) -#define GEE_IS_HASH_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASH_SET)) -#define GEE_IS_HASH_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_HASH_SET)) -#define GEE_HASH_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_HASH_SET, GeeHashSetClass)) - -typedef struct _GeeHashSet GeeHashSet; -typedef struct _GeeHashSetClass GeeHashSetClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GeeSet* gee_set_empty (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeHashSet* gee_hash_set_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GDestroyNotify hash_func_target_destroy_notify, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeHashSet* gee_hash_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeHashDataFunc hash_func, - gpointer hash_func_target, - GDestroyNotify hash_func_target_destroy_notify, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_hash_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeHashSet, g_object_unref) -GeeSet* gee_abstract_set_get_read_only_view (GeeAbstractSet* self); -GeeSet* gee_set_get_read_only_view (GeeSet* self); +static GType gee_set_get_type_once (void); /** * Returns an immutable empty set. @@ -278,8 +60,13 @@ GeeSet* gee_set_get_read_only_view (GeeSet* self) { + GeeSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SET_GET_INTERFACE (self)->get_read_only_view (self); + _iface_ = GEE_SET_GET_INTERFACE (self); + if (_iface_->get_read_only_view) { + return _iface_->get_read_only_view (self); + } + return NULL; } static void @@ -295,15 +82,23 @@ /** * A collection without duplicate elements. */ +static GType +gee_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeSetIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_set_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_set_type_id; + gee_set_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeSet", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_set_type_id, GEE_TYPE_COLLECTION); + return gee_set_type_id; +} + GType gee_set_get_type (void) { static volatile gsize gee_set_type_id__volatile = 0; if (g_once_init_enter (&gee_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeSetIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_set_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_set_type_id; - gee_set_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeSet", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_set_type_id, GEE_TYPE_COLLECTION); + gee_set_type_id = gee_set_get_type_once (); g_once_init_leave (&gee_set_type_id__volatile, gee_set_type_id); } return gee_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/sortedmap.c libgee-0.8-0.20.4/gee/sortedmap.c --- libgee-0.8-0.20.3/gee/sortedmap.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/sortedmap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* sortedmap.c generated by valac 0.46.6, the Vala compiler +/* sortedmap.c generated by valac 0.52.0, the Vala compiler * generated from sortedmap.vala, do not modify */ /* sortedset.vala @@ -23,430 +23,13 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_SORTED_MAP (gee_sorted_map_get_type ()) -#define GEE_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMap)) -#define GEE_IS_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_MAP)) -#define GEE_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMapIface)) - -typedef struct _GeeSortedMap GeeSortedMap; -typedef struct _GeeSortedMapIface GeeSortedMapIface; - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type ()) -#define GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)) -#define GEE_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) -#define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) - -typedef struct _GeeAbstractMap GeeAbstractMap; -typedef struct _GeeAbstractMapClass GeeAbstractMapClass; - -#define GEE_TYPE_ABSTRACT_SORTED_MAP (gee_abstract_sorted_map_get_type ()) -#define GEE_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMap)) -#define GEE_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) -#define GEE_IS_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_IS_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_ABSTRACT_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) - -typedef struct _GeeAbstractSortedMap GeeAbstractSortedMap; -typedef struct _GeeAbstractSortedMapClass GeeAbstractSortedMapClass; - -#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP (gee_abstract_bidir_sorted_map_get_type ()) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMap)) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP)) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass)) - -typedef struct _GeeAbstractBidirSortedMap GeeAbstractBidirSortedMap; -typedef struct _GeeAbstractBidirSortedMapClass GeeAbstractBidirSortedMapClass; - -#define GEE_TYPE_TREE_MAP (gee_tree_map_get_type ()) -#define GEE_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_MAP, GeeTreeMap)) -#define GEE_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_MAP, GeeTreeMapClass)) -#define GEE_IS_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_MAP)) -#define GEE_IS_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_MAP)) -#define GEE_TREE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_MAP, GeeTreeMapClass)) - -typedef struct _GeeTreeMap GeeTreeMap; -typedef struct _GeeTreeMapClass GeeTreeMapClass; - -#define GEE_TYPE_BIDIR_SORTED_MAP (gee_bidir_sorted_map_get_type ()) -#define GEE_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMap)) -#define GEE_IS_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_MAP)) -#define GEE_BIDIR_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMapIface)) - -typedef struct _GeeBidirSortedMap GeeBidirSortedMap; -typedef struct _GeeBidirSortedMapIface GeeBidirSortedMapIface; - -#define GEE_TYPE_BIDIR_MAP_ITERATOR (gee_bidir_map_iterator_get_type ()) -#define GEE_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIterator)) -#define GEE_IS_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR)) -#define GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIteratorIface)) - -typedef struct _GeeBidirMapIterator GeeBidirMapIterator; -typedef struct _GeeBidirMapIteratorIface GeeBidirMapIteratorIface; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - -struct _GeeSortedMapIface { - GTypeInterface parent_iface; - GeeSortedMap* (*head_map) (GeeSortedMap* self, gconstpointer before); - GeeSortedMap* (*tail_map) (GeeSortedMap* self, gconstpointer after); - GeeSortedMap* (*sub_map) (GeeSortedMap* self, gconstpointer before, gconstpointer after); - GeeSortedSet* (*get_ascending_keys) (GeeSortedMap* self); - GeeSortedSet* (*get_ascending_entries) (GeeSortedMap* self); - GeeSortedMap* (*get_read_only_view) (GeeSortedMap* self); -}; - -struct _GeeBidirMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeBidirMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeBidirMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeBidirMapIterator* self); - GType (*get_v_type) (GeeBidirMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeBidirMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeBidirMapIterator* self); - gboolean (*previous) (GeeBidirMapIterator* self); - gboolean (*has_previous) (GeeBidirMapIterator* self); - gboolean (*first) (GeeBidirMapIterator* self); - gboolean (*last) (GeeBidirMapIterator* self); -}; - -struct _GeeBidirSortedMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeBidirSortedMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeBidirSortedMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeBidirSortedMap* self); - GType (*get_v_type) (GeeBidirSortedMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeBidirSortedMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeBidirSortedMap* self); - GeeBidirMapIterator* (*bidir_map_iterator) (GeeBidirSortedMap* self); - GeeBidirSortedMap* (*get_read_only_view) (GeeBidirSortedMap* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_sorted_map_get_type (void) G_GNUC_CONST; -GeeSortedMap* gee_sorted_map_head_map (GeeSortedMap* self, - gconstpointer before); -GeeSortedMap* gee_sorted_map_tail_map (GeeSortedMap* self, - gconstpointer after); -GeeSortedMap* gee_sorted_map_sub_map (GeeSortedMap* self, - gconstpointer before, - gconstpointer after); -GeeMap* gee_sorted_map_empty (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func); -GeeTreeMap* gee_tree_map_new (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GCompareDataFunc key_compare_func, - gpointer key_compare_func_target, - GDestroyNotify key_compare_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GeeTreeMap* gee_tree_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GCompareDataFunc key_compare_func, - gpointer key_compare_func_target, - GDestroyNotify key_compare_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GType gee_abstract_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMap, g_object_unref) -GType gee_abstract_sorted_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedMap, g_object_unref) -GType gee_abstract_bidir_sorted_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedMap, g_object_unref) -GType gee_tree_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMap, g_object_unref) -GType gee_bidir_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_sorted_map_get_type (void) G_GNUC_CONST; -GeeBidirSortedMap* gee_abstract_bidir_sorted_map_get_read_only_view (GeeAbstractBidirSortedMap* self); -GeeSortedSet* gee_sorted_map_get_ascending_keys (GeeSortedMap* self); -GeeSortedSet* gee_sorted_map_get_ascending_entries (GeeSortedMap* self); -GeeSortedMap* gee_sorted_map_get_read_only_view (GeeSortedMap* self); +static GType gee_sorted_map_get_type_once (void); /** * Returns map containing pairs with key strictly lower the the argument. @@ -455,8 +38,13 @@ gee_sorted_map_head_map (GeeSortedMap* self, gconstpointer before) { + GeeSortedMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_MAP_GET_INTERFACE (self)->head_map (self, before); + _iface_ = GEE_SORTED_MAP_GET_INTERFACE (self); + if (_iface_->head_map) { + return _iface_->head_map (self, before); + } + return NULL; } /** @@ -466,8 +54,13 @@ gee_sorted_map_tail_map (GeeSortedMap* self, gconstpointer after) { + GeeSortedMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_MAP_GET_INTERFACE (self)->tail_map (self, after); + _iface_ = GEE_SORTED_MAP_GET_INTERFACE (self); + if (_iface_->tail_map) { + return _iface_->tail_map (self, after); + } + return NULL; } /** @@ -481,8 +74,13 @@ gconstpointer before, gconstpointer after) { + GeeSortedMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_MAP_GET_INTERFACE (self)->sub_map (self, before, after); + _iface_ = GEE_SORTED_MAP_GET_INTERFACE (self); + if (_iface_->sub_map) { + return _iface_->sub_map (self, before, after); + } + return NULL; } /** @@ -517,22 +115,37 @@ GeeSortedSet* gee_sorted_map_get_ascending_keys (GeeSortedMap* self) { + GeeSortedMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_MAP_GET_INTERFACE (self)->get_ascending_keys (self); + _iface_ = GEE_SORTED_MAP_GET_INTERFACE (self); + if (_iface_->get_ascending_keys) { + return _iface_->get_ascending_keys (self); + } + return NULL; } GeeSortedSet* gee_sorted_map_get_ascending_entries (GeeSortedMap* self) { + GeeSortedMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_MAP_GET_INTERFACE (self)->get_ascending_entries (self); + _iface_ = GEE_SORTED_MAP_GET_INTERFACE (self); + if (_iface_->get_ascending_entries) { + return _iface_->get_ascending_entries (self); + } + return NULL; } GeeSortedMap* gee_sorted_map_get_read_only_view (GeeSortedMap* self) { + GeeSortedMapIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_MAP_GET_INTERFACE (self)->get_read_only_view (self); + _iface_ = GEE_SORTED_MAP_GET_INTERFACE (self); + if (_iface_->get_read_only_view) { + return _iface_->get_read_only_view (self); + } + return NULL; } static void @@ -553,15 +166,23 @@ g_object_interface_install_property (iface, g_param_spec_object ("read-only-view", "read-only-view", "read-only-view", GEE_TYPE_SORTED_MAP, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE)); } +static GType +gee_sorted_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeSortedMapIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_sorted_map_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_sorted_map_type_id; + gee_sorted_map_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeSortedMap", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_sorted_map_type_id, GEE_TYPE_MAP); + return gee_sorted_map_type_id; +} + GType gee_sorted_map_get_type (void) { static volatile gsize gee_sorted_map_type_id__volatile = 0; if (g_once_init_enter (&gee_sorted_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeSortedMapIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_sorted_map_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_sorted_map_type_id; - gee_sorted_map_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeSortedMap", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_sorted_map_type_id, GEE_TYPE_MAP); + gee_sorted_map_type_id = gee_sorted_map_get_type_once (); g_once_init_leave (&gee_sorted_map_type_id__volatile, gee_sorted_map_type_id); } return gee_sorted_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/sortedset.c libgee-0.8-0.20.4/gee/sortedset.c --- libgee-0.8-0.20.3/gee/sortedset.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/sortedset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* sortedset.c generated by valac 0.46.6, the Vala compiler +/* sortedset.c generated by valac 0.52.0, the Vala compiler * generated from sortedset.vala, do not modify */ /* sortedset.vala @@ -24,331 +24,13 @@ * Maciej Piechotka */ +#include "gee.h" #include #include -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; - -#define GEE_TYPE_ABSTRACT_SORTED_SET (gee_abstract_sorted_set_get_type ()) -#define GEE_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet)) -#define GEE_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) -#define GEE_IS_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_IS_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_ABSTRACT_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) - -typedef struct _GeeAbstractSortedSet GeeAbstractSortedSet; -typedef struct _GeeAbstractSortedSetClass GeeAbstractSortedSetClass; - -#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET (gee_abstract_bidir_sorted_set_get_type ()) -#define GEE_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSet)) -#define GEE_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET)) -#define GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass)) - -typedef struct _GeeAbstractBidirSortedSet GeeAbstractBidirSortedSet; -typedef struct _GeeAbstractBidirSortedSetClass GeeAbstractBidirSortedSetClass; - -#define GEE_TYPE_TREE_SET (gee_tree_set_get_type ()) -#define GEE_TREE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_SET, GeeTreeSet)) -#define GEE_TREE_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_SET, GeeTreeSetClass)) -#define GEE_IS_TREE_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_SET)) -#define GEE_IS_TREE_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_SET)) -#define GEE_TREE_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_SET, GeeTreeSetClass)) - -typedef struct _GeeTreeSet GeeTreeSet; -typedef struct _GeeTreeSetClass GeeTreeSetClass; - -#define GEE_TYPE_BIDIR_SORTED_SET (gee_bidir_sorted_set_get_type ()) -#define GEE_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSet)) -#define GEE_IS_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_SET)) -#define GEE_BIDIR_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSetIface)) - -typedef struct _GeeBidirSortedSet GeeBidirSortedSet; -typedef struct _GeeBidirSortedSetIface GeeBidirSortedSetIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirSortedSet* self); - GeeBidirIterator* (*bidir_iterator) (GeeBidirSortedSet* self); - GeeBidirSortedSet* (*get_read_only_view) (GeeBidirSortedSet* self); -}; - -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -gpointer gee_sorted_set_first (GeeSortedSet* self); -gpointer gee_sorted_set_last (GeeSortedSet* self); -GeeIterator* gee_sorted_set_iterator_at (GeeSortedSet* self, - gconstpointer element); -gpointer gee_sorted_set_lower (GeeSortedSet* self, - gconstpointer element); -gpointer gee_sorted_set_higher (GeeSortedSet* self, - gconstpointer element); -gpointer gee_sorted_set_floor (GeeSortedSet* self, - gconstpointer element); -gpointer gee_sorted_set_ceil (GeeSortedSet* self, - gconstpointer element); -GeeSortedSet* gee_sorted_set_head_set (GeeSortedSet* self, - gconstpointer before); -GeeSortedSet* gee_sorted_set_tail_set (GeeSortedSet* self, - gconstpointer after); -GeeSortedSet* gee_sorted_set_sub_set (GeeSortedSet* self, - gconstpointer from, - gconstpointer to); -GeeSortedSet* gee_sorted_set_empty (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeTreeSet* gee_tree_set_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); -GeeTreeSet* gee_tree_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedSet, g_object_unref) -GType gee_abstract_bidir_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedSet, g_object_unref) -GType gee_tree_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeSet, g_object_unref) -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_sorted_set_get_type (void) G_GNUC_CONST; -GeeBidirSortedSet* gee_abstract_bidir_sorted_set_get_read_only_view (GeeAbstractBidirSortedSet* self); -GeeSortedSet* gee_sorted_set_get_read_only_view (GeeSortedSet* self); +static GType gee_sorted_set_get_type_once (void); /** * Returns the first element of the sorted set. Set must not be empty. @@ -358,8 +40,13 @@ gpointer gee_sorted_set_first (GeeSortedSet* self) { + GeeSortedSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_SET_GET_INTERFACE (self)->first (self); + _iface_ = GEE_SORTED_SET_GET_INTERFACE (self); + if (_iface_->first) { + return _iface_->first (self); + } + return NULL; } /** @@ -370,12 +57,17 @@ gpointer gee_sorted_set_last (GeeSortedSet* self) { + GeeSortedSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_SET_GET_INTERFACE (self)->last (self); + _iface_ = GEE_SORTED_SET_GET_INTERFACE (self); + if (_iface_->last) { + return _iface_->last (self); + } + return NULL; } /** - * Returns a {@link BidirIterator} initialy pointed at the specified + * Returns a {@link BidirIterator} initially pointed at the specified * element. * * @param element the element to point the iterator at @@ -387,8 +79,13 @@ gee_sorted_set_iterator_at (GeeSortedSet* self, gconstpointer element) { + GeeSortedSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_SET_GET_INTERFACE (self)->iterator_at (self, element); + _iface_ = GEE_SORTED_SET_GET_INTERFACE (self); + if (_iface_->iterator_at) { + return _iface_->iterator_at (self, element); + } + return NULL; } /** @@ -402,8 +99,13 @@ gee_sorted_set_lower (GeeSortedSet* self, gconstpointer element) { + GeeSortedSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_SET_GET_INTERFACE (self)->lower (self, element); + _iface_ = GEE_SORTED_SET_GET_INTERFACE (self); + if (_iface_->lower) { + return _iface_->lower (self, element); + } + return NULL; } /** @@ -418,8 +120,13 @@ gee_sorted_set_higher (GeeSortedSet* self, gconstpointer element) { + GeeSortedSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_SET_GET_INTERFACE (self)->higher (self, element); + _iface_ = GEE_SORTED_SET_GET_INTERFACE (self); + if (_iface_->higher) { + return _iface_->higher (self, element); + } + return NULL; } /** @@ -433,8 +140,13 @@ gee_sorted_set_floor (GeeSortedSet* self, gconstpointer element) { + GeeSortedSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_SET_GET_INTERFACE (self)->floor (self, element); + _iface_ = GEE_SORTED_SET_GET_INTERFACE (self); + if (_iface_->floor) { + return _iface_->floor (self, element); + } + return NULL; } /** @@ -449,8 +161,13 @@ gee_sorted_set_ceil (GeeSortedSet* self, gconstpointer element) { + GeeSortedSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_SET_GET_INTERFACE (self)->ceil (self, element); + _iface_ = GEE_SORTED_SET_GET_INTERFACE (self); + if (_iface_->ceil) { + return _iface_->ceil (self, element); + } + return NULL; } /** @@ -465,8 +182,13 @@ gee_sorted_set_head_set (GeeSortedSet* self, gconstpointer before) { + GeeSortedSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_SET_GET_INTERFACE (self)->head_set (self, before); + _iface_ = GEE_SORTED_SET_GET_INTERFACE (self); + if (_iface_->head_set) { + return _iface_->head_set (self, before); + } + return NULL; } /** @@ -481,8 +203,13 @@ gee_sorted_set_tail_set (GeeSortedSet* self, gconstpointer after) { + GeeSortedSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_SET_GET_INTERFACE (self)->tail_set (self, after); + _iface_ = GEE_SORTED_SET_GET_INTERFACE (self); + if (_iface_->tail_set) { + return _iface_->tail_set (self, after); + } + return NULL; } /** @@ -500,8 +227,13 @@ gconstpointer from, gconstpointer to) { + GeeSortedSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_SET_GET_INTERFACE (self)->sub_set (self, from, to); + _iface_ = GEE_SORTED_SET_GET_INTERFACE (self); + if (_iface_->sub_set) { + return _iface_->sub_set (self, from, to); + } + return NULL; } /** @@ -533,8 +265,13 @@ GeeSortedSet* gee_sorted_set_get_read_only_view (GeeSortedSet* self) { + GeeSortedSetIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_SORTED_SET_GET_INTERFACE (self)->get_read_only_view (self); + _iface_ = GEE_SORTED_SET_GET_INTERFACE (self); + if (_iface_->get_read_only_view) { + return _iface_->get_read_only_view (self); + } + return NULL; } static void @@ -550,15 +287,23 @@ /** * A sorted set, which you can navigate over and get sub-sets of. */ +static GType +gee_sorted_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeSortedSetIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_sorted_set_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_sorted_set_type_id; + gee_sorted_set_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeSortedSet", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_sorted_set_type_id, GEE_TYPE_SET); + return gee_sorted_set_type_id; +} + GType gee_sorted_set_get_type (void) { static volatile gsize gee_sorted_set_type_id__volatile = 0; if (g_once_init_enter (&gee_sorted_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeSortedSetIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_sorted_set_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_sorted_set_type_id; - gee_sorted_set_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeSortedSet", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_sorted_set_type_id, GEE_TYPE_SET); + gee_sorted_set_type_id = gee_sorted_set_get_type_once (); g_once_init_leave (&gee_sorted_set_type_id__volatile, gee_sorted_set_type_id); } return gee_sorted_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/sortedset.vala libgee-0.8-0.20.4/gee/sortedset.vala --- libgee-0.8-0.20.3/gee/sortedset.vala 2014-08-05 06:27:46.000000000 +0000 +++ libgee-0.8-0.20.4/gee/sortedset.vala 2021-03-17 11:24:00.000000000 +0000 @@ -41,7 +41,7 @@ public abstract G last (); /** - * Returns a {@link BidirIterator} initialy pointed at the specified + * Returns a {@link BidirIterator} initially pointed at the specified * element. * * @param element the element to point the iterator at diff -Nru libgee-0.8-0.20.3/gee/streamiterator.c libgee-0.8-0.20.4/gee/streamiterator.c --- libgee-0.8-0.20.3/gee/streamiterator.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/streamiterator.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* streamiterator.c generated by valac 0.46.6, the Vala compiler +/* streamiterator.c generated by valac 0.52.0, the Vala compiler * generated from streamiterator.vala, do not modify */ /* streamiterator.vala @@ -24,48 +24,9 @@ */ #include +#include "gee.h" #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - #define GEE_TYPE_STREAM_ITERATOR (gee_stream_iterator_get_type ()) #define GEE_STREAM_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_STREAM_ITERATOR, GeeStreamIterator)) #define GEE_STREAM_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_STREAM_ITERATOR, GeeStreamIteratorClass)) @@ -91,46 +52,12 @@ static GParamSpec* gee_stream_iterator_properties[GEE_STREAM_ITERATOR_NUM_PROPERTIES]; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _gee_lazy_unref0(var) ((var == NULL) ? NULL : (var = (gee_lazy_unref (var), NULL))) -typedef gpointer (*GeeLazyFunc) (gpointer user_data); typedef struct _Block12Data Block12Data; #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - struct _GeeStreamIterator { GObject parent_instance; GeeStreamIteratorPrivate * priv; @@ -175,26 +102,8 @@ static GeeTraversableIface * gee_stream_iterator_gee_traversable_parent_iface = NULL; static GeeIteratorIface * gee_stream_iterator_gee_iterator_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_stream_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeStreamIterator, g_object_unref) -G_GNUC_INTERNAL GeeStreamIterator* gee_stream_iterator_new (GType a_type, + G_GNUC_INTERNAL GType gee_stream_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeStreamIterator* gee_stream_iterator_new (GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GType g_type, @@ -204,7 +113,7 @@ GeeStreamFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeStreamIterator* gee_stream_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeStreamIterator* gee_stream_iterator_construct (GType object_type, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, @@ -215,27 +124,11 @@ GeeStreamFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -gboolean gee_iterator_get_valid (GeeIterator* self); static gpointer ____lambda8_ (GeeStreamIterator* self); -gpointer gee_iterator_get (GeeIterator* self); static gpointer _____lambda8__gee_lazy_func (gpointer self); -GeeLazy* gee_lazy_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeLazyFunc func, - gpointer func_target, - GDestroyNotify func_target_destroy_notify); -GeeLazy* gee_lazy_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeLazyFunc func, - gpointer func_target, - GDestroyNotify func_target_destroy_notify); static gboolean gee_stream_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, gpointer f_target); -gconstpointer gee_lazy_get_value (GeeLazy* self); static inline GeeLazy* gee_stream_iterator_yield_next (GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, @@ -249,20 +142,17 @@ gboolean* need_next, GeeLazy* * outer_value); static gboolean gee_stream_iterator_real_next (GeeIterator* base); -gboolean gee_iterator_has_next (GeeIterator* self); -void gee_lazy_eval (GeeLazy* self); static gboolean gee_stream_iterator_real_has_next (GeeIterator* base); static gpointer gee_stream_iterator_real_get (GeeIterator* base); static void gee_stream_iterator_real_remove (GeeIterator* base); static Block12Data* block12_data_ref (Block12Data* _data12_); static void block12_data_unref (void * _userdata_); static gpointer _____lambda9_ (Block12Data* _data12_); -gboolean gee_iterator_next (GeeIterator* self); static gpointer ______lambda9__gee_lazy_func (gpointer self); static gpointer _____lambda10_ (Block12Data* _data12_); static gpointer ______lambda10__gee_lazy_func (gpointer self); static void gee_stream_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_read_only (GeeIterator* self); +static GType gee_stream_iterator_get_type_once (void); static void _vala_gee_stream_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -304,7 +194,7 @@ return result; } -G_GNUC_INTERNAL GeeStreamIterator* + G_GNUC_INTERNAL GeeStreamIterator* gee_stream_iterator_construct (GType object_type, GType a_type, GBoxedCopyFunc a_dup_func, @@ -443,7 +333,7 @@ return self; } -G_GNUC_INTERNAL GeeStreamIterator* + G_GNUC_INTERNAL GeeStreamIterator* gee_stream_iterator_new (GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, @@ -890,9 +780,6 @@ } } } - _gee_lazy_unref0 (value); - block12_data_unref (_data12_); - _data12_ = NULL; } static gboolean @@ -1001,19 +888,27 @@ G_OBJECT_CLASS (gee_stream_iterator_parent_class)->finalize (obj); } -G_GNUC_INTERNAL GType +static GType +gee_stream_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeStreamIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_stream_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeStreamIterator), 0, (GInstanceInitFunc) gee_stream_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_stream_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_stream_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_stream_iterator_type_id; + gee_stream_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeStreamIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_stream_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_stream_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeStreamIterator_private_offset = g_type_add_instance_private (gee_stream_iterator_type_id, sizeof (GeeStreamIteratorPrivate)); + return gee_stream_iterator_type_id; +} + + G_GNUC_INTERNAL GType gee_stream_iterator_get_type (void) { static volatile gsize gee_stream_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_stream_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeStreamIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_stream_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeStreamIterator), 0, (GInstanceInitFunc) gee_stream_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_stream_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_stream_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_stream_iterator_type_id; - gee_stream_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeStreamIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_stream_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_stream_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeStreamIterator_private_offset = g_type_add_instance_private (gee_stream_iterator_type_id, sizeof (GeeStreamIteratorPrivate)); + gee_stream_iterator_type_id = gee_stream_iterator_get_type_once (); g_once_init_leave (&gee_stream_iterator_type_id__volatile, gee_stream_iterator_type_id); } return gee_stream_iterator_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/task.c libgee-0.8-0.20.4/gee/task.c --- libgee-0.8-0.20.3/gee/task.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/task.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* task.c generated by valac 0.46.6, the Vala compiler +/* task.c generated by valac 0.52.0, the Vala compiler * generated from task.vala, do not modify */ /* task.vala @@ -23,67 +23,21 @@ * Maciej Piechotka */ +#include "gee.h" #include #include #include #include #include +#include -typedef gpointer (*GeeTask) (gpointer user_data); - -#define GEE_TYPE_FUTURE (gee_future_get_type ()) -#define GEE_FUTURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_FUTURE, GeeFuture)) -#define GEE_IS_FUTURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_FUTURE)) -#define GEE_FUTURE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_FUTURE, GeeFutureIface)) - -typedef struct _GeeFuture GeeFuture; -typedef struct _GeeFutureIface GeeFutureIface; -typedef gpointer (*GeeFutureMapFunc) (gconstpointer value, gpointer user_data); -typedef gconstpointer (*GeeFutureLightMapFunc) (gconstpointer value, gpointer user_data); -typedef gpointer (*GeeFutureZipFunc) (gconstpointer a, gconstpointer b, gpointer user_data); -typedef GeeFuture* (*GeeFutureFlatMapFunc) (gconstpointer value, gpointer user_data); typedef struct _GeeTaskData GeeTaskData; - -#define GEE_TYPE_PROMISE (gee_promise_get_type ()) -#define GEE_PROMISE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_PROMISE, GeePromise)) -#define GEE_PROMISE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_PROMISE, GeePromiseClass)) -#define GEE_IS_PROMISE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_PROMISE)) -#define GEE_IS_PROMISE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_PROMISE)) -#define GEE_PROMISE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_PROMISE, GeePromiseClass)) - -typedef struct _GeePromise GeePromise; -typedef struct _GeePromiseClass GeePromiseClass; #define _gee_promise_unref0(var) ((var == NULL) ? NULL : (var = (gee_promise_unref (var), NULL))) #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _gee_task_data_free0(var) ((var == NULL) ? NULL : (var = (gee_task_data_free (var), NULL))) typedef struct _GeeAsyncTaskData GeeAsyncTaskData; #define _g_free0(var) (var = (g_free (var), NULL)) #define _g_thread_pool_free0(var) ((var == NULL) ? NULL : (var = (g_thread_pool_free (var, FALSE, TRUE), NULL))) -#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL))) - -typedef enum { - GEE_FUTURE_ERROR_ABANDON_PROMISE, - GEE_FUTURE_ERROR_EXCEPTION -} GeeFutureError; -#define GEE_FUTURE_ERROR gee_future_error_quark () -struct _GeeFutureIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeFuture* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeFuture* self); - GDestroyNotify (*get_g_destroy_func) (GeeFuture* self); - gconstpointer (*wait) (GeeFuture* self, GError** error); - gboolean (*wait_until) (GeeFuture* self, gint64 end_time, gconstpointer* value, GError** error); - void (*wait_async) (GeeFuture* self, GAsyncReadyCallback _callback_, gpointer _user_data_); - gconstpointer (*wait_finish) (GeeFuture* self, GAsyncResult* _res_, GError** error); - GeeFuture* (*map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); - GeeFuture* (*light_map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureLightMapFunc func, gpointer func_target); - GeeFuture* (*zip) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GType b_type, GBoxedCopyFunc b_dup_func, GDestroyNotify b_destroy_func, GeeFutureZipFunc zip_func, gpointer zip_func_target, GeeFuture* second); - GeeFuture* (*flat_map) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureFlatMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); - gconstpointer (*get_value) (GeeFuture* self); - gboolean (*get_ready) (GeeFuture* self); - GError* (*get_exception) (GeeFuture* self); - GeeFuture* (*light_map_fixed) (GeeFuture* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFutureLightMapFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -}; struct _GeeTaskData { GeeTask function; @@ -104,51 +58,14 @@ static GOnce gee_task_data_async_pool; static GOnce gee_task_data_async_pool = G_ONCE_INIT; -GQuark gee_future_error_quark (void); -GType gee_future_get_type (void) G_GNUC_CONST; -GeeFuture* gee_task (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeTask task, - gpointer task_target, - GError** error); -G_GNUC_INTERNAL void gee_task_data_free (GeeTaskData * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTaskData, gee_task_data_free) -G_GNUC_INTERNAL GeeTaskData* gee_task_data_new (void); -gpointer gee_promise_ref (gpointer instance); -void gee_promise_unref (gpointer instance); -GParamSpec* gee_param_spec_promise (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_promise (GValue* value, - gpointer v_object); -void gee_value_take_promise (GValue* value, - gpointer v_object); -gpointer gee_value_get_promise (const GValue* value); -GType gee_promise_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeePromise, gee_promise_unref) -GeePromise* gee_promise_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeePromise* gee_promise_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeFuture* gee_promise_get_future (GeePromise* self); -G_GNUC_INTERNAL GThreadPool* gee_task_data_get_async_pool (void); + G_GNUC_INTERNAL void gee_task_data_free (GeeTaskData * self); + G_GNUC_INTERNAL GeeTaskData* gee_task_data_new (void); + G_GNUC_INTERNAL GThreadPool* gee_task_data_get_async_pool (void); static void gee_async_task_data_free (gpointer _data); -void gee_async_task (GAsyncReadyCallback _callback_, - gpointer _user_data_); -void gee_async_task_finish (GAsyncResult* _res_, - GError** error); static gboolean gee_async_task_co (GeeAsyncTaskData* _data_); static gpointer _gee_async_task_co_gee_task (gpointer self); static void gee_task_data_instance_init (GeeTaskData * self); -G_GNUC_INTERNAL void gee_task_data_run (GeeTaskData* self); -void gee_promise_set_value (GeePromise* self, - gpointer value); + G_GNUC_INTERNAL void gee_task_data_run (GeeTaskData* self); static GThreadPool* __lambda58_ (void); static void ___lambda59_ (GeeTaskData* tdata); static void ____lambda59__gfunc (gpointer data, @@ -160,7 +77,7 @@ * of threads from pool will execute the task. * * Note: There is limited number of threads unless environment variable - * ``GEE_NUM_THREADS`` is set to -1. It is not adviced to call I/O or + * ``GEE_NUM_THREADS`` is set to -1. It is not advised to call I/O or * block inside the taks. If necessary it is possible to create a new one * by anyther call. * @@ -277,7 +194,7 @@ * one of threads from pool will execute the task. * * Note: There is limited number of threads unless environment variable - * ``GEE_NUM_THREADS`` is set to -1. It is not adviced to call I/O or + * ``GEE_NUM_THREADS`` is set to -1. It is not advised to call I/O or * block inside the taks. If necessary it is possible to create a new one * by anyther call. * @@ -327,7 +244,7 @@ return FALSE; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_task_data_run (GeeTaskData* self) { GeePromise* _tmp0_; @@ -345,7 +262,8 @@ static gboolean int64_try_parse (const gchar* str, gint64* _result_, - const gchar* * unparsed) + const gchar* * unparsed, + guint _base) { gint64 _vala__result_ = 0LL; const gchar* _vala_unparsed = NULL; @@ -357,15 +275,22 @@ gint _tmp4_; gboolean result = FALSE; g_return_val_if_fail (str != NULL, FALSE); - _tmp1_ = g_ascii_strtoll (str, &_tmp0_, (guint) 0); + errno = 0; + _tmp1_ = g_ascii_strtoll (str, &_tmp0_, _base); endptr = _tmp0_; _vala__result_ = _tmp1_; _tmp2_ = endptr; _tmp3_ = strlen (str); _tmp4_ = _tmp3_; if (_tmp2_ == (((gchar*) str) + _tmp4_)) { + gboolean _tmp5_ = FALSE; _vala_unparsed = ""; - result = TRUE; + if (errno != ERANGE) { + _tmp5_ = errno != EINVAL; + } else { + _tmp5_ = FALSE; + } + result = _tmp5_; if (_result_) { *_result_ = _vala__result_; } @@ -374,9 +299,9 @@ } return result; } else { - gchar* _tmp5_; - _tmp5_ = endptr; - _vala_unparsed = (const gchar*) _tmp5_; + gchar* _tmp6_; + _tmp6_ = endptr; + _vala_unparsed = (const gchar*) _tmp6_; result = FALSE; if (_result_) { *_result_ = _vala__result_; @@ -386,12 +311,6 @@ } return result; } - if (_result_) { - *_result_ = _vala__result_; - } - if (unparsed) { - *unparsed = _vala_unparsed; - } } static void @@ -430,7 +349,7 @@ gint64 _tmp4_ = 0LL; gboolean _tmp5_; _tmp3_ = gee_num_threads_str; - _tmp5_ = int64_try_parse (_tmp3_, &_tmp4_, NULL); + _tmp5_ = int64_try_parse (_tmp3_, &_tmp4_, NULL, (guint) 0); _result_ = _tmp4_; if (_tmp5_) { num_threads = (gint) _result_; @@ -444,7 +363,7 @@ _tmp6_ = _tmp7_; if (G_UNLIKELY (_inner_error0_ != NULL)) { if (_inner_error0_->domain == G_THREAD_ERROR) { - goto __catch4_g_thread_error; + goto __catch0_g_thread_error; } _g_free0 (gee_num_threads_str); g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); @@ -458,16 +377,13 @@ _g_free0 (gee_num_threads_str); return result; } - goto __finally4; - __catch4_g_thread_error: + goto __finally0; + __catch0_g_thread_error: { - GError* err = NULL; - err = _inner_error0_; - _inner_error0_ = NULL; + g_clear_error (&_inner_error0_); abort (); - _g_error_free0 (err); } - __finally4: + __finally0: _g_free0 (gee_num_threads_str); g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code); g_clear_error (&_inner_error0_); @@ -482,7 +398,7 @@ return result; } -G_GNUC_INTERNAL GThreadPool* + G_GNUC_INTERNAL GThreadPool* gee_task_data_get_async_pool (void) { gconstpointer _tmp0_; @@ -492,7 +408,7 @@ return result; } -G_GNUC_INTERNAL GeeTaskData* + G_GNUC_INTERNAL GeeTaskData* gee_task_data_new (void) { GeeTaskData* self; @@ -506,7 +422,7 @@ { } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_task_data_free (GeeTaskData * self) { _gee_promise_unref0 (self->promise); diff -Nru libgee-0.8-0.20.3/gee/task.vala libgee-0.8-0.20.4/gee/task.vala --- libgee-0.8-0.20.3/gee/task.vala 2014-09-13 12:51:51.000000000 +0000 +++ libgee-0.8-0.20.4/gee/task.vala 2021-03-17 11:24:00.000000000 +0000 @@ -28,7 +28,7 @@ * of threads from pool will execute the task. * * Note: There is limited number of threads unless environment variable - * ``GEE_NUM_THREADS`` is set to -1. It is not adviced to call I/O or + * ``GEE_NUM_THREADS`` is set to -1. It is not advised to call I/O or * block inside the taks. If necessary it is possible to create a new one * by anyther call. * @@ -51,7 +51,7 @@ * one of threads from pool will execute the task. * * Note: There is limited number of threads unless environment variable - * ``GEE_NUM_THREADS`` is set to -1. It is not adviced to call I/O or + * ``GEE_NUM_THREADS`` is set to -1. It is not advised to call I/O or * block inside the taks. If necessary it is possible to create a new one * by anyther call. * diff -Nru libgee-0.8-0.20.3/gee/teeiterator.c libgee-0.8-0.20.4/gee/teeiterator.c --- libgee-0.8-0.20.3/gee/teeiterator.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/teeiterator.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* teeiterator.c generated by valac 0.46.6, the Vala compiler +/* teeiterator.c generated by valac 0.52.0, the Vala compiler * generated from teeiterator.vala, do not modify */ /* teeiterator.vala @@ -24,49 +24,10 @@ */ #include +#include "gee.h" #include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - #define GEE_TYPE_TEE_ITERATOR (gee_tee_iterator_get_type ()) #define GEE_TEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TEE_ITERATOR, GeeTeeIterator)) #define GEE_TEE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TEE_ITERATOR, GeeTeeIteratorClass)) @@ -103,42 +64,8 @@ #define _gee_lazy_unref0(var) ((var == NULL) ? NULL : (var = (gee_lazy_unref (var), NULL))) typedef struct _Block13Data Block13Data; typedef struct _Block14Data Block14Data; -typedef gpointer (*GeeLazyFunc) (gpointer user_data); typedef struct _GeeTeeIteratorParamSpecNode GeeTeeIteratorParamSpecNode; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - struct _GeeTeeIterator { GObject parent_instance; GeeTeeIteratorPrivate * priv; @@ -200,45 +127,26 @@ static GeeTraversableIface * gee_tee_iterator_gee_traversable_parent_iface = NULL; static GeeIteratorIface * gee_tee_iterator_gee_iterator_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_tee_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTeeIterator, g_object_unref) -G_GNUC_INTERNAL gpointer gee_tee_iterator_node_ref (gpointer instance); -G_GNUC_INTERNAL void gee_tee_iterator_node_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_tee_iterator_param_spec_node (const gchar* name, + G_GNUC_INTERNAL GType gee_tee_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL gpointer gee_tee_iterator_node_ref (gpointer instance); + G_GNUC_INTERNAL void gee_tee_iterator_node_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_tee_iterator_param_spec_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_tee_iterator_value_set_node (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_tee_iterator_value_take_node (GValue* value, + G_GNUC_INTERNAL void gee_tee_iterator_value_set_node (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_tee_iterator_value_take_node (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_tee_iterator_value_get_node (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_tee_iterator_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTeeIteratorNode, gee_tee_iterator_node_unref) -G_GNUC_INTERNAL GeeTeeIterator* gee_tee_iterator_new (GType g_type, + G_GNUC_INTERNAL gpointer gee_tee_iterator_value_get_node (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_tee_iterator_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeTeeIterator* gee_tee_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeTeeIteratorNode* head, gboolean valid); -G_GNUC_INTERNAL GeeTeeIterator* gee_tee_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeTeeIterator* gee_tee_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -247,8 +155,6 @@ static gboolean gee_tee_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, gpointer f_target); -gpointer gee_lazy_get (GeeLazy* self); -gconstpointer gee_lazy_get_value (GeeLazy* self); static GeeIterator** gee_tee_iterator_real_tee (GeeTraversable* base, guint forks, gint* result_length1); @@ -256,7 +162,7 @@ static gboolean gee_tee_iterator_real_has_next (GeeIterator* base); static gpointer gee_tee_iterator_real_get (GeeIterator* base); static void gee_tee_iterator_real_remove (GeeIterator* base); -G_GNUC_INTERNAL GeeLazy* gee_tee_iterator_create_nodes (GType g_type, + G_GNUC_INTERNAL GeeLazy* gee_tee_iterator_create_nodes (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iterator, @@ -266,30 +172,14 @@ static GeeTeeIteratorNode* __lambda23_ (Block13Data* _data13_); static Block14Data* block14_data_ref (Block14Data* _data14_); static void block14_data_unref (void * _userdata_); -void gee_lazy_eval (GeeLazy* self); -gboolean gee_iterator_next (GeeIterator* self); static gpointer __lambda24_ (Block14Data* _data14_); -gpointer gee_iterator_get (GeeIterator* self); static gpointer ___lambda24__gee_lazy_func (gpointer self); -GeeLazy* gee_lazy_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeLazyFunc func, - gpointer func_target, - GDestroyNotify func_target_destroy_notify); -GeeLazy* gee_lazy_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeLazyFunc func, - gpointer func_target, - GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeTeeIteratorNode* gee_tee_iterator_node_new (GType g_type, + G_GNUC_INTERNAL GeeTeeIteratorNode* gee_tee_iterator_node_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeLazy* data, GeeLazy* next); -G_GNUC_INTERNAL GeeTeeIteratorNode* gee_tee_iterator_node_construct (GType object_type, + G_GNUC_INTERNAL GeeTeeIteratorNode* gee_tee_iterator_node_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -297,9 +187,9 @@ GeeLazy* next); static gpointer ___lambda23__gee_lazy_func (gpointer self); static void gee_tee_iterator_node_finalize (GeeTeeIteratorNode * obj); +static GType gee_tee_iterator_node_get_type_once (void); static void gee_tee_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_valid (GeeIterator* self); -gboolean gee_iterator_get_read_only (GeeIterator* self); +static GType gee_tee_iterator_get_type_once (void); static void _vala_gee_tee_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -327,7 +217,7 @@ return self ? gee_tee_iterator_node_ref (self) : NULL; } -G_GNUC_INTERNAL GeeTeeIterator* + G_GNUC_INTERNAL GeeTeeIterator* gee_tee_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -348,7 +238,7 @@ return self; } -G_GNUC_INTERNAL GeeTeeIterator* + G_GNUC_INTERNAL GeeTeeIterator* gee_tee_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -371,7 +261,7 @@ GeeTeeIteratorNode* _tmp4_; GeeLazy* _tmp5_; gconstpointer _tmp6_; - GeeTeeIteratorNode* _tmp7_; + gconstpointer _tmp7_; GeeTeeIteratorNode* _tmp15_; gboolean result = FALSE; self = (GeeTeeIterator*) base; @@ -530,7 +420,7 @@ GeeTeeIteratorNode* _tmp0_; GeeLazy* _tmp1_; gconstpointer _tmp2_; - GeeTeeIteratorNode* _tmp3_; + gconstpointer _tmp3_; GeeTeeIteratorNode* _tmp4_; gboolean result = FALSE; self = (GeeTeeIterator*) base; @@ -738,7 +628,7 @@ return result; } -G_GNUC_INTERNAL GeeLazy* + G_GNUC_INTERNAL GeeLazy* gee_tee_iterator_create_nodes (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -796,7 +686,7 @@ return G_STRUCT_MEMBER_P (self, GeeTeeIteratorNode_private_offset); } -G_GNUC_INTERNAL GeeTeeIteratorNode* + G_GNUC_INTERNAL GeeTeeIteratorNode* gee_tee_iterator_node_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -826,7 +716,7 @@ return self; } -G_GNUC_INTERNAL GeeTeeIteratorNode* + G_GNUC_INTERNAL GeeTeeIteratorNode* gee_tee_iterator_node_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -909,7 +799,7 @@ return NULL; } -G_GNUC_INTERNAL GParamSpec* + G_GNUC_INTERNAL GParamSpec* gee_tee_iterator_param_spec_node (const gchar* name, const gchar* nick, const gchar* blurb, @@ -923,14 +813,14 @@ return G_PARAM_SPEC (spec); } -G_GNUC_INTERNAL gpointer + G_GNUC_INTERNAL gpointer gee_tee_iterator_value_get_node (const GValue* value) { g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_TEE_ITERATOR_TYPE_NODE), NULL); return value->data[0].v_pointer; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_tee_iterator_value_set_node (GValue* value, gpointer v_object) { @@ -950,7 +840,7 @@ } } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_tee_iterator_value_take_node (GValue* value, gpointer v_object) { @@ -996,23 +886,31 @@ _gee_lazy_unref0 (self->_next); } -G_GNUC_INTERNAL GType +static GType +gee_tee_iterator_node_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_tee_iterator_value_node_init, gee_tee_iterator_value_node_free_value, gee_tee_iterator_value_node_copy_value, gee_tee_iterator_value_node_peek_pointer, "p", gee_tee_iterator_value_node_collect_value, "p", gee_tee_iterator_value_node_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeeTeeIteratorNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tee_iterator_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTeeIteratorNode), 0, (GInstanceInitFunc) gee_tee_iterator_node_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_tee_iterator_node_type_id; + gee_tee_iterator_node_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeTeeIteratorNode", &g_define_type_info, &g_define_type_fundamental_info, 0); + GeeTeeIteratorNode_private_offset = g_type_add_instance_private (gee_tee_iterator_node_type_id, sizeof (GeeTeeIteratorNodePrivate)); + return gee_tee_iterator_node_type_id; +} + + G_GNUC_INTERNAL GType gee_tee_iterator_node_get_type (void) { static volatile gsize gee_tee_iterator_node_type_id__volatile = 0; if (g_once_init_enter (&gee_tee_iterator_node_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_tee_iterator_value_node_init, gee_tee_iterator_value_node_free_value, gee_tee_iterator_value_node_copy_value, gee_tee_iterator_value_node_peek_pointer, "p", gee_tee_iterator_value_node_collect_value, "p", gee_tee_iterator_value_node_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeeTeeIteratorNodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tee_iterator_node_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTeeIteratorNode), 0, (GInstanceInitFunc) gee_tee_iterator_node_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_tee_iterator_node_type_id; - gee_tee_iterator_node_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeTeeIteratorNode", &g_define_type_info, &g_define_type_fundamental_info, 0); - GeeTeeIteratorNode_private_offset = g_type_add_instance_private (gee_tee_iterator_node_type_id, sizeof (GeeTeeIteratorNodePrivate)); + gee_tee_iterator_node_type_id = gee_tee_iterator_node_get_type_once (); g_once_init_leave (&gee_tee_iterator_node_type_id__volatile, gee_tee_iterator_node_type_id); } return gee_tee_iterator_node_type_id__volatile; } -G_GNUC_INTERNAL gpointer + G_GNUC_INTERNAL gpointer gee_tee_iterator_node_ref (gpointer instance) { GeeTeeIteratorNode * self; @@ -1021,7 +919,7 @@ return instance; } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_tee_iterator_node_unref (gpointer instance) { GeeTeeIteratorNode * self; @@ -1107,19 +1005,27 @@ G_OBJECT_CLASS (gee_tee_iterator_parent_class)->finalize (obj); } -G_GNUC_INTERNAL GType +static GType +gee_tee_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTeeIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tee_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTeeIterator), 0, (GInstanceInitFunc) gee_tee_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tee_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tee_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_tee_iterator_type_id; + gee_tee_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTeeIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_tee_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_tee_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeTeeIterator_private_offset = g_type_add_instance_private (gee_tee_iterator_type_id, sizeof (GeeTeeIteratorPrivate)); + return gee_tee_iterator_type_id; +} + + G_GNUC_INTERNAL GType gee_tee_iterator_get_type (void) { static volatile gsize gee_tee_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_tee_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTeeIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tee_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTeeIterator), 0, (GInstanceInitFunc) gee_tee_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tee_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tee_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_tee_iterator_type_id; - gee_tee_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTeeIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_tee_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_tee_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeTeeIterator_private_offset = g_type_add_instance_private (gee_tee_iterator_type_id, sizeof (GeeTeeIteratorPrivate)); + gee_tee_iterator_type_id = gee_tee_iterator_get_type_once (); g_once_init_leave (&gee_tee_iterator_type_id__volatile, gee_tee_iterator_type_id); } return gee_tee_iterator_type_id__volatile; @@ -1185,7 +1091,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/timsort.c libgee-0.8-0.20.4/gee/timsort.c --- libgee-0.8-0.20.3/gee/timsort.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/timsort.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* timsort.c generated by valac 0.46.6, the Vala compiler +/* timsort.c generated by valac 0.52.0, the Vala compiler * generated from timsort.vala, do not modify */ /* timsort.vala @@ -24,6 +24,7 @@ */ #include +#include "gee.h" #include #include @@ -37,78 +38,6 @@ typedef struct _GeeTimSort GeeTimSort; typedef struct _GeeTimSortClass GeeTimSortClass; typedef struct _GeeTimSortPrivate GeeTimSortPrivate; - -#define GEE_TYPE_LIST (gee_list_get_type ()) -#define GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST, GeeList)) -#define GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST)) -#define GEE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST, GeeListIface)) - -typedef struct _GeeList GeeList; -typedef struct _GeeListIface GeeListIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; typedef struct _GeeTimSortSlice GeeTimSortSlice; enum { GEE_TIM_SORT_0_PROPERTY, @@ -119,75 +48,6 @@ }; static GParamSpec* gee_tim_sort_properties[GEE_TIM_SORT_NUM_PROPERTIES]; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - -#define GEE_TYPE_ABSTRACT_LIST (gee_abstract_list_get_type ()) -#define GEE_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractList)) -#define GEE_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) -#define GEE_IS_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_IS_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_ABSTRACT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) - -typedef struct _GeeAbstractList GeeAbstractList; -typedef struct _GeeAbstractListClass GeeAbstractListClass; - -#define GEE_TYPE_ABSTRACT_BIDIR_LIST (gee_abstract_bidir_list_get_type ()) -#define GEE_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirList)) -#define GEE_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) -#define GEE_IS_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_IS_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_ABSTRACT_BIDIR_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) - -typedef struct _GeeAbstractBidirList GeeAbstractBidirList; -typedef struct _GeeAbstractBidirListClass GeeAbstractBidirListClass; - -#define GEE_TYPE_ARRAY_LIST (gee_array_list_get_type ()) -#define GEE_ARRAY_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ARRAY_LIST, GeeArrayList)) -#define GEE_ARRAY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ARRAY_LIST, GeeArrayListClass)) -#define GEE_IS_ARRAY_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ARRAY_LIST)) -#define GEE_IS_ARRAY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ARRAY_LIST)) -#define GEE_ARRAY_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ARRAY_LIST, GeeArrayListClass)) - -typedef struct _GeeArrayList GeeArrayList; -typedef struct _GeeArrayListClass GeeArrayListClass; -#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL))) -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; -typedef struct _GeeAbstractListPrivate GeeAbstractListPrivate; - -#define GEE_TYPE_BIDIR_LIST (gee_bidir_list_get_type ()) -#define GEE_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirList)) -#define GEE_IS_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST)) -#define GEE_BIDIR_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirListIface)) - -typedef struct _GeeBidirList GeeBidirList; -typedef struct _GeeBidirListIface GeeBidirListIface; - -#define GEE_TYPE_BIDIR_LIST_ITERATOR (gee_bidir_list_iterator_get_type ()) -#define GEE_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIterator)) -#define GEE_IS_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR)) -#define GEE_BIDIR_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIteratorIface)) - -typedef struct _GeeBidirListIterator GeeBidirListIterator; -typedef struct _GeeBidirListIteratorIface GeeBidirListIteratorIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; -typedef struct _GeeAbstractBidirListPrivate GeeAbstractBidirListPrivate; -typedef struct _GeeArrayListPrivate GeeArrayListPrivate; #define _gee_tim_sort_slice_free0(var) ((var == NULL) ? NULL : (var = (gee_tim_sort_slice_free (var), NULL))) typedef gboolean (*GeeTimSortLowerFunc) (gconstpointer left, gconstpointer right, gpointer user_data); #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); @@ -204,99 +64,6 @@ GObjectClass parent_class; }; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -struct _GeeListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeList* self); - GDestroyNotify (*get_g_destroy_func) (GeeList* self); - GeeListIterator* (*list_iterator) (GeeList* self); - gpointer (*get) (GeeList* self, gint index); - void (*set) (GeeList* self, gint index, gconstpointer item); - gint (*index_of) (GeeList* self, gconstpointer item); - void (*insert) (GeeList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeList* self, gint index); - GeeList* (*slice) (GeeList* self, gint start, gint stop); - gpointer (*first) (GeeList* self); - gpointer (*last) (GeeList* self); - void (*insert_all) (GeeList* self, gint index, GeeCollection* collection); - void (*sort) (GeeList* self, GCompareDataFunc compare_func, gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify); - GeeList* (*get_read_only_view) (GeeList* self); -}; - struct _GeeTimSortPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -316,123 +83,6 @@ gpointer compare_target; }; -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeAbstractList { - GeeAbstractCollection parent_instance; - GeeAbstractListPrivate * priv; -}; - -struct _GeeAbstractListClass { - GeeAbstractCollectionClass parent_class; - GeeListIterator* (*list_iterator) (GeeAbstractList* self); - gpointer (*get) (GeeAbstractList* self, gint index); - void (*set) (GeeAbstractList* self, gint index, gconstpointer item); - gint (*index_of) (GeeAbstractList* self, gconstpointer item); - void (*insert) (GeeAbstractList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeAbstractList* self, gint index); - GeeList* (*slice) (GeeAbstractList* self, gint start, gint stop); - void (*reserved0) (GeeAbstractList* self); - void (*reserved1) (GeeAbstractList* self); - void (*reserved2) (GeeAbstractList* self); - void (*reserved3) (GeeAbstractList* self); - void (*reserved4) (GeeAbstractList* self); - void (*reserved5) (GeeAbstractList* self); - void (*reserved6) (GeeAbstractList* self); - void (*reserved7) (GeeAbstractList* self); - void (*reserved8) (GeeAbstractList* self); - void (*reserved9) (GeeAbstractList* self); - GeeList* (*get_read_only_view) (GeeAbstractList* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirListIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirListIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirListIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirListIterator* self); - void (*insert) (GeeBidirListIterator* self, gconstpointer item); -}; - -struct _GeeBidirListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirList* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirList* self); - GeeBidirListIterator* (*bidir_list_iterator) (GeeBidirList* self); - GeeBidirList* (*get_read_only_view) (GeeBidirList* self); -}; - -struct _GeeAbstractBidirList { - GeeAbstractList parent_instance; - GeeAbstractBidirListPrivate * priv; -}; - -struct _GeeAbstractBidirListClass { - GeeAbstractListClass parent_class; - GeeBidirListIterator* (*bidir_list_iterator) (GeeAbstractBidirList* self); - void (*reserved0) (GeeAbstractBidirList* self); - void (*reserved1) (GeeAbstractBidirList* self); - void (*reserved2) (GeeAbstractBidirList* self); - void (*reserved3) (GeeAbstractBidirList* self); - void (*reserved4) (GeeAbstractBidirList* self); - void (*reserved5) (GeeAbstractBidirList* self); - void (*reserved6) (GeeAbstractBidirList* self); - void (*reserved7) (GeeAbstractBidirList* self); - void (*reserved8) (GeeAbstractBidirList* self); - void (*reserved9) (GeeAbstractBidirList* self); - GeeBidirList* (*get_read_only_view) (GeeAbstractBidirList* self); -}; - -struct _GeeArrayList { - GeeAbstractBidirList parent_instance; - GeeArrayListPrivate * priv; - gpointer* _items; - gint _items_length1; - gint __items_size_; - gint _size; -}; - -struct _GeeArrayListClass { - GeeAbstractBidirListClass parent_class; -}; - struct _GeeTimSortSlice { void** list; void** new_list; @@ -443,46 +93,15 @@ static gint GeeTimSort_private_offset; static gpointer gee_tim_sort_parent_class = NULL; -G_GNUC_INTERNAL GType gee_tim_sort_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTimSort, g_object_unref) -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_get_type (void) G_GNUC_CONST; + G_GNUC_INTERNAL GType gee_tim_sort_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static void gee_tim_sort_slice_free (GeeTimSortSlice * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTimSortSlice, gee_tim_sort_slice_free) #define GEE_TIM_SORT_MINIMUM_GALLOP 7 -G_GNUC_INTERNAL void gee_tim_sort_sort (GType g_type, + G_GNUC_INTERNAL void gee_tim_sort_sort (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeList* list, GCompareDataFunc compare, gpointer compare_target); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_abstract_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractList, g_object_unref) -GType gee_abstract_bidir_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirList, g_object_unref) -GType gee_array_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeArrayList, g_object_unref) static void gee_tim_sort_sort_arraylist (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -495,23 +114,14 @@ GeeList* list, GCompareDataFunc compare, gpointer compare_target); -G_GNUC_INTERNAL GeeTimSort* gee_tim_sort_new (GType g_type, + G_GNUC_INTERNAL GeeTimSort* gee_tim_sort_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); -G_GNUC_INTERNAL GeeTimSort* gee_tim_sort_construct (GType object_type, + G_GNUC_INTERNAL GeeTimSort* gee_tim_sort_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func); -gpointer* gee_collection_to_array (GeeCollection* self, - gint* result_length1); -gint gee_collection_get_size (GeeCollection* self); static void gee_tim_sort_do_sort (GeeTimSort* self); -void gee_collection_clear (GeeCollection* self); -gboolean gee_collection_add (GeeCollection* self, - gconstpointer item); -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_get_type (void) G_GNUC_CONST; static GeeTimSortSlice* gee_tim_sort_slice_new (void** list, gint index, gint length); @@ -527,8 +137,8 @@ static inline void gee_tim_sort_slice_shorten_start (GeeTimSortSlice* self, gint n); static void _vala_array_add3 (GeeTimSortSlice** * array, - int* length, - int* size, + gint* length, + gint* size, GeeTimSortSlice* value); static void gee_tim_sort_merge_collapse (GeeTimSort* self); static void gee_tim_sort_merge_force_collapse (GeeTimSort* self); @@ -576,6 +186,7 @@ gint i, gint j); static void gee_tim_sort_finalize (GObject * obj); +static GType gee_tim_sort_get_type_once (void); static void _vala_gee_tim_sort_get_property (GObject * object, guint property_id, GValue * value, @@ -602,7 +213,7 @@ return G_STRUCT_MEMBER_P (self, GeeTimSort_private_offset); } -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void gee_tim_sort_sort (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -701,7 +312,7 @@ gconstpointer _tmp18_; _tmp18_ = item; gee_collection_add ((GeeCollection*) list, _tmp18_); - _g_destroy_func0 (item); + ((item == NULL) || (g_destroy_func == NULL)) ? NULL : (item = (g_destroy_func (item), NULL)); } } } @@ -740,8 +351,8 @@ static void _vala_array_add3 (GeeTimSortSlice** * array, - int* length, - int* size, + gint* length, + gint* size, GeeTimSortSlice* value) { if ((*length) == (*size)) { @@ -761,15 +372,15 @@ GeeTimSortSlice* _tmp2_; gint minimum_length = 0; GeeTimSortSlice* _tmp3_; - GeeTimSortSlice* _tmp18_; + GeeTimSortSlice* _tmp17_; + GeeTimSortSlice** _tmp18_; + gint _tmp18__length1; GeeTimSortSlice** _tmp19_; gint _tmp19__length1; - GeeTimSortSlice** _tmp20_; - gint _tmp20__length1; - GeeTimSortSlice* _tmp21_; - GeeTimSortSlice** _tmp22_; - gint _tmp22__length1; - GeeTimSortSlice* _tmp23_; + GeeTimSortSlice* _tmp20_; + GeeTimSortSlice** _tmp21_; + gint _tmp21__length1; + GeeTimSortSlice* _tmp22_; g_return_if_fail (self != NULL); if (self->priv->size < 2) { return; @@ -795,9 +406,7 @@ GeeTimSortSlice* _tmp9_; GeeTimSortSlice* _tmp14_; GeeTimSortSlice* _tmp15_; - GeeTimSortSlice** _tmp16_; - gint _tmp16__length1; - GeeTimSortSlice* _tmp17_; + GeeTimSortSlice* _tmp16_; _tmp4_ = remaining; if (!(_tmp4_->length > 0)) { break; @@ -829,28 +438,26 @@ _tmp14_ = remaining; _tmp15_ = run; gee_tim_sort_slice_shorten_start (_tmp14_, _tmp15_->length); - _tmp16_ = self->priv->pending; - _tmp16__length1 = self->priv->pending_length1; - _tmp17_ = run; + _tmp16_ = run; run = NULL; - _vala_array_add3 (&self->priv->pending, &self->priv->pending_length1, &self->priv->_pending_size_, _tmp17_); + _vala_array_add3 (&self->priv->pending, &self->priv->pending_length1, &self->priv->_pending_size_, _tmp16_); gee_tim_sort_merge_collapse (self); _gee_tim_sort_slice_free0 (run); } - _tmp18_ = remaining; - _vala_assert (_tmp18_->index == self->priv->size, "remaining.index == size"); + _tmp17_ = remaining; + _vala_assert (_tmp17_->index == self->priv->size, "remaining.index == size"); gee_tim_sort_merge_force_collapse (self); + _tmp18_ = self->priv->pending; + _tmp18__length1 = self->priv->pending_length1; + _vala_assert (_tmp18__length1 == 1, "pending.length == 1"); _tmp19_ = self->priv->pending; _tmp19__length1 = self->priv->pending_length1; - _vala_assert (_tmp19__length1 == 1, "pending.length == 1"); - _tmp20_ = self->priv->pending; - _tmp20__length1 = self->priv->pending_length1; - _tmp21_ = _tmp20_[0]; - _vala_assert (_tmp21_->index == 0, "pending[0].index == 0"); - _tmp22_ = self->priv->pending; - _tmp22__length1 = self->priv->pending_length1; - _tmp23_ = _tmp22_[0]; - _vala_assert (_tmp23_->length == self->priv->size, "pending[0].length == size"); + _tmp20_ = _tmp19_[0]; + _vala_assert (_tmp20_->index == 0, "pending[0].index == 0"); + _tmp21_ = self->priv->pending; + _tmp21__length1 = self->priv->pending_length1; + _tmp22_ = _tmp21_[0]; + _vala_assert (_tmp22_->length == self->priv->size, "pending[0].length == size"); _gee_tim_sort_slice_free0 (remaining); } @@ -1772,7 +1379,7 @@ self->priv->minimum_gallop = minimum_gallop; } } - __finally5: + __finally0: { void** _tmp42_; void** _tmp43_; @@ -1809,27 +1416,29 @@ gee_tim_sort_slice_copy (b); { void** _tmp0_; - void* _tmp1_; - gboolean _tmp2_ = FALSE; + gint _tmp1_; + void* _tmp2_; + gboolean _tmp3_ = FALSE; _tmp0_ = self->priv->list; dest = dest - 1; - _tmp1_ = gee_tim_sort_slice_pop_last (a); - _tmp0_[dest] = _tmp1_; + _tmp1_ = dest; + _tmp2_ = gee_tim_sort_slice_pop_last (a); + _tmp0_[_tmp1_] = _tmp2_; if (a->length == 0) { - _tmp2_ = TRUE; + _tmp3_ = TRUE; } else { - _tmp2_ = b->length == 1; + _tmp3_ = b->length == 1; } - if (_tmp2_) { + if (_tmp3_) { { - void** _tmp3_; void** _tmp4_; + void** _tmp5_; _vala_assert (a->length >= 0, "a.length >= 0"); _vala_assert (b->length >= 0, "b.length >= 0"); - _tmp3_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (a, _tmp3_, a->index, dest - a->length, a->length); _tmp4_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (b, _tmp4_, b->index, (dest - a->length) - b->length, b->length); + gee_tim_sort_slice_merge_in_reversed (a, _tmp4_, a->index, dest - a->length, a->length); + _tmp5_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (b, _tmp5_, b->index, (dest - a->length) - b->length, b->length); } _gee_tim_sort_slice_free0 (a); _gee_tim_sort_slice_free0 (b); @@ -1838,202 +1447,210 @@ while (TRUE) { gint a_count = 0; gint b_count = 0; - gint _tmp17_; - gint _tmp36_; + gint _tmp20_; + gint _tmp41_; a_count = 0; b_count = 0; while (TRUE) { - void* _tmp5_; void* _tmp6_; - _tmp5_ = gee_tim_sort_slice_peek_last (b); - _tmp6_ = gee_tim_sort_slice_peek_last (a); - if (gee_tim_sort_lower_than (self, _tmp5_, _tmp6_)) { - void** _tmp7_; - void* _tmp8_; - gint _tmp11_; - _tmp7_ = self->priv->list; + void* _tmp7_; + _tmp6_ = gee_tim_sort_slice_peek_last (b); + _tmp7_ = gee_tim_sort_slice_peek_last (a); + if (gee_tim_sort_lower_than (self, _tmp6_, _tmp7_)) { + void** _tmp8_; + gint _tmp9_; + void* _tmp10_; + gint _tmp13_; + _tmp8_ = self->priv->list; dest = dest - 1; - _tmp8_ = gee_tim_sort_slice_pop_last (a); - _tmp7_[dest] = _tmp8_; + _tmp9_ = dest; + _tmp10_ = gee_tim_sort_slice_pop_last (a); + _tmp8_[_tmp9_] = _tmp10_; if (a->length == 0) { { - void** _tmp9_; - void** _tmp10_; + void** _tmp11_; + void** _tmp12_; _vala_assert (a->length >= 0, "a.length >= 0"); _vala_assert (b->length >= 0, "b.length >= 0"); - _tmp9_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (a, _tmp9_, a->index, dest - a->length, a->length); - _tmp10_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (b, _tmp10_, b->index, (dest - a->length) - b->length, b->length); + _tmp11_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (a, _tmp11_, a->index, dest - a->length, a->length); + _tmp12_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (b, _tmp12_, b->index, (dest - a->length) - b->length, b->length); } _gee_tim_sort_slice_free0 (a); _gee_tim_sort_slice_free0 (b); return; } - _tmp11_ = a_count; - a_count = _tmp11_ + 1; + _tmp13_ = a_count; + a_count = _tmp13_ + 1; b_count = 0; if (a_count >= minimum_gallop) { break; } } else { - void** _tmp12_; - void* _tmp13_; - gint _tmp16_; - _tmp12_ = self->priv->list; + void** _tmp14_; + gint _tmp15_; + void* _tmp16_; + gint _tmp19_; + _tmp14_ = self->priv->list; dest = dest - 1; - _tmp13_ = gee_tim_sort_slice_pop_last (b); - _tmp12_[dest] = _tmp13_; + _tmp15_ = dest; + _tmp16_ = gee_tim_sort_slice_pop_last (b); + _tmp14_[_tmp15_] = _tmp16_; if (b->length == 1) { { - void** _tmp14_; - void** _tmp15_; + void** _tmp17_; + void** _tmp18_; _vala_assert (a->length >= 0, "a.length >= 0"); _vala_assert (b->length >= 0, "b.length >= 0"); - _tmp14_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (a, _tmp14_, a->index, dest - a->length, a->length); - _tmp15_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (b, _tmp15_, b->index, (dest - a->length) - b->length, b->length); + _tmp17_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (a, _tmp17_, a->index, dest - a->length, a->length); + _tmp18_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (b, _tmp18_, b->index, (dest - a->length) - b->length, b->length); } _gee_tim_sort_slice_free0 (a); _gee_tim_sort_slice_free0 (b); return; } - _tmp16_ = b_count; - b_count = _tmp16_ + 1; + _tmp19_ = b_count; + b_count = _tmp19_ + 1; a_count = 0; if (b_count >= minimum_gallop) { break; } } } - _tmp17_ = minimum_gallop; - minimum_gallop = _tmp17_ + 1; + _tmp20_ = minimum_gallop; + minimum_gallop = _tmp20_ + 1; while (TRUE) { - gint _tmp18_ = 0; + gint _tmp21_ = 0; gint k = 0; - void* _tmp19_; - void** _tmp20_; + void* _tmp22_; void** _tmp23_; - void* _tmp24_; - void* _tmp27_; - void** _tmp28_; - void** _tmp31_; - void* _tmp32_; - gboolean _tmp35_ = FALSE; + void** _tmp26_; + gint _tmp27_; + void* _tmp28_; + void* _tmp31_; + void** _tmp32_; + void** _tmp35_; + gint _tmp36_; + void* _tmp37_; + gboolean _tmp40_ = FALSE; if (minimum_gallop > 1) { - _tmp18_ = 1; + _tmp21_ = 1; } else { - _tmp18_ = 0; + _tmp21_ = 0; } - minimum_gallop -= _tmp18_; + minimum_gallop -= _tmp21_; self->priv->minimum_gallop = minimum_gallop; - _tmp19_ = gee_tim_sort_slice_peek_last (b); - k = gee_tim_sort_gallop_rightmost (self, _tmp19_, a, a->length - 1); + _tmp22_ = gee_tim_sort_slice_peek_last (b); + k = gee_tim_sort_gallop_rightmost (self, _tmp22_, a, a->length - 1); a_count = a->length - k; - _tmp20_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (a, _tmp20_, a->index + k, dest - a_count, a_count); + _tmp23_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (a, _tmp23_, a->index + k, dest - a_count, a_count); dest -= a_count; gee_tim_sort_slice_shorten_end (a, a_count); if (a->length == 0) { { - void** _tmp21_; - void** _tmp22_; + void** _tmp24_; + void** _tmp25_; _vala_assert (a->length >= 0, "a.length >= 0"); _vala_assert (b->length >= 0, "b.length >= 0"); - _tmp21_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (a, _tmp21_, a->index, dest - a->length, a->length); - _tmp22_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (b, _tmp22_, b->index, (dest - a->length) - b->length, b->length); + _tmp24_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (a, _tmp24_, a->index, dest - a->length, a->length); + _tmp25_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (b, _tmp25_, b->index, (dest - a->length) - b->length, b->length); } _gee_tim_sort_slice_free0 (a); _gee_tim_sort_slice_free0 (b); return; } - _tmp23_ = self->priv->list; + _tmp26_ = self->priv->list; dest = dest - 1; - _tmp24_ = gee_tim_sort_slice_pop_last (b); - _tmp23_[dest] = _tmp24_; + _tmp27_ = dest; + _tmp28_ = gee_tim_sort_slice_pop_last (b); + _tmp26_[_tmp27_] = _tmp28_; if (b->length == 1) { { - void** _tmp25_; - void** _tmp26_; + void** _tmp29_; + void** _tmp30_; _vala_assert (a->length >= 0, "a.length >= 0"); _vala_assert (b->length >= 0, "b.length >= 0"); - _tmp25_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (a, _tmp25_, a->index, dest - a->length, a->length); - _tmp26_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (b, _tmp26_, b->index, (dest - a->length) - b->length, b->length); + _tmp29_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (a, _tmp29_, a->index, dest - a->length, a->length); + _tmp30_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (b, _tmp30_, b->index, (dest - a->length) - b->length, b->length); } _gee_tim_sort_slice_free0 (a); _gee_tim_sort_slice_free0 (b); return; } - _tmp27_ = gee_tim_sort_slice_peek_last (a); - k = gee_tim_sort_gallop_leftmost (self, _tmp27_, b, b->length - 1); + _tmp31_ = gee_tim_sort_slice_peek_last (a); + k = gee_tim_sort_gallop_leftmost (self, _tmp31_, b, b->length - 1); b_count = b->length - k; - _tmp28_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (b, _tmp28_, b->index + k, dest - b_count, b_count); + _tmp32_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (b, _tmp32_, b->index + k, dest - b_count, b_count); dest -= b_count; gee_tim_sort_slice_shorten_end (b, b_count); if (b->length <= 1) { { - void** _tmp29_; - void** _tmp30_; + void** _tmp33_; + void** _tmp34_; _vala_assert (a->length >= 0, "a.length >= 0"); _vala_assert (b->length >= 0, "b.length >= 0"); - _tmp29_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (a, _tmp29_, a->index, dest - a->length, a->length); - _tmp30_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (b, _tmp30_, b->index, (dest - a->length) - b->length, b->length); + _tmp33_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (a, _tmp33_, a->index, dest - a->length, a->length); + _tmp34_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (b, _tmp34_, b->index, (dest - a->length) - b->length, b->length); } _gee_tim_sort_slice_free0 (a); _gee_tim_sort_slice_free0 (b); return; } - _tmp31_ = self->priv->list; + _tmp35_ = self->priv->list; dest = dest - 1; - _tmp32_ = gee_tim_sort_slice_pop_last (a); - _tmp31_[dest] = _tmp32_; + _tmp36_ = dest; + _tmp37_ = gee_tim_sort_slice_pop_last (a); + _tmp35_[_tmp36_] = _tmp37_; if (a->length == 0) { { - void** _tmp33_; - void** _tmp34_; + void** _tmp38_; + void** _tmp39_; _vala_assert (a->length >= 0, "a.length >= 0"); _vala_assert (b->length >= 0, "b.length >= 0"); - _tmp33_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (a, _tmp33_, a->index, dest - a->length, a->length); - _tmp34_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (b, _tmp34_, b->index, (dest - a->length) - b->length, b->length); + _tmp38_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (a, _tmp38_, a->index, dest - a->length, a->length); + _tmp39_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (b, _tmp39_, b->index, (dest - a->length) - b->length, b->length); } _gee_tim_sort_slice_free0 (a); _gee_tim_sort_slice_free0 (b); return; } if (a_count < GEE_TIM_SORT_MINIMUM_GALLOP) { - _tmp35_ = b_count < GEE_TIM_SORT_MINIMUM_GALLOP; + _tmp40_ = b_count < GEE_TIM_SORT_MINIMUM_GALLOP; } else { - _tmp35_ = FALSE; + _tmp40_ = FALSE; } - if (_tmp35_) { + if (_tmp40_) { break; } } - _tmp36_ = minimum_gallop; - minimum_gallop = _tmp36_ + 1; + _tmp41_ = minimum_gallop; + minimum_gallop = _tmp41_ + 1; self->priv->minimum_gallop = minimum_gallop; } } - __finally6: + __finally0: { - void** _tmp37_; - void** _tmp38_; + void** _tmp42_; + void** _tmp43_; _vala_assert (a->length >= 0, "a.length >= 0"); _vala_assert (b->length >= 0, "b.length >= 0"); - _tmp37_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (a, _tmp37_, a->index, dest - a->length, a->length); - _tmp38_ = self->priv->list; - gee_tim_sort_slice_merge_in_reversed (b, _tmp38_, b->index, (dest - a->length) - b->length, b->length); + _tmp42_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (a, _tmp42_, a->index, dest - a->length, a->length); + _tmp43_ = self->priv->list; + gee_tim_sort_slice_merge_in_reversed (b, _tmp43_, b->index, (dest - a->length) - b->length, b->length); } _gee_tim_sort_slice_free0 (a); _gee_tim_sort_slice_free0 (b); @@ -2042,7 +1659,7 @@ return; } -G_GNUC_INTERNAL GeeTimSort* + G_GNUC_INTERNAL GeeTimSort* gee_tim_sort_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -2056,7 +1673,7 @@ return self; } -G_GNUC_INTERNAL GeeTimSort* + G_GNUC_INTERNAL GeeTimSort* gee_tim_sort_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func) @@ -2081,15 +1698,20 @@ static void gee_tim_sort_slice_copy (GeeTimSortSlice* self) { - void** _tmp0_; - void* _tmp1_; + gsize size = 0UL; + void* _tmp0_; + void** _tmp1_; void** _tmp2_; + void** _tmp3_; g_return_if_fail (self != NULL); - _tmp0_ = self->list; - _tmp1_ = g_memdup (&_tmp0_[self->index], ((guint) sizeof (gpointer)) * self->length); - self->new_list = _tmp1_; - _tmp2_ = self->new_list; - self->list = _tmp2_; + size = (gsize) (sizeof (gpointer) * self->length); + _tmp0_ = g_malloc (size); + self->new_list = _tmp0_; + _tmp1_ = self->new_list; + _tmp2_ = self->list; + memcpy (_tmp1_, &_tmp2_[self->index], size); + _tmp3_ = self->new_list; + self->list = _tmp3_; self->index = 0; } @@ -2317,15 +1939,23 @@ * SODA (Fourth Annual ACM-SIAM Symposium on Discrete Algorithms), pp * 467-474, Austin, Texas, 25-27 January 1993. */ -G_GNUC_INTERNAL GType +static GType +gee_tim_sort_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTimSortClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tim_sort_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTimSort), 0, (GInstanceInitFunc) gee_tim_sort_instance_init, NULL }; + GType gee_tim_sort_type_id; + gee_tim_sort_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTimSort", &g_define_type_info, 0); + GeeTimSort_private_offset = g_type_add_instance_private (gee_tim_sort_type_id, sizeof (GeeTimSortPrivate)); + return gee_tim_sort_type_id; +} + + G_GNUC_INTERNAL GType gee_tim_sort_get_type (void) { static volatile gsize gee_tim_sort_type_id__volatile = 0; if (g_once_init_enter (&gee_tim_sort_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTimSortClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tim_sort_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTimSort), 0, (GInstanceInitFunc) gee_tim_sort_instance_init, NULL }; GType gee_tim_sort_type_id; - gee_tim_sort_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTimSort", &g_define_type_info, 0); - GeeTimSort_private_offset = g_type_add_instance_private (gee_tim_sort_type_id, sizeof (GeeTimSortPrivate)); + gee_tim_sort_type_id = gee_tim_sort_get_type_once (); g_once_init_leave (&gee_tim_sort_type_id__volatile, gee_tim_sort_type_id); } return gee_tim_sort_type_id__volatile; @@ -2385,7 +2015,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/timsort.vala libgee-0.8-0.20.4/gee/timsort.vala --- libgee-0.8-0.20.3/gee/timsort.vala 2016-09-14 06:10:59.000000000 +0000 +++ libgee-0.8-0.20.4/gee/timsort.vala 2021-03-17 11:24:00.000000000 +0000 @@ -655,7 +655,9 @@ } public void copy () { - new_list = Memory.dup (&list[index], (uint) sizeof (G) * length); + size_t size = sizeof (G) * length; + new_list = malloc (size); + Memory.copy (new_list, &list[index], size); list = new_list; index = 0; } diff -Nru libgee-0.8-0.20.3/gee/traversable.c libgee-0.8-0.20.4/gee/traversable.c --- libgee-0.8-0.20.3/gee/traversable.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/traversable.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* traversable.c generated by valac 0.46.6, the Vala compiler +/* traversable.c generated by valac 0.52.0, the Vala compiler * generated from traversable.vala, do not modify */ /* traversable.vala @@ -23,58 +23,9 @@ * Maciej Piechotka */ -#include +#include "gee.h" #include - -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeLazy* (*GeeUnfoldFunc) (gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; +#include #define GEE_TYPE_STREAM_ITERATOR (gee_stream_iterator_get_type ()) #define GEE_STREAM_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_STREAM_ITERATOR, GeeStreamIterator)) @@ -86,12 +37,10 @@ typedef struct _GeeStreamIterator GeeStreamIterator; typedef struct _GeeStreamIteratorClass GeeStreamIteratorClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) -#define _a_destroy_func0(var) (((var == NULL) || (a_destroy_func == NULL)) ? NULL : (var = (a_destroy_func (var), NULL))) typedef struct _Block15Data Block15Data; typedef struct _Block16Data Block16Data; #define _gee_lazy_unref0(var) ((var == NULL) ? NULL : (var = (gee_lazy_unref (var), NULL))) typedef struct _Block17Data Block17Data; -typedef gpointer (*GeeLazyFunc) (gpointer user_data); typedef struct _Block18Data Block18Data; typedef struct _Block19Data Block19Data; typedef struct _Block20Data Block20Data; @@ -124,118 +73,12 @@ typedef struct _Block26Data Block26Data; typedef struct _Block27Data Block27Data; typedef struct _Block28Data Block28Data; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - -#define GEE_TYPE_ABSTRACT_LIST (gee_abstract_list_get_type ()) -#define GEE_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractList)) -#define GEE_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) -#define GEE_IS_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_IS_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_ABSTRACT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) - -typedef struct _GeeAbstractList GeeAbstractList; -typedef struct _GeeAbstractListClass GeeAbstractListClass; - -#define GEE_TYPE_ABSTRACT_BIDIR_LIST (gee_abstract_bidir_list_get_type ()) -#define GEE_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirList)) -#define GEE_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) -#define GEE_IS_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_IS_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_ABSTRACT_BIDIR_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) - -typedef struct _GeeAbstractBidirList GeeAbstractBidirList; -typedef struct _GeeAbstractBidirListClass GeeAbstractBidirListClass; - -#define GEE_TYPE_ARRAY_LIST (gee_array_list_get_type ()) -#define GEE_ARRAY_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ARRAY_LIST, GeeArrayList)) -#define GEE_ARRAY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ARRAY_LIST, GeeArrayListClass)) -#define GEE_IS_ARRAY_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ARRAY_LIST)) -#define GEE_IS_ARRAY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ARRAY_LIST)) -#define GEE_ARRAY_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ARRAY_LIST, GeeArrayListClass)) - -typedef struct _GeeArrayList GeeArrayList; -typedef struct _GeeArrayListClass GeeArrayListClass; typedef struct _Block29Data Block29Data; -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_LIST (gee_list_get_type ()) -#define GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST, GeeList)) -#define GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST)) -#define GEE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST, GeeListIface)) - -typedef struct _GeeList GeeList; -typedef struct _GeeListIface GeeListIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - struct _Block15Data { int _ref_count_; GeeTraversable* self; @@ -361,85 +204,6 @@ GeeArrayList* _result_; }; -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -struct _GeeListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeList* self); - GDestroyNotify (*get_g_destroy_func) (GeeList* self); - GeeListIterator* (*list_iterator) (GeeList* self); - gpointer (*get) (GeeList* self, gint index); - void (*set) (GeeList* self, gint index, gconstpointer item); - gint (*index_of) (GeeList* self, gconstpointer item); - void (*insert) (GeeList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeList* self, gint index); - GeeList* (*slice) (GeeList* self, gint start, gint stop); - gpointer (*first) (GeeList* self); - gpointer (*last) (GeeList* self); - void (*insert_all) (GeeList* self, gint index, GeeCollection* collection); - void (*sort) (GeeList* self, GCompareDataFunc compare_func, gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify); - GeeList* (*get_read_only_view) (GeeList* self); -}; - -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -gboolean gee_traversable_foreach (GeeTraversable* self, - GeeForallFunc f, - gpointer f_target); -GeeIterator* gee_traversable_stream (GeeTraversable* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeStreamFunc f, - gpointer f_target, - GDestroyNotify f_target_destroy_notify); static GeeIterator* gee_traversable_real_stream (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, @@ -447,8 +211,7 @@ GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); -GType gee_iterable_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GeeStreamIterator* gee_stream_iterator_new (GType a_type, + G_GNUC_INTERNAL GeeStreamIterator* gee_stream_iterator_new (GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GType g_type, @@ -458,7 +221,7 @@ GeeStreamFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeStreamIterator* gee_stream_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeStreamIterator* gee_stream_iterator_construct (GType object_type, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, @@ -469,16 +232,7 @@ GeeStreamFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GType gee_stream_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeStreamIterator, g_object_unref) -GeeIterator* gee_iterable_iterator (GeeIterable* self); -gpointer gee_traversable_fold (GeeTraversable* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeFoldFunc f, - gpointer f_target, - gpointer seed); + G_GNUC_INTERNAL GType gee_stream_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gpointer gee_traversable_real_fold (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, @@ -492,12 +246,6 @@ gpointer item); static gboolean ___lambda11__gee_forall_func (gpointer g, gpointer self); -GeeIterator* gee_traversable_map (GeeTraversable* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeMapFunc f, - gpointer f_target); static GeeIterator* gee_traversable_real_map (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, @@ -513,32 +261,11 @@ static Block17Data* block17_data_ref (Block17Data* _data17_); static void block17_data_unref (void * _userdata_); static gpointer ___lambda13_ (Block17Data* _data17_); -gpointer gee_lazy_get (GeeLazy* self); static gpointer ____lambda13__gee_lazy_func (gpointer self); -GeeLazy* gee_lazy_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeLazyFunc func, - gpointer func_target, - GDestroyNotify func_target_destroy_notify); -GeeLazy* gee_lazy_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeLazyFunc func, - gpointer func_target, - GDestroyNotify func_target_destroy_notify); static GeeTraversableStream ___lambda12__gee_stream_func (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer self); -GeeIterator* gee_traversable_scan (GeeTraversable* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeFoldFunc f, - gpointer f_target, - gpointer seed); static GeeIterator* gee_traversable_real_scan (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, @@ -554,25 +281,12 @@ GeeLazy* * val); static Block19Data* block19_data_ref (Block19Data* _data19_); static void block19_data_unref (void * _userdata_); -GeeLazy* gee_lazy_new_from_value (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer item); -GeeLazy* gee_lazy_construct_from_value (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - gconstpointer item); static gpointer ___lambda15_ (Block19Data* _data19_); static gpointer ____lambda15__gee_lazy_func (gpointer self); static GeeTraversableStream ___lambda14__gee_stream_func (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer self); -GeeIterator* gee_traversable_filter (GeeTraversable* self, - GeePredicate pred, - gpointer pred_target, - GDestroyNotify pred_target_destroy_notify); static GeeIterator* gee_traversable_real_filter (GeeTraversable* self, GeePredicate pred, gpointer pred_target, @@ -587,9 +301,6 @@ GeeLazy* g, GeeLazy* * lazy, gpointer self); -GeeIterator* gee_traversable_chop (GeeTraversable* self, - gint offset, - gint length); static GeeIterator* gee_traversable_real_chop (GeeTraversable* self, gint offset, gint length); @@ -603,13 +314,6 @@ GeeLazy* g, GeeLazy* * lazy, gpointer self); -GeeIterator* gee_traversable_flat_map (GeeTraversable* self, - GType a_type, - GBoxedCopyFunc a_dup_func, - GDestroyNotify a_destroy_func, - GeeFlatMapFunc f, - gpointer f_target, - GDestroyNotify f_target_destroy_notify); static GeeIterator* gee_traversable_real_flat_map (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, @@ -625,11 +329,8 @@ GeeLazy* * val); static Block23Data* block23_data_ref (Block23Data* _data23_); static void block23_data_unref (void * _userdata_); -gboolean gee_iterator_next (GeeIterator* self); static gpointer ____lambda19_ (Block23Data* _data23_); -gpointer gee_iterator_get (GeeIterator* self); static gpointer _____lambda19__gee_lazy_func (gpointer self); -gboolean gee_iterator_get_valid (GeeIterator* self); static gpointer ____lambda20_ (Block23Data* _data23_); static gpointer _____lambda20__gee_lazy_func (gpointer self); static gpointer ____lambda21_ (Block23Data* _data23_); @@ -638,9 +339,6 @@ GeeLazy* g, GeeLazy* * lazy, gpointer self); -GeeIterator** gee_traversable_tee (GeeTraversable* self, - guint forks, - gint* result_length1); static GeeIterator** gee_traversable_real_tee (GeeTraversable* self, guint forks, gint* result_length1); @@ -648,53 +346,47 @@ static void block24_data_unref (void * _userdata_); static gpointer ______lambda22_ (Block24Data* _data24_); static gpointer _______lambda22__gee_lazy_func (gpointer self); -G_GNUC_INTERNAL gpointer gee_tee_iterator_node_ref (gpointer instance); -G_GNUC_INTERNAL void gee_tee_iterator_node_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_tee_iterator_param_spec_node (const gchar* name, + G_GNUC_INTERNAL gpointer gee_tee_iterator_node_ref (gpointer instance); + G_GNUC_INTERNAL void gee_tee_iterator_node_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_tee_iterator_param_spec_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_tee_iterator_value_set_node (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_tee_iterator_value_take_node (GValue* value, + G_GNUC_INTERNAL void gee_tee_iterator_value_set_node (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_tee_iterator_value_take_node (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_tee_iterator_value_get_node (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_tee_iterator_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTeeIteratorNode, gee_tee_iterator_node_unref) -G_GNUC_INTERNAL GeeLazy* gee_tee_iterator_create_nodes (GType g_type, + G_GNUC_INTERNAL gpointer gee_tee_iterator_value_get_node (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_tee_iterator_node_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeLazy* gee_tee_iterator_create_nodes (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iterator, GeeLazy* dependent); -G_GNUC_INTERNAL GeeTeeIteratorNode* gee_tee_iterator_node_new (GType g_type, + G_GNUC_INTERNAL GeeTeeIteratorNode* gee_tee_iterator_node_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeLazy* data, GeeLazy* next); -G_GNUC_INTERNAL GeeTeeIteratorNode* gee_tee_iterator_node_construct (GType object_type, + G_GNUC_INTERNAL GeeTeeIteratorNode* gee_tee_iterator_node_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeLazy* data, GeeLazy* next); -G_GNUC_INTERNAL GeeTeeIterator* gee_tee_iterator_new (GType g_type, + G_GNUC_INTERNAL GeeTeeIterator* gee_tee_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeTeeIteratorNode* head, gboolean valid); -G_GNUC_INTERNAL GeeTeeIterator* gee_tee_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeTeeIterator* gee_tee_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeTeeIteratorNode* head, gboolean valid); -G_GNUC_INTERNAL GType gee_tee_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTeeIterator, g_object_unref) -gpointer gee_traversable_first_match (GeeTraversable* self, - GeePredicate pred, - gpointer pred_target, - GDestroyNotify pred_target_destroy_notify); + G_GNUC_INTERNAL GType gee_tee_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gpointer gee_traversable_real_first_match (GeeTraversable* self, GeePredicate pred, gpointer pred_target, @@ -705,18 +397,10 @@ gpointer item); static gboolean ___lambda25__gee_forall_func (gpointer g, gpointer self); -gboolean gee_traversable_any_match (GeeTraversable* self, - GeePredicate pred, - gpointer pred_target, - GDestroyNotify pred_target_destroy_notify); static gboolean gee_traversable_real_any_match (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); -gboolean gee_traversable_all_match (GeeTraversable* self, - GeePredicate pred, - gpointer pred_target, - GDestroyNotify pred_target_destroy_notify); static gboolean gee_traversable_real_all_match (GeeTraversable* self, GeePredicate pred, gpointer pred_target, @@ -727,10 +411,6 @@ gpointer item); static gboolean ___lambda26__gee_forall_func (gpointer g, gpointer self); -gpointer gee_traversable_max (GeeTraversable* self, - GCompareDataFunc compare, - gpointer compare_target, - GDestroyNotify compare_target_destroy_notify); static gpointer gee_traversable_real_max (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, @@ -741,10 +421,6 @@ gpointer item); static gboolean ___lambda27__gee_forall_func (gpointer g, gpointer self); -gpointer gee_traversable_min (GeeTraversable* self, - GCompareDataFunc compare, - gpointer compare_target, - GDestroyNotify compare_target_destroy_notify); static gpointer gee_traversable_real_min (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, @@ -755,52 +431,17 @@ gpointer item); static gboolean ___lambda28__gee_forall_func (gpointer g, gpointer self); -GeeIterator* gee_traversable_order_by (GeeTraversable* self, - GCompareDataFunc compare, - gpointer compare_target, - GDestroyNotify compare_target_destroy_notify); static GeeIterator* gee_traversable_real_order_by (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_abstract_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractList, g_object_unref) -GType gee_abstract_bidir_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirList, g_object_unref) -GType gee_array_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeArrayList, g_object_unref) static Block29Data* block29_data_ref (Block29Data* _data29_); static void block29_data_unref (void * _userdata_); -GeeArrayList* gee_array_list_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeArrayList* gee_array_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); static gboolean __lambda48_ (Block29Data* _data29_, gpointer item); -gboolean gee_abstract_collection_add (GeeAbstractCollection* self, - gconstpointer item); static gboolean ___lambda48__gee_forall_func (gpointer g, gpointer self); -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_get_type (void) G_GNUC_CONST; -void gee_list_sort (GeeList* self, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); -GeeIterator* gee_abstract_collection_iterator (GeeAbstractCollection* self); -GType gee_traversable_get_element_type (GeeTraversable* self); +static GType gee_traversable_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -808,21 +449,29 @@ gint array_length, GDestroyNotify destroy_func); +static GType +gee_traversable_stream_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_TRAVERSABLE_STREAM_YIELD, "GEE_TRAVERSABLE_STREAM_YIELD", "yield"}, {GEE_TRAVERSABLE_STREAM_CONTINUE, "GEE_TRAVERSABLE_STREAM_CONTINUE", "continue"}, {GEE_TRAVERSABLE_STREAM_END, "GEE_TRAVERSABLE_STREAM_END", "end"}, {GEE_TRAVERSABLE_STREAM_WAIT, "GEE_TRAVERSABLE_STREAM_WAIT", "wait"}, {0, NULL, NULL}}; + GType gee_traversable_stream_type_id; + gee_traversable_stream_type_id = g_enum_register_static ("GeeTraversableStream", values); + return gee_traversable_stream_type_id; +} + GType gee_traversable_stream_get_type (void) { static volatile gsize gee_traversable_stream_type_id__volatile = 0; if (g_once_init_enter (&gee_traversable_stream_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_TRAVERSABLE_STREAM_YIELD, "GEE_TRAVERSABLE_STREAM_YIELD", "yield"}, {GEE_TRAVERSABLE_STREAM_CONTINUE, "GEE_TRAVERSABLE_STREAM_CONTINUE", "continue"}, {GEE_TRAVERSABLE_STREAM_END, "GEE_TRAVERSABLE_STREAM_END", "end"}, {GEE_TRAVERSABLE_STREAM_WAIT, "GEE_TRAVERSABLE_STREAM_WAIT", "wait"}, {0, NULL, NULL}}; GType gee_traversable_stream_type_id; - gee_traversable_stream_type_id = g_enum_register_static ("GeeTraversableStream", values); + gee_traversable_stream_type_id = gee_traversable_stream_get_type_once (); g_once_init_leave (&gee_traversable_stream_type_id__volatile, gee_traversable_stream_type_id); } return gee_traversable_stream_type_id__volatile; } /** - * Apply function to each element returned by iterator untill last element + * Apply function to each element returned by iterator until last element * or function return ''false''. * * ''{@link Iterator} implementation:'' Operation moves the iterator @@ -839,8 +488,13 @@ GeeForallFunc f, gpointer f_target) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->foreach (self, f, f_target); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->foreach) { + return _iface_->foreach (self, f, f_target); + } + return FALSE; } /** @@ -955,10 +609,6 @@ g_assert_not_reached (); } } - (f_target_destroy_notify == NULL) ? NULL : (f_target_destroy_notify (f_target), NULL); - f = NULL; - f_target = NULL; - f_target_destroy_notify = NULL; } GeeIterator* @@ -970,8 +620,13 @@ gpointer f_target, GDestroyNotify f_target_destroy_notify) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->stream (self, a_type, a_dup_func, a_destroy_func, f, f_target, f_target_destroy_notify); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->stream) { + return _iface_->stream (self, a_type, a_dup_func, a_destroy_func, f, f_target, f_target_destroy_notify); + } + return NULL; } /** @@ -1009,7 +664,7 @@ a_type = _data15_->a_type; a_dup_func = _data15_->a_dup_func; a_destroy_func = _data15_->a_destroy_func; - _a_destroy_func0 (_data15_->seed); + ((_data15_->seed == NULL) || (a_destroy_func == NULL)) ? NULL : (_data15_->seed = (a_destroy_func (_data15_->seed), NULL)); _g_object_unref0 (self); g_slice_free (Block15Data, _data15_); } @@ -1036,7 +691,7 @@ _tmp1_ = _data15_->seed; _data15_->seed = NULL; _tmp2_ = _data15_->f (_tmp0_, _tmp1_, _data15_->f_target); - _a_destroy_func0 (_data15_->seed); + ((_data15_->seed == NULL) || (a_destroy_func == NULL)) ? NULL : (_data15_->seed = (a_destroy_func (_data15_->seed), NULL)); _data15_->seed = _tmp2_; result = TRUE; ((item == NULL) || (GEE_TRAVERSABLE_GET_INTERFACE (self)->get_g_destroy_func (self) == NULL)) ? NULL : (item = (GEE_TRAVERSABLE_GET_INTERFACE (self)->get_g_destroy_func (self) (item), NULL)); @@ -1072,7 +727,7 @@ _data15_->a_destroy_func = a_destroy_func; _data15_->f = f; _data15_->f_target = f_target; - _a_destroy_func0 (_data15_->seed); + ((_data15_->seed == NULL) || (a_destroy_func == NULL)) ? NULL : (_data15_->seed = (a_destroy_func (_data15_->seed), NULL)); _data15_->seed = seed; gee_traversable_foreach (self, ___lambda11__gee_forall_func, _data15_); _tmp0_ = _data15_->seed; @@ -1092,8 +747,13 @@ gpointer f_target, gpointer seed) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->fold (self, a_type, a_dup_func, a_destroy_func, f, f_target, seed); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->fold) { + return _iface_->fold (self, a_type, a_dup_func, a_destroy_func, f, f_target, seed); + } + return NULL; } /** @@ -1194,7 +854,7 @@ tmp = NULL; _tmp2_ = _data16_->f (_tmp1_, _data16_->f_target); result = _tmp2_; - _a_destroy_func0 (tmp); + ((tmp == NULL) || (a_destroy_func == NULL)) ? NULL : (tmp = (a_destroy_func (tmp), NULL)); return result; } @@ -1278,13 +938,6 @@ g_assert_not_reached (); } } - if (val) { - *val = _vala_val; - } else { - _gee_lazy_unref0 (_vala_val); - } - block17_data_unref (_data17_); - _data17_ = NULL; } static GeeTraversableStream @@ -1332,8 +985,13 @@ GeeMapFunc f, gpointer f_target) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->map (self, a_type, a_dup_func, a_destroy_func, f, f_target); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->map) { + return _iface_->map (self, a_type, a_dup_func, a_destroy_func, f, f_target); + } + return NULL; } /** @@ -1345,9 +1003,9 @@ * * Note: Default implementation uses {@link stream}. * - * Note: When the method is called on {@link Iterator} using the parent - * iterator is not allowed befor the inner iterator - * {@link Iterator.next} return false and then it points on its last + * Note: When the method is called on {@link Iterator}, using the parent + * iterator is not allowed before the inner iterator + * {@link Iterator.next} returns false and then it points to its last * element. The resulting iterator is {@link Iterator.valid}. * * @param f Folding function @@ -1375,7 +1033,7 @@ a_type = _data18_->a_type; a_dup_func = _data18_->a_dup_func; a_destroy_func = _data18_->a_destroy_func; - _a_destroy_func0 (_data18_->seed); + ((_data18_->seed == NULL) || (a_destroy_func == NULL)) ? NULL : (_data18_->seed = (a_destroy_func (_data18_->seed), NULL)); _g_object_unref0 (self); g_slice_free (Block18Data, _data18_); } @@ -1438,11 +1096,11 @@ _tmp2_ = _data18_->seed; _data18_->seed = NULL; _tmp3_ = _data18_->f (_tmp1_, _tmp2_, _data18_->f_target); - _a_destroy_func0 (_data18_->seed); + ((_data18_->seed == NULL) || (a_destroy_func == NULL)) ? NULL : (_data18_->seed = (a_destroy_func (_data18_->seed), NULL)); _data18_->seed = _tmp3_; _tmp4_ = ((_data18_->seed != NULL) && (a_dup_func != NULL)) ? a_dup_func ((gpointer) _data18_->seed) : ((gpointer) _data18_->seed); result = _tmp4_; - _a_destroy_func0 (tmp); + ((tmp == NULL) || (a_destroy_func == NULL)) ? NULL : (tmp = (a_destroy_func (tmp), NULL)); return result; } @@ -1543,13 +1201,6 @@ g_assert_not_reached (); } } - if (val) { - *val = _vala_val; - } else { - _gee_lazy_unref0 (_vala_val); - } - block19_data_unref (_data19_); - _data19_ = NULL; } static GeeTraversableStream @@ -1583,7 +1234,7 @@ _data18_->a_destroy_func = a_destroy_func; _data18_->f = f; _data18_->f_target = f_target; - _a_destroy_func0 (_data18_->seed); + ((_data18_->seed == NULL) || (a_destroy_func == NULL)) ? NULL : (_data18_->seed = (a_destroy_func (_data18_->seed), NULL)); _data18_->seed = seed; _data18_->seed_emitted = FALSE; _tmp0_ = gee_traversable_stream (self, a_type, (GBoxedCopyFunc) a_dup_func, (GDestroyNotify) a_destroy_func, ___lambda14__gee_stream_func, block18_data_ref (_data18_), block18_data_unref); @@ -1602,20 +1253,25 @@ gpointer f_target, gpointer seed) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->scan (self, a_type, a_dup_func, a_destroy_func, f, f_target, seed); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->scan) { + return _iface_->scan (self, a_type, a_dup_func, a_destroy_func, f, f_target, seed); + } + return NULL; } /** - * Creates a new iterator that contains only values that fullfills the + * Creates a new iterator that contains only values that fulfills the * predicate. * * Note: When the method is called on {@link Iterator} using the parent - * iterator is not allowed befor the inner iterator + * iterator is not allowed before the inner iterator * {@link Iterator.next} return false and then it points on its last * element. The resulting iterator is {@link Iterator.valid} if parent * iterator is {@link Iterator.valid} and value it is pointing on - * fullfills the predicate. + * fulfills the predicate. * * @param pred predicate to check should the value be retained * @return Iterator containing values of subsequent values of seed @@ -1729,12 +1385,6 @@ g_assert_not_reached (); } } - _gee_lazy_unref0 (item); - if (val) { - *val = _vala_val; - } else { - _gee_lazy_unref0 (_vala_val); - } } static GeeTraversableStream @@ -1780,8 +1430,13 @@ gpointer pred_target, GDestroyNotify pred_target_destroy_notify) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->filter (self, pred, pred_target, pred_target_destroy_notify); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->filter) { + return _iface_->filter (self, pred, pred_target, pred_target_destroy_notify); + } + return NULL; } /** @@ -1935,12 +1590,6 @@ g_assert_not_reached (); } } - _gee_lazy_unref0 (item); - if (val) { - *val = _vala_val; - } else { - _gee_lazy_unref0 (_vala_val); - } } static GeeTraversableStream @@ -1980,13 +1629,18 @@ gint offset, gint length) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->chop (self, offset, length); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->chop) { + return _iface_->chop (self, offset, length); + } + return NULL; } /** - * A fused concatinate and map. The function is applied to each element - * of iteration and the resulting values are concatinated. + * A fused concatenate and map. The function is applied to each element + * of iteration and the resulting values are concatenated. * * The iterator is lazy evaluated but value is force-evaluated when * iterator is moved to next value. @@ -2298,14 +1952,6 @@ g_assert_not_reached (); } } - _gee_lazy_unref0 (item); - if (val) { - *val = _vala_val; - } else { - _gee_lazy_unref0 (_vala_val); - } - block23_data_unref (_data23_); - _data23_ = NULL; } static GeeTraversableStream @@ -2361,8 +2007,13 @@ gpointer f_target, GDestroyNotify f_target_destroy_notify) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->flat_map (self, a_type, a_dup_func, a_destroy_func, f, f_target, f_target_destroy_notify); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->flat_map) { + return _iface_->flat_map (self, a_type, a_dup_func, a_destroy_func, f, f_target, f_target_destroy_notify); + } + return NULL; } /** @@ -2628,8 +2279,6 @@ g_assert_not_reached (); } } - block24_data_unref (_data24_); - _data24_ = NULL; } GeeIterator** @@ -2637,8 +2286,13 @@ guint forks, gint* result_length1) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->tee (self, forks, result_length1); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->tee) { + return _iface_->tee (self, forks, result_length1); + } + return NULL; } /** @@ -2738,8 +2392,13 @@ gpointer pred_target, GDestroyNotify pred_target_destroy_notify) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->first_match (self, pred, pred_target, pred_target_destroy_notify); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->first_match) { + return _iface_->first_match (self, pred, pred_target, pred_target_destroy_notify); + } + return NULL; } /** @@ -2790,8 +2449,13 @@ gpointer pred_target, GDestroyNotify pred_target_destroy_notify) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->any_match (self, pred, pred_target, pred_target_destroy_notify); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->any_match) { + return _iface_->any_match (self, pred, pred_target, pred_target_destroy_notify); + } + return FALSE; } /** @@ -2884,8 +2548,13 @@ gpointer pred_target, GDestroyNotify pred_target_destroy_notify) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->all_match (self, pred, pred_target, pred_target_destroy_notify); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->all_match) { + return _iface_->all_match (self, pred, pred_target, pred_target_destroy_notify); + } + return FALSE; } /** @@ -2988,8 +2657,13 @@ gpointer compare_target, GDestroyNotify compare_target_destroy_notify) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->max (self, compare, compare_target, compare_target_destroy_notify); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->max) { + return _iface_->max (self, compare, compare_target, compare_target_destroy_notify); + } + return NULL; } /** @@ -3092,8 +2766,13 @@ gpointer compare_target, GDestroyNotify compare_target_destroy_notify) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->min (self, compare, compare_target, compare_target_destroy_notify); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->min) { + return _iface_->min (self, compare, compare_target, compare_target_destroy_notify); + } + return NULL; } /** @@ -3189,15 +2868,25 @@ gpointer compare_target, GDestroyNotify compare_target_destroy_notify) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, NULL); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->order_by (self, compare, compare_target, compare_target_destroy_notify); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->order_by) { + return _iface_->order_by (self, compare, compare_target, compare_target_destroy_notify); + } + return NULL; } GType gee_traversable_get_element_type (GeeTraversable* self) { + GeeTraversableIface* _iface_; g_return_val_if_fail (self != NULL, 0UL); - return GEE_TRAVERSABLE_GET_INTERFACE (self)->get_element_type (self); + _iface_ = GEE_TRAVERSABLE_GET_INTERFACE (self); + if (_iface_->get_element_type) { + return _iface_->get_element_type (self); + } + return 0UL; } static GType @@ -3251,15 +2940,23 @@ * * @since 0.7.0 */ +static GType +gee_traversable_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTraversableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_traversable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; + GType gee_traversable_type_id; + gee_traversable_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeTraversable", &g_define_type_info, 0); + g_type_interface_add_prerequisite (gee_traversable_type_id, G_TYPE_OBJECT); + return gee_traversable_type_id; +} + GType gee_traversable_get_type (void) { static volatile gsize gee_traversable_type_id__volatile = 0; if (g_once_init_enter (&gee_traversable_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTraversableIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_traversable_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL }; GType gee_traversable_type_id; - gee_traversable_type_id = g_type_register_static (G_TYPE_INTERFACE, "GeeTraversable", &g_define_type_info, 0); - g_type_interface_add_prerequisite (gee_traversable_type_id, G_TYPE_OBJECT); + gee_traversable_type_id = gee_traversable_get_type_once (); g_once_init_leave (&gee_traversable_type_id__volatile, gee_traversable_type_id); } return gee_traversable_type_id__volatile; @@ -3271,7 +2968,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/traversable.vala libgee-0.8-0.20.4/gee/traversable.vala --- libgee-0.8-0.20.3/gee/traversable.vala 2019-07-14 06:18:01.000000000 +0000 +++ libgee-0.8-0.20.4/gee/traversable.vala 2021-03-17 11:24:00.000000000 +0000 @@ -52,7 +52,7 @@ [GenericAccessors] public interface Gee.Traversable : Object { /** - * Apply function to each element returned by iterator untill last element + * Apply function to each element returned by iterator until last element * or function return ''false''. * * ''{@link Iterator} implementation:'' Operation moves the iterator @@ -194,9 +194,9 @@ * * Note: Default implementation uses {@link stream}. * - * Note: When the method is called on {@link Iterator} using the parent - * iterator is not allowed befor the inner iterator - * {@link Iterator.next} return false and then it points on its last + * Note: When the method is called on {@link Iterator}, using the parent + * iterator is not allowed before the inner iterator + * {@link Iterator.next} returns false and then it points to its last * element. The resulting iterator is {@link Iterator.valid}. * * @param f Folding function @@ -235,15 +235,15 @@ } /** - * Creates a new iterator that contains only values that fullfills the + * Creates a new iterator that contains only values that fulfills the * predicate. * * Note: When the method is called on {@link Iterator} using the parent - * iterator is not allowed befor the inner iterator + * iterator is not allowed before the inner iterator * {@link Iterator.next} return false and then it points on its last * element. The resulting iterator is {@link Iterator.valid} if parent * iterator is {@link Iterator.valid} and value it is pointing on - * fullfills the predicate. + * fulfills the predicate. * * @param pred predicate to check should the value be retained * @return Iterator containing values of subsequent values of seed @@ -331,8 +331,8 @@ public virtual Type element_type { get { return typeof (G); } } /** - * A fused concatinate and map. The function is applied to each element - * of iteration and the resulting values are concatinated. + * A fused concatenate and map. The function is applied to each element + * of iteration and the resulting values are concatenated. * * The iterator is lazy evaluated but value is force-evaluated when * iterator is moved to next value. diff -Nru libgee-0.8-0.20.3/gee/treemap.c libgee-0.8-0.20.4/gee/treemap.c --- libgee-0.8-0.20.3/gee/treemap.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/treemap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* treemap.c generated by valac 0.46.6, the Vala compiler +/* treemap.c generated by valac 0.52.0, the Vala compiler * generated from treemap.vala, do not modify */ /* treemap.vala @@ -23,178 +23,11 @@ * Maciej Piechotka */ -#include +#include "gee.h" #include +#include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - -#define GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type ()) -#define GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)) -#define GEE_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) -#define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) - -typedef struct _GeeAbstractMap GeeAbstractMap; -typedef struct _GeeAbstractMapClass GeeAbstractMapClass; -typedef struct _GeeAbstractMapPrivate GeeAbstractMapPrivate; - -#define GEE_TYPE_SORTED_MAP (gee_sorted_map_get_type ()) -#define GEE_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMap)) -#define GEE_IS_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_MAP)) -#define GEE_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMapIface)) - -typedef struct _GeeSortedMap GeeSortedMap; -typedef struct _GeeSortedMapIface GeeSortedMapIface; - -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - -#define GEE_TYPE_ABSTRACT_SORTED_MAP (gee_abstract_sorted_map_get_type ()) -#define GEE_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMap)) -#define GEE_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) -#define GEE_IS_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_IS_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_ABSTRACT_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) - -typedef struct _GeeAbstractSortedMap GeeAbstractSortedMap; -typedef struct _GeeAbstractSortedMapClass GeeAbstractSortedMapClass; -typedef struct _GeeAbstractSortedMapPrivate GeeAbstractSortedMapPrivate; - -#define GEE_TYPE_BIDIR_SORTED_MAP (gee_bidir_sorted_map_get_type ()) -#define GEE_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMap)) -#define GEE_IS_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_MAP)) -#define GEE_BIDIR_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMapIface)) - -typedef struct _GeeBidirSortedMap GeeBidirSortedMap; -typedef struct _GeeBidirSortedMapIface GeeBidirSortedMapIface; - -#define GEE_TYPE_BIDIR_MAP_ITERATOR (gee_bidir_map_iterator_get_type ()) -#define GEE_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIterator)) -#define GEE_IS_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR)) -#define GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIteratorIface)) - -typedef struct _GeeBidirMapIterator GeeBidirMapIterator; -typedef struct _GeeBidirMapIteratorIface GeeBidirMapIteratorIface; - -#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP (gee_abstract_bidir_sorted_map_get_type ()) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMap)) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP)) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass)) - -typedef struct _GeeAbstractBidirSortedMap GeeAbstractBidirSortedMap; -typedef struct _GeeAbstractBidirSortedMapClass GeeAbstractBidirSortedMapClass; -typedef struct _GeeAbstractBidirSortedMapPrivate GeeAbstractBidirSortedMapPrivate; - -#define GEE_TYPE_TREE_MAP (gee_tree_map_get_type ()) -#define GEE_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_MAP, GeeTreeMap)) -#define GEE_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_MAP, GeeTreeMapClass)) -#define GEE_IS_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_MAP)) -#define GEE_IS_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_MAP)) -#define GEE_TREE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_MAP, GeeTreeMapClass)) - -typedef struct _GeeTreeMap GeeTreeMap; -typedef struct _GeeTreeMapClass GeeTreeMapClass; -typedef struct _GeeTreeMapPrivate GeeTreeMapPrivate; - #define GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE (gee_functions_compare_data_func_closure_get_type ()) #define GEE_FUNCTIONS_COMPARE_DATA_FUNC_CLOSURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE, GeeFunctionsCompareDataFuncClosure)) #define GEE_FUNCTIONS_COMPARE_DATA_FUNC_CLOSURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE, GeeFunctionsCompareDataFuncClosureClass)) @@ -244,7 +77,6 @@ #define _gee_functions_compare_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_compare_data_func_closure_unref (var), NULL))) #define _gee_functions_equal_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_equal_data_func_closure_unref (var), NULL))) #define _gee_tree_map_node_free0(var) ((var == NULL) ? NULL : (var = (gee_tree_map_node_free (var), NULL))) -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); typedef enum { GEE_TREE_MAP_NODE_COLOR_RED, GEE_TREE_MAP_NODE_COLOR_BLACK @@ -293,46 +125,6 @@ typedef struct _GeeTreeMapMapIterator GeeTreeMapMapIterator; typedef struct _GeeTreeMapMapIteratorClass GeeTreeMapMapIteratorClass; -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; - -#define GEE_TYPE_ABSTRACT_SORTED_SET (gee_abstract_sorted_set_get_type ()) -#define GEE_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet)) -#define GEE_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) -#define GEE_IS_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_IS_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_ABSTRACT_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) - -typedef struct _GeeAbstractSortedSet GeeAbstractSortedSet; -typedef struct _GeeAbstractSortedSetClass GeeAbstractSortedSetClass; - -#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET (gee_abstract_bidir_sorted_set_get_type ()) -#define GEE_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSet)) -#define GEE_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET)) -#define GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass)) - -typedef struct _GeeAbstractBidirSortedSet GeeAbstractBidirSortedSet; -typedef struct _GeeAbstractBidirSortedSetClass GeeAbstractBidirSortedSetClass; - #define GEE_TREE_MAP_TYPE_KEY_SET (gee_tree_map_key_set_get_type ()) #define GEE_TREE_MAP_KEY_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_KEY_SET, GeeTreeMapKeySet)) #define GEE_TREE_MAP_KEY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_KEY_SET, GeeTreeMapKeySetClass)) @@ -365,7 +157,6 @@ typedef struct _GeeTreeMapEntrySetClass GeeTreeMapEntrySetClass; typedef struct _GeeFunctionsCompareDataFuncClosurePrivate GeeFunctionsCompareDataFuncClosurePrivate; typedef struct _GeeFunctionsEqualDataFuncClosurePrivate GeeFunctionsEqualDataFuncClosurePrivate; -typedef struct _GeeMapEntryPrivate GeeMapEntryPrivate; #define GEE_TREE_MAP_TYPE_ENTRY (gee_tree_map_entry_get_type ()) #define GEE_TREE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_ENTRY, GeeTreeMapEntry)) @@ -392,7 +183,6 @@ }; static GParamSpec* gee_tree_map_entry_properties[GEE_TREE_MAP_ENTRY_NUM_PROPERTIES]; typedef struct _GeeTreeMapRangePrivate GeeTreeMapRangePrivate; -#define _k_destroy_func0(var) (((var == NULL) || (k_destroy_func == NULL)) ? NULL : (var = (k_destroy_func (var), NULL))) typedef struct _GeeTreeMapParamSpecRange GeeTreeMapParamSpecRange; typedef struct _GeeTreeMapSubMapPrivate GeeTreeMapSubMapPrivate; enum { @@ -464,26 +254,6 @@ typedef struct _GeeTreeMapSubEntrySet GeeTreeMapSubEntrySet; typedef struct _GeeTreeMapSubEntrySetClass GeeTreeMapSubEntrySetClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; -typedef struct _GeeAbstractSetPrivate GeeAbstractSetPrivate; -typedef struct _GeeAbstractSortedSetPrivate GeeAbstractSortedSetPrivate; - -#define GEE_TYPE_BIDIR_SORTED_SET (gee_bidir_sorted_set_get_type ()) -#define GEE_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSet)) -#define GEE_IS_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_SET)) -#define GEE_BIDIR_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSetIface)) - -typedef struct _GeeBidirSortedSet GeeBidirSortedSet; -typedef struct _GeeBidirSortedSetIface GeeBidirSortedSetIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; -typedef struct _GeeAbstractBidirSortedSetPrivate GeeAbstractBidirSortedSetPrivate; typedef struct _GeeTreeMapKeySetPrivate GeeTreeMapKeySetPrivate; enum { GEE_TREE_MAP_KEY_SET_0_PROPERTY, @@ -770,271 +540,6 @@ #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeAbstractMap { - GObject parent_instance; - GeeAbstractMapPrivate * priv; -}; - -struct _GeeAbstractMapClass { - GObjectClass parent_class; - gboolean (*has_key) (GeeAbstractMap* self, gconstpointer key); - gboolean (*has) (GeeAbstractMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeAbstractMap* self, gconstpointer key); - void (*set) (GeeAbstractMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeAbstractMap* self, gconstpointer key, gpointer* value); - GeeMapIterator* (*map_iterator) (GeeAbstractMap* self); - void (*clear) (GeeAbstractMap* self); - gboolean (*foreach) (GeeAbstractMap* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeAbstractMap* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - void (*reserved0) (GeeAbstractMap* self); - void (*reserved1) (GeeAbstractMap* self); - void (*reserved2) (GeeAbstractMap* self); - void (*reserved3) (GeeAbstractMap* self); - void (*reserved4) (GeeAbstractMap* self); - void (*reserved5) (GeeAbstractMap* self); - void (*reserved6) (GeeAbstractMap* self); - void (*reserved7) (GeeAbstractMap* self); - void (*reserved8) (GeeAbstractMap* self); - void (*reserved9) (GeeAbstractMap* self); - gint (*get_size) (GeeAbstractMap* self); - gboolean (*get_read_only) (GeeAbstractMap* self); - GeeSet* (*get_keys) (GeeAbstractMap* self); - GeeCollection* (*get_values) (GeeAbstractMap* self); - GeeSet* (*get_entries) (GeeAbstractMap* self); - GeeMap* (*get_read_only_view) (GeeAbstractMap* self); -}; - -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - -struct _GeeSortedMapIface { - GTypeInterface parent_iface; - GeeSortedMap* (*head_map) (GeeSortedMap* self, gconstpointer before); - GeeSortedMap* (*tail_map) (GeeSortedMap* self, gconstpointer after); - GeeSortedMap* (*sub_map) (GeeSortedMap* self, gconstpointer before, gconstpointer after); - GeeSortedSet* (*get_ascending_keys) (GeeSortedMap* self); - GeeSortedSet* (*get_ascending_entries) (GeeSortedMap* self); - GeeSortedMap* (*get_read_only_view) (GeeSortedMap* self); -}; - -struct _GeeAbstractSortedMap { - GeeAbstractMap parent_instance; - GeeAbstractSortedMapPrivate * priv; -}; - -struct _GeeAbstractSortedMapClass { - GeeAbstractMapClass parent_class; - GeeSortedMap* (*head_map) (GeeAbstractSortedMap* self, gconstpointer before); - GeeSortedMap* (*tail_map) (GeeAbstractSortedMap* self, gconstpointer after); - GeeSortedMap* (*sub_map) (GeeAbstractSortedMap* self, gconstpointer before, gconstpointer after); - void (*reserved0) (GeeAbstractSortedMap* self); - void (*reserved1) (GeeAbstractSortedMap* self); - void (*reserved2) (GeeAbstractSortedMap* self); - void (*reserved3) (GeeAbstractSortedMap* self); - void (*reserved4) (GeeAbstractSortedMap* self); - void (*reserved5) (GeeAbstractSortedMap* self); - void (*reserved6) (GeeAbstractSortedMap* self); - void (*reserved7) (GeeAbstractSortedMap* self); - void (*reserved8) (GeeAbstractSortedMap* self); - void (*reserved9) (GeeAbstractSortedMap* self); - GeeSortedSet* (*get_ascending_keys) (GeeAbstractSortedMap* self); - GeeSortedSet* (*get_ascending_entries) (GeeAbstractSortedMap* self); -}; - -struct _GeeBidirMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeBidirMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeBidirMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeBidirMapIterator* self); - GType (*get_v_type) (GeeBidirMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeBidirMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeBidirMapIterator* self); - gboolean (*previous) (GeeBidirMapIterator* self); - gboolean (*has_previous) (GeeBidirMapIterator* self); - gboolean (*first) (GeeBidirMapIterator* self); - gboolean (*last) (GeeBidirMapIterator* self); -}; - -struct _GeeBidirSortedMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeBidirSortedMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeBidirSortedMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeBidirSortedMap* self); - GType (*get_v_type) (GeeBidirSortedMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeBidirSortedMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeBidirSortedMap* self); - GeeBidirMapIterator* (*bidir_map_iterator) (GeeBidirSortedMap* self); - GeeBidirSortedMap* (*get_read_only_view) (GeeBidirSortedMap* self); -}; - -struct _GeeAbstractBidirSortedMap { - GeeAbstractSortedMap parent_instance; - GeeAbstractBidirSortedMapPrivate * priv; -}; - -struct _GeeAbstractBidirSortedMapClass { - GeeAbstractSortedMapClass parent_class; - GeeBidirMapIterator* (*bidir_map_iterator) (GeeAbstractBidirSortedMap* self); - void (*reserved0) (GeeAbstractBidirSortedMap* self); - void (*reserved1) (GeeAbstractBidirSortedMap* self); - void (*reserved2) (GeeAbstractBidirSortedMap* self); - void (*reserved3) (GeeAbstractBidirSortedMap* self); - void (*reserved4) (GeeAbstractBidirSortedMap* self); - void (*reserved5) (GeeAbstractBidirSortedMap* self); - void (*reserved6) (GeeAbstractBidirSortedMap* self); - void (*reserved7) (GeeAbstractBidirSortedMap* self); - void (*reserved8) (GeeAbstractBidirSortedMap* self); - void (*reserved9) (GeeAbstractBidirSortedMap* self); - GeeBidirSortedMap* (*get_read_only_view) (GeeAbstractBidirSortedMap* self); -}; - -struct _GeeTreeMap { - GeeAbstractBidirSortedMap parent_instance; - GeeTreeMapPrivate * priv; -}; - -struct _GeeTreeMapClass { - GeeAbstractBidirSortedMapClass parent_class; -}; - struct _GeeTreeMapPrivate { GType k_type; GBoxedCopyFunc k_dup_func; @@ -1093,19 +598,6 @@ void (*finalize) (GeeFunctionsEqualDataFuncClosure *self); }; -struct _GeeMapEntry { - GObject parent_instance; - GeeMapEntryPrivate * priv; -}; - -struct _GeeMapEntryClass { - GObjectClass parent_class; - gconstpointer (*get_key) (GeeMapEntry* self); - gconstpointer (*get_value) (GeeMapEntry* self); - void (*set_value) (GeeMapEntry* self, gconstpointer value); - gboolean (*get_read_only) (GeeMapEntry* self); -}; - struct _GeeTreeMapEntry { GeeMapEntry parent_instance; GeeTreeMapEntryPrivate * priv; @@ -1176,125 +668,6 @@ GeeTreeMapRange* range; }; -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeAbstractSet { - GeeAbstractCollection parent_instance; - GeeAbstractSetPrivate * priv; -}; - -struct _GeeAbstractSetClass { - GeeAbstractCollectionClass parent_class; - void (*reserved0) (GeeAbstractSet* self); - void (*reserved1) (GeeAbstractSet* self); - void (*reserved2) (GeeAbstractSet* self); - void (*reserved3) (GeeAbstractSet* self); - void (*reserved4) (GeeAbstractSet* self); - void (*reserved5) (GeeAbstractSet* self); - void (*reserved6) (GeeAbstractSet* self); - void (*reserved7) (GeeAbstractSet* self); - void (*reserved8) (GeeAbstractSet* self); - void (*reserved9) (GeeAbstractSet* self); - GeeSet* (*get_read_only_view) (GeeAbstractSet* self); -}; - -struct _GeeAbstractSortedSet { - GeeAbstractSet parent_instance; - GeeAbstractSortedSetPrivate * priv; -}; - -struct _GeeAbstractSortedSetClass { - GeeAbstractSetClass parent_class; - gpointer (*first) (GeeAbstractSortedSet* self); - gpointer (*last) (GeeAbstractSortedSet* self); - GeeIterator* (*iterator_at) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeAbstractSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeAbstractSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeAbstractSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to); - void (*reserved0) (GeeAbstractSortedSet* self); - void (*reserved1) (GeeAbstractSortedSet* self); - void (*reserved2) (GeeAbstractSortedSet* self); - void (*reserved3) (GeeAbstractSortedSet* self); - void (*reserved4) (GeeAbstractSortedSet* self); - void (*reserved5) (GeeAbstractSortedSet* self); - void (*reserved6) (GeeAbstractSortedSet* self); - void (*reserved7) (GeeAbstractSortedSet* self); - void (*reserved8) (GeeAbstractSortedSet* self); - void (*reserved9) (GeeAbstractSortedSet* self); - GeeSortedSet* (*get_read_only_view) (GeeAbstractSortedSet* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirSortedSet* self); - GeeBidirIterator* (*bidir_iterator) (GeeBidirSortedSet* self); - GeeBidirSortedSet* (*get_read_only_view) (GeeBidirSortedSet* self); -}; - -struct _GeeAbstractBidirSortedSet { - GeeAbstractSortedSet parent_instance; - GeeAbstractBidirSortedSetPrivate * priv; -}; - -struct _GeeAbstractBidirSortedSetClass { - GeeAbstractSortedSetClass parent_class; - GeeBidirIterator* (*bidir_iterator) (GeeAbstractBidirSortedSet* self); - void (*reserved0) (GeeAbstractBidirSortedSet* self); - void (*reserved1) (GeeAbstractBidirSortedSet* self); - void (*reserved2) (GeeAbstractBidirSortedSet* self); - void (*reserved3) (GeeAbstractBidirSortedSet* self); - void (*reserved4) (GeeAbstractBidirSortedSet* self); - void (*reserved5) (GeeAbstractBidirSortedSet* self); - void (*reserved6) (GeeAbstractBidirSortedSet* self); - void (*reserved7) (GeeAbstractBidirSortedSet* self); - void (*reserved8) (GeeAbstractBidirSortedSet* self); - void (*reserved9) (GeeAbstractBidirSortedSet* self); - GeeBidirSortedSet* (*get_read_only_view) (GeeAbstractBidirSortedSet* self); -}; - struct _GeeTreeMapKeySet { GeeAbstractBidirSortedSet parent_instance; GeeTreeMapKeySetPrivate * priv; @@ -1669,139 +1042,61 @@ static GeeMapIteratorIface * gee_tree_map_sub_map_iterator_gee_map_iterator_parent_iface = NULL; static GeeBidirMapIteratorIface * gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMap, g_object_unref) -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_sorted_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_sorted_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedMap, g_object_unref) -GType gee_bidir_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_sorted_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_bidir_sorted_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedMap, g_object_unref) -GType gee_tree_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMap, g_object_unref) -G_GNUC_INTERNAL gpointer gee_functions_compare_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_compare_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_compare_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_compare_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_compare_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_compare_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_compare_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_compare_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_compare_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_compare_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_compare_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_compare_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsCompareDataFuncClosure, gee_functions_compare_data_func_closure_unref) -G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_value_get_compare_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_compare_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsEqualDataFuncClosure, gee_functions_equal_data_func_closure_unref) + G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static void gee_tree_map_node_free (GeeTreeMapNode * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapNode, gee_tree_map_node_free) -void gee_abstract_map_clear (GeeAbstractMap* self); -static GType gee_tree_map_range_type_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -GeeTreeMap* gee_tree_map_new (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GCompareDataFunc key_compare_func, - gpointer key_compare_func_target, - GDestroyNotify key_compare_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GeeTreeMap* gee_tree_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GCompareDataFunc key_compare_func, - gpointer key_compare_func_target, - GDestroyNotify key_compare_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GeeAbstractBidirSortedMap* gee_abstract_bidir_sorted_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func); -GCompareDataFunc gee_functions_get_compare_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_new (GType g_type, +static GType gee_tree_map_range_type_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeTreeMap* gee_tree_map_new_with_closures (GType k_type, + G_GNUC_INTERNAL GeeTreeMap* gee_tree_map_new_with_closures (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, @@ -1809,7 +1104,7 @@ GDestroyNotify v_destroy_func, GeeFunctionsCompareDataFuncClosure* key_compare_func, GeeFunctionsEqualDataFuncClosure* value_equal_func); -G_GNUC_INTERNAL GeeTreeMap* gee_tree_map_construct_with_closures (GType object_type, + G_GNUC_INTERNAL GeeTreeMap* gee_tree_map_construct_with_closures (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -1820,7 +1115,7 @@ GeeFunctionsEqualDataFuncClosure* value_equal_func); static void gee_tree_map_rotate_right (GeeTreeMap* self, GeeTreeMapNode* * root); -static GType gee_tree_map_node_color_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; +static GType gee_tree_map_node_color_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static void gee_tree_map_rotate_left (GeeTreeMap* self, GeeTreeMapNode* * root); static gboolean gee_tree_map_is_red (GeeTreeMap* self, @@ -1829,15 +1124,9 @@ GeeTreeMapNode* n); static gboolean gee_tree_map_real_has_key (GeeAbstractMap* base, gconstpointer key); -GCompareDataFunc gee_tree_map_get_key_compare_func (GeeTreeMap* self, - gpointer* result_target); static gboolean gee_tree_map_real_has (GeeAbstractMap* base, gconstpointer key, gconstpointer value); -gpointer gee_abstract_map_get (GeeAbstractMap* self, - gconstpointer key); -GeeEqualDataFunc gee_tree_map_get_value_equal_func (GeeTreeMap* self, - gpointer* result_target); static gpointer gee_tree_map_real_get (GeeAbstractMap* base, gconstpointer key); static gboolean gee_tree_map_set_to_node (GeeTreeMap* self, @@ -1906,14 +1195,13 @@ const gchar* nick, const gchar* blurb, GType object_type, - GParamFlags flags) G_GNUC_UNUSED; + GParamFlags flags) G_GNUC_UNUSED ; static void gee_tree_map_value_set_range (GValue* value, - gpointer v_object) G_GNUC_UNUSED; + gpointer v_object) G_GNUC_UNUSED ; static void gee_tree_map_value_take_range (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -static gpointer gee_tree_map_value_get_range (const GValue* value) G_GNUC_UNUSED; -static GType gee_tree_map_range_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapRange, gee_tree_map_range_unref) + gpointer v_object) G_GNUC_UNUSED ; +static gpointer gee_tree_map_value_get_range (const GValue* value) G_GNUC_UNUSED ; +static GType gee_tree_map_range_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeTreeMapSubMap* gee_tree_map_sub_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -1931,8 +1219,7 @@ GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range); -static GType gee_tree_map_sub_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapSubMap, g_object_unref) +static GType gee_tree_map_sub_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeSortedMap* gee_tree_map_real_tail_map (GeeAbstractSortedMap* base, gconstpointer after); static GeeTreeMapRange* gee_tree_map_range_new_tail (GType k_type, @@ -1990,12 +1277,10 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map); -static GType gee_tree_map_node_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapNodeIterator, g_object_unref) -static GType gee_tree_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapMapIterator, g_object_unref) +static GType gee_tree_map_node_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +static GType gee_tree_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeBidirMapIterator* gee_tree_map_real_bidir_map_iterator (GeeAbstractBidirSortedMap* base); -G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_tree_map_get_key_compare_func_closure (GeeTreeMap* self); + G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_tree_map_get_key_compare_func_closure (GeeTreeMap* self); static inline gpointer gee_tree_map_min (GeeTreeMap* self, gconstpointer a, gconstpointer b); @@ -2031,16 +1316,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedSet, g_object_unref) -GType gee_abstract_bidir_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedSet, g_object_unref) -static GType gee_tree_map_key_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapKeySet, g_object_unref) +static GType gee_tree_map_key_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeTreeMapValueCollection* gee_tree_map_value_collection_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -2056,8 +1332,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map); -static GType gee_tree_map_value_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapValueCollection, g_object_unref) +static GType gee_tree_map_value_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeTreeMapEntrySet* gee_tree_map_entry_set_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -2073,8 +1348,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map); -static GType gee_tree_map_entry_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapEntrySet, g_object_unref) +static GType gee_tree_map_entry_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static void gee_tree_map_set_key_compare_func (GeeTreeMap* self, GCompareDataFunc value, gpointer value_target); @@ -2083,8 +1357,7 @@ gpointer value_target); static void gee_tree_map_node_instance_init (GeeTreeMapNode * self); static GeeTreeMapNodeColor gee_tree_map_node_color_flip (GeeTreeMapNodeColor self); -static GType gee_tree_map_entry_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapEntry, g_object_unref) +static GType gee_tree_map_entry_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeMapEntry* gee_tree_map_entry_entry_for (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -2107,23 +1380,12 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMapNode* node); -GeeMapEntry* gee_map_entry_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func); static void gee_tree_map_entry_finalize (GObject * obj); -gconstpointer gee_map_entry_get_key (GeeMapEntry* self); -gconstpointer gee_map_entry_get_value (GeeMapEntry* self); -gboolean gee_map_entry_get_read_only (GeeMapEntry* self); +static GType gee_tree_map_entry_get_type_once (void); static void _vala_gee_tree_map_entry_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec); -void gee_map_entry_set_value (GeeMapEntry* self, - gconstpointer value); static void _vala_gee_tree_map_entry_set_property (GObject * object, guint property_id, const GValue * value, @@ -2158,34 +1420,21 @@ static GeeTreeMapNode* gee_tree_map_range_first (GeeTreeMapRange* self); static GeeTreeMapNode* gee_tree_map_range_last (GeeTreeMapRange* self); static void gee_tree_map_range_finalize (GeeTreeMapRange * obj); +static GType gee_tree_map_range_get_type_once (void); static gboolean gee_tree_map_sub_map_real_has_key (GeeAbstractMap* base, gconstpointer key); -gboolean gee_abstract_map_has_key (GeeAbstractMap* self, - gconstpointer key); static gboolean gee_tree_map_sub_map_real_has (GeeAbstractMap* base, gconstpointer key, gconstpointer value); -gboolean gee_abstract_map_has (GeeAbstractMap* self, - gconstpointer key, - gconstpointer value); static gpointer gee_tree_map_sub_map_real_get (GeeAbstractMap* base, gconstpointer key); static void gee_tree_map_sub_map_real_set (GeeAbstractMap* base, gconstpointer key, gconstpointer value); -void gee_abstract_map_set (GeeAbstractMap* self, - gconstpointer key, - gconstpointer value); static gboolean gee_tree_map_sub_map_real_unset (GeeAbstractMap* base, gconstpointer key, gpointer* value); -gboolean gee_abstract_map_unset (GeeAbstractMap* self, - gconstpointer key, - gpointer* value); static void gee_tree_map_sub_map_real_clear (GeeAbstractMap* base); -GeeMapIterator* gee_abstract_map_map_iterator (GeeAbstractMap* self); -gboolean gee_map_iterator_next (GeeMapIterator* self); -void gee_map_iterator_unset (GeeMapIterator* self); static GeeMapIterator* gee_tree_map_sub_map_real_map_iterator (GeeAbstractMap* base); static GeeTreeMapSubMapIterator* gee_tree_map_sub_map_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, @@ -2204,10 +1453,8 @@ GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range); -static GType gee_tree_map_sub_node_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapSubNodeIterator, g_object_unref) -static GType gee_tree_map_sub_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapSubMapIterator, g_object_unref) +static GType gee_tree_map_sub_node_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +static GType gee_tree_map_sub_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeBidirMapIterator* gee_tree_map_sub_map_real_bidir_map_iterator (GeeAbstractBidirSortedMap* base); static GeeSortedMap* gee_tree_map_sub_map_real_head_map (GeeAbstractSortedMap* base, gconstpointer before); @@ -2216,10 +1463,7 @@ static GeeSortedMap* gee_tree_map_sub_map_real_sub_map (GeeAbstractSortedMap* base, gconstpointer after, gconstpointer before); -GeeSet* gee_abstract_map_get_keys (GeeAbstractMap* self); -gint gee_collection_get_size (GeeCollection* self); static gboolean gee_tree_map_sub_map_get_is_empty (GeeTreeMapSubMap* self); -gboolean gee_collection_get_is_empty (GeeCollection* self); static GeeTreeMapSubKeySet* gee_tree_map_sub_key_set_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -2237,8 +1481,7 @@ GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range); -static GType gee_tree_map_sub_key_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapSubKeySet, g_object_unref) +static GType gee_tree_map_sub_key_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeTreeMapSubValueCollection* gee_tree_map_sub_value_collection_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -2256,8 +1499,7 @@ GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range); -static GType gee_tree_map_sub_value_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapSubValueCollection, g_object_unref) +static GType gee_tree_map_sub_value_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeTreeMapSubEntrySet* gee_tree_map_sub_entry_set_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -2275,15 +1517,9 @@ GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range); -static GType gee_tree_map_sub_entry_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapSubEntrySet, g_object_unref) +static GType gee_tree_map_sub_entry_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static void gee_tree_map_sub_map_finalize (GObject * obj); -gint gee_abstract_map_get_size (GeeAbstractMap* self); -GeeCollection* gee_abstract_map_get_values (GeeAbstractMap* self); -GeeSet* gee_abstract_map_get_entries (GeeAbstractMap* self); -gboolean gee_abstract_map_get_read_only (GeeAbstractMap* self); -GeeSortedSet* gee_abstract_sorted_map_get_ascending_keys (GeeAbstractSortedMap* self); -GeeSortedSet* gee_abstract_sorted_map_get_ascending_entries (GeeAbstractSortedMap* self); +static GType gee_tree_map_sub_map_get_type_once (void); static void _vala_gee_tree_map_sub_map_get_property (GObject * object, guint property_id, GValue * value, @@ -2292,12 +1528,6 @@ guint property_id, const GValue * value, GParamSpec * pspec); -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_sorted_set_get_type (void) G_GNUC_CONST; -GeeAbstractBidirSortedSet* gee_abstract_bidir_sorted_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); static GeeIterator* gee_tree_map_key_set_real_iterator (GeeAbstractCollection* base); static GeeTreeMapKeyIterator* gee_tree_map_key_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, @@ -2314,8 +1544,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map); -static GType gee_tree_map_key_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapKeyIterator, g_object_unref) +static GType gee_tree_map_key_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_tree_map_key_set_real_add (GeeAbstractCollection* base, gconstpointer key); static void gee_tree_map_key_set_real_clear (GeeAbstractCollection* base); @@ -2361,8 +1590,7 @@ static gpointer gee_tree_map_key_set_real_ceil (GeeAbstractSortedSet* base, gconstpointer item); static void gee_tree_map_key_set_finalize (GObject * obj); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); +static GType gee_tree_map_key_set_get_type_once (void); static void _vala_gee_tree_map_key_set_get_property (GObject * object, guint property_id, GValue * value, @@ -2395,8 +1623,7 @@ GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range); -static GType gee_tree_map_sub_key_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapSubKeyIterator, g_object_unref) +static GType gee_tree_map_sub_key_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_tree_map_sub_key_set_real_add (GeeAbstractCollection* base, gconstpointer key); static void gee_tree_map_sub_key_set_real_clear (GeeAbstractCollection* base); @@ -2437,18 +1664,15 @@ GeeTreeMapNode* node); static gpointer gee_tree_map_sub_key_set_real_lower (GeeAbstractSortedSet* base, gconstpointer key); -gpointer gee_abstract_sorted_set_last (GeeAbstractSortedSet* self); static gpointer gee_tree_map_sub_key_set_real_higher (GeeAbstractSortedSet* base, gconstpointer key); -gpointer gee_abstract_sorted_set_first (GeeAbstractSortedSet* self); static gpointer gee_tree_map_sub_key_set_real_floor (GeeAbstractSortedSet* base, gconstpointer key); static gpointer gee_tree_map_sub_key_set_real_ceil (GeeAbstractSortedSet* base, gconstpointer key); -GeeIterator* gee_abstract_collection_iterator (GeeAbstractCollection* self); -gboolean gee_iterator_next (GeeIterator* self); static gboolean gee_tree_map_sub_key_set_get_is_empty (GeeTreeMapSubKeySet* self); static void gee_tree_map_sub_key_set_finalize (GObject * obj); +static GType gee_tree_map_sub_key_set_get_type_once (void); static void _vala_gee_tree_map_sub_key_set_get_property (GObject * object, guint property_id, GValue * value, @@ -2457,10 +1681,6 @@ guint property_id, const GValue * value, GParamSpec * pspec); -GeeAbstractCollection* gee_abstract_collection_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); static GeeIterator* gee_tree_map_value_collection_real_iterator (GeeAbstractCollection* base); static GeeTreeMapValueIterator* gee_tree_map_value_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, @@ -2477,8 +1697,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map); -static GType gee_tree_map_value_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapValueIterator, g_object_unref) +static GType gee_tree_map_value_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_tree_map_value_collection_real_add (GeeAbstractCollection* base, gconstpointer key); static void gee_tree_map_value_collection_real_clear (GeeAbstractCollection* base); @@ -2486,8 +1705,8 @@ gconstpointer key); static gboolean gee_tree_map_value_collection_real_contains (GeeAbstractCollection* base, gconstpointer key); -gpointer gee_iterator_get (GeeIterator* self); static void gee_tree_map_value_collection_finalize (GObject * obj); +static GType gee_tree_map_value_collection_get_type_once (void); static void _vala_gee_tree_map_value_collection_get_property (GObject * object, guint property_id, GValue * value, @@ -2520,8 +1739,7 @@ GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range); -static GType gee_tree_map_sub_value_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapSubValueIterator, g_object_unref) +static GType gee_tree_map_sub_value_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_tree_map_sub_value_collection_real_add (GeeAbstractCollection* base, gconstpointer key); static void gee_tree_map_sub_value_collection_real_clear (GeeAbstractCollection* base); @@ -2531,6 +1749,7 @@ gconstpointer key); static gboolean gee_tree_map_sub_value_collection_get_is_empty (GeeTreeMapSubValueCollection* self); static void gee_tree_map_sub_value_collection_finalize (GObject * obj); +static GType gee_tree_map_sub_value_collection_get_type_once (void); static void _vala_gee_tree_map_sub_value_collection_get_property (GObject * object, guint property_id, GValue * value, @@ -2555,8 +1774,7 @@ GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map); -static GType gee_tree_map_entry_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapEntryIterator, g_object_unref) +static GType gee_tree_map_entry_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_tree_map_entry_set_real_add (GeeAbstractCollection* base, GeeMapEntry* entry); static void gee_tree_map_entry_set_real_clear (GeeAbstractCollection* base); @@ -2602,6 +1820,7 @@ static GeeMapEntry* gee_tree_map_entry_set_real_ceil (GeeAbstractSortedSet* base, GeeMapEntry* item); static void gee_tree_map_entry_set_finalize (GObject * obj); +static GType gee_tree_map_entry_set_get_type_once (void); static void _vala_gee_tree_map_entry_set_get_property (GObject * object, guint property_id, GValue * value, @@ -2634,8 +1853,7 @@ GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range); -static GType gee_tree_map_sub_entry_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMapSubEntryIterator, g_object_unref) +static GType gee_tree_map_sub_entry_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_tree_map_sub_entry_set_real_add (GeeAbstractCollection* base, GeeMapEntry* entry); static void gee_tree_map_sub_entry_set_real_clear (GeeAbstractCollection* base); @@ -2684,6 +1902,7 @@ GeeMapEntry* entry); static gboolean gee_tree_map_sub_entry_set_get_is_empty (GeeTreeMapSubEntrySet* self); static void gee_tree_map_sub_entry_set_finalize (GObject * obj); +static GType gee_tree_map_sub_entry_set_get_type_once (void); static void _vala_gee_tree_map_sub_entry_set_get_property (GObject * object, guint property_id, GValue * value, @@ -2692,6 +1911,7 @@ guint property_id, const GValue * value, GParamSpec * pspec); +static gboolean gee_tree_map_node_iterator_get_read_only (GeeTreeMapNodeIterator* self); static GeeTreeMapNodeIterator* gee_tree_map_node_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -2749,9 +1969,9 @@ static void gee_tree_map_node_iterator_unset (GeeTreeMapNodeIterator* self); static GeeTreeMapNode* gee_tree_map_node_iterator_safe_next_get (GeeTreeMapNodeIterator* self); static GeeTreeMapNode* gee_tree_map_node_iterator_safe_previous_get (GeeTreeMapNodeIterator* self); -static gboolean gee_tree_map_node_iterator_get_read_only (GeeTreeMapNodeIterator* self); static gboolean gee_tree_map_node_iterator_get_valid (GeeTreeMapNodeIterator* self); static void gee_tree_map_node_iterator_finalize (GObject * obj); +static GType gee_tree_map_node_iterator_get_type_once (void); static void _vala_gee_tree_map_node_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -2760,6 +1980,11 @@ guint property_id, const GValue * value, GParamSpec * pspec); +static gboolean gee_tree_map_sub_node_iterator_first (GeeTreeMapSubNodeIterator* self); +static gboolean gee_tree_map_sub_node_iterator_last (GeeTreeMapSubNodeIterator* self); +static GeeTreeMapNodeIterator* gee_tree_map_sub_node_iterator_iterator_pointing_at (GeeTreeMapSubNodeIterator* self, + GeeTreeMapNode* node); +static gboolean gee_tree_map_sub_node_iterator_get_read_only (GeeTreeMapSubNodeIterator* self); static GeeTreeMapSubNodeIterator* gee_tree_map_sub_node_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -2812,22 +2037,18 @@ GDestroyNotify v_destroy_func, GeeTreeMapSubNodeIterator* iter); static gboolean gee_tree_map_sub_node_iterator_next (GeeTreeMapSubNodeIterator* self); -static gboolean gee_tree_map_sub_node_iterator_first (GeeTreeMapSubNodeIterator* self); static gboolean gee_tree_map_sub_node_iterator_has_next (GeeTreeMapSubNodeIterator* self); static gboolean gee_tree_map_sub_node_iterator_real_first (GeeTreeMapSubNodeIterator* self); -static GeeTreeMapNodeIterator* gee_tree_map_sub_node_iterator_iterator_pointing_at (GeeTreeMapSubNodeIterator* self, - GeeTreeMapNode* node); static gboolean gee_tree_map_sub_node_iterator_previous (GeeTreeMapSubNodeIterator* self); static gboolean gee_tree_map_sub_node_iterator_has_previous (GeeTreeMapSubNodeIterator* self); -static gboolean gee_tree_map_sub_node_iterator_last (GeeTreeMapSubNodeIterator* self); static gboolean gee_tree_map_sub_node_iterator_real_last (GeeTreeMapSubNodeIterator* self); static void gee_tree_map_sub_node_iterator_remove (GeeTreeMapSubNodeIterator* self); static gboolean gee_tree_map_sub_node_iterator_get_valid (GeeTreeMapSubNodeIterator* self); static void gee_tree_map_sub_node_iterator_unset (GeeTreeMapSubNodeIterator* self); static GeeTreeMapNodeIterator* gee_tree_map_sub_node_iterator_real_iterator_pointing_at (GeeTreeMapSubNodeIterator* self, GeeTreeMapNode* node); -static gboolean gee_tree_map_sub_node_iterator_get_read_only (GeeTreeMapSubNodeIterator* self); static void gee_tree_map_sub_node_iterator_finalize (GObject * obj); +static GType gee_tree_map_sub_node_iterator_get_type_once (void); static void _vala_gee_tree_map_sub_node_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -2858,6 +2079,7 @@ static GeeIterator** gee_tree_map_key_iterator_real_tee (GeeTraversable* base, guint forks, gint* result_length1); +static GType gee_tree_map_key_iterator_get_type_once (void); static void _vala_gee_tree_map_key_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -2882,13 +2104,13 @@ GDestroyNotify v_destroy_func, GeeTreeMapSubKeyIterator* iterator); static gpointer gee_tree_map_sub_key_iterator_real_get (GeeIterator* base); -gboolean gee_iterator_get_valid (GeeIterator* self); static gboolean gee_tree_map_sub_key_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, gpointer f_target); static GeeIterator** gee_tree_map_sub_key_iterator_real_tee (GeeTraversable* base, guint forks, gint* result_length1); +static GType gee_tree_map_sub_key_iterator_get_type_once (void); static void _vala_gee_tree_map_sub_key_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -2936,6 +2158,7 @@ static GeeIterator** gee_tree_map_value_iterator_real_tee (GeeTraversable* base, guint forks, gint* result_length1); +static GType gee_tree_map_value_iterator_get_type_once (void); static void _vala_gee_tree_map_value_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -2985,6 +2208,7 @@ static GeeIterator** gee_tree_map_sub_value_iterator_real_tee (GeeTraversable* base, guint forks, gint* result_length1); +static GType gee_tree_map_sub_value_iterator_get_type_once (void); static void _vala_gee_tree_map_sub_value_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -3016,6 +2240,7 @@ static GeeIterator** gee_tree_map_entry_iterator_real_tee (GeeTraversable* base, guint forks, gint* result_length1); +static GType gee_tree_map_entry_iterator_get_type_once (void); static void _vala_gee_tree_map_entry_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -3047,6 +2272,7 @@ static GeeIterator** gee_tree_map_sub_entry_iterator_real_tee (GeeTraversable* base, guint forks, gint* result_length1); +static GType gee_tree_map_sub_entry_iterator_get_type_once (void); static void _vala_gee_tree_map_sub_entry_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -3056,11 +2282,10 @@ const GValue * value, GParamSpec * pspec); static gpointer gee_tree_map_map_iterator_real_get_key (GeeMapIterator* base); -gboolean gee_map_iterator_get_valid (GeeMapIterator* self); static gpointer gee_tree_map_map_iterator_real_get_value (GeeMapIterator* base); static void gee_tree_map_map_iterator_real_set_value (GeeMapIterator* base, gconstpointer value); -gboolean gee_map_iterator_get_mutable (GeeMapIterator* self); +static GType gee_tree_map_map_iterator_get_type_once (void); static void _vala_gee_tree_map_map_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -3073,6 +2298,7 @@ static gpointer gee_tree_map_sub_map_iterator_real_get_value (GeeMapIterator* base); static void gee_tree_map_sub_map_iterator_real_set_value (GeeMapIterator* base, gconstpointer value); +static GType gee_tree_map_sub_map_iterator_get_type_once (void); static void _vala_gee_tree_map_sub_map_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -3082,6 +2308,7 @@ const GValue * value, GParamSpec * pspec); static void gee_tree_map_finalize (GObject * obj); +static GType gee_tree_map_get_type_once (void); static void _vala_gee_tree_map_get_property (GObject * object, guint property_id, GValue * value, @@ -3104,13 +2331,21 @@ } static GType +gee_tree_map_range_type_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_TREE_MAP_RANGE_TYPE_HEAD, "GEE_TREE_MAP_RANGE_TYPE_HEAD", "head"}, {GEE_TREE_MAP_RANGE_TYPE_TAIL, "GEE_TREE_MAP_RANGE_TYPE_TAIL", "tail"}, {GEE_TREE_MAP_RANGE_TYPE_EMPTY, "GEE_TREE_MAP_RANGE_TYPE_EMPTY", "empty"}, {GEE_TREE_MAP_RANGE_TYPE_BOUNDED, "GEE_TREE_MAP_RANGE_TYPE_BOUNDED", "bounded"}, {0, NULL, NULL}}; + GType gee_tree_map_range_type_type_id; + gee_tree_map_range_type_type_id = g_enum_register_static ("GeeTreeMapRangeType", values); + return gee_tree_map_range_type_type_id; +} + +static GType gee_tree_map_range_type_get_type (void) { static volatile gsize gee_tree_map_range_type_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_range_type_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_TREE_MAP_RANGE_TYPE_HEAD, "GEE_TREE_MAP_RANGE_TYPE_HEAD", "head"}, {GEE_TREE_MAP_RANGE_TYPE_TAIL, "GEE_TREE_MAP_RANGE_TYPE_TAIL", "tail"}, {GEE_TREE_MAP_RANGE_TYPE_EMPTY, "GEE_TREE_MAP_RANGE_TYPE_EMPTY", "empty"}, {GEE_TREE_MAP_RANGE_TYPE_BOUNDED, "GEE_TREE_MAP_RANGE_TYPE_BOUNDED", "bounded"}, {0, NULL, NULL}}; GType gee_tree_map_range_type_type_id; - gee_tree_map_range_type_type_id = g_enum_register_static ("GeeTreeMapRangeType", values); + gee_tree_map_range_type_type_id = gee_tree_map_range_type_get_type_once (); g_once_init_leave (&gee_tree_map_range_type_type_id__volatile, gee_tree_map_range_type_type_id); } return gee_tree_map_range_type_type_id__volatile; @@ -3158,7 +2393,7 @@ self->priv->v_dup_func = v_dup_func; self->priv->v_destroy_func = v_destroy_func; if (key_compare_func == NULL) { - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GCompareDataFunc _tmp2_; _tmp2_ = gee_functions_get_compare_func_for (k_type, &_tmp0_, &_tmp1_); @@ -3171,7 +2406,7 @@ key_compare_func_target_destroy_notify = _tmp1_; } if (value_equal_func == NULL) { - void* _tmp3_ = NULL; + gpointer _tmp3_ = NULL; GDestroyNotify _tmp4_ = NULL; GeeEqualDataFunc _tmp5_; _tmp5_ = gee_functions_get_equal_func_for (v_type, &_tmp3_, &_tmp4_); @@ -3241,7 +2476,7 @@ return self ? gee_functions_equal_data_func_closure_ref (self) : NULL; } -G_GNUC_INTERNAL GeeTreeMap* + G_GNUC_INTERNAL GeeTreeMap* gee_tree_map_construct_with_closures (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, @@ -3275,7 +2510,7 @@ return self; } -G_GNUC_INTERNAL GeeTreeMap* + G_GNUC_INTERNAL GeeTreeMap* gee_tree_map_new_with_closures (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -4144,17 +3379,6 @@ } } } - if (value) { - *value = _vala_value; - } else { - ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL)); - } - if (prev) { - *prev = _vala_prev; - } - if (next) { - *next = _vala_next; - } } static void @@ -4399,7 +3623,7 @@ return result; } -G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* + G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_tree_map_get_key_compare_func_closure (GeeTreeMap* self) { GeeFunctionsCompareDataFuncClosure* _tmp0_; @@ -5031,14 +4255,22 @@ } } +static GType +gee_tree_map_node_color_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_TREE_MAP_NODE_COLOR_RED, "GEE_TREE_MAP_NODE_COLOR_RED", "red"}, {GEE_TREE_MAP_NODE_COLOR_BLACK, "GEE_TREE_MAP_NODE_COLOR_BLACK", "black"}, {0, NULL, NULL}}; + GType gee_tree_map_node_color_type_id; + gee_tree_map_node_color_type_id = g_enum_register_static ("GeeTreeMapNodeColor", values); + return gee_tree_map_node_color_type_id; +} + GType gee_tree_map_node_color_get_type (void) { static volatile gsize gee_tree_map_node_color_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_node_color_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_TREE_MAP_NODE_COLOR_RED, "GEE_TREE_MAP_NODE_COLOR_RED", "red"}, {GEE_TREE_MAP_NODE_COLOR_BLACK, "GEE_TREE_MAP_NODE_COLOR_BLACK", "black"}, {0, NULL, NULL}}; GType gee_tree_map_node_color_type_id; - gee_tree_map_node_color_type_id = g_enum_register_static ("GeeTreeMapNodeColor", values); + gee_tree_map_node_color_type_id = gee_tree_map_node_color_get_type_once (); g_once_init_leave (&gee_tree_map_node_color_type_id__volatile, gee_tree_map_node_color_type_id); } return gee_tree_map_node_color_type_id__volatile; @@ -5293,14 +4525,22 @@ } static GType +gee_tree_map_entry_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapEntry), 0, (GInstanceInitFunc) gee_tree_map_entry_instance_init, NULL }; + GType gee_tree_map_entry_type_id; + gee_tree_map_entry_type_id = g_type_register_static (GEE_MAP_TYPE_ENTRY, "GeeTreeMapEntry", &g_define_type_info, 0); + GeeTreeMapEntry_private_offset = g_type_add_instance_private (gee_tree_map_entry_type_id, sizeof (GeeTreeMapEntryPrivate)); + return gee_tree_map_entry_type_id; +} + +static GType gee_tree_map_entry_get_type (void) { static volatile gsize gee_tree_map_entry_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_entry_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapEntry), 0, (GInstanceInitFunc) gee_tree_map_entry_instance_init, NULL }; GType gee_tree_map_entry_type_id; - gee_tree_map_entry_type_id = g_type_register_static (GEE_MAP_TYPE_ENTRY, "GeeTreeMapEntry", &g_define_type_info, 0); - GeeTreeMapEntry_private_offset = g_type_add_instance_private (gee_tree_map_entry_type_id, sizeof (GeeTreeMapEntryPrivate)); + gee_tree_map_entry_type_id = gee_tree_map_entry_get_type_once (); g_once_init_leave (&gee_tree_map_entry_type_id__volatile, gee_tree_map_entry_type_id); } return gee_tree_map_entry_type_id__volatile; @@ -5426,10 +4666,10 @@ gpointer _tmp3_; gpointer _tmp4_; _tmp3_ = ((after != NULL) && (k_dup_func != NULL)) ? k_dup_func ((gpointer) after) : ((gpointer) after); - _k_destroy_func0 (self->priv->after); + ((self->priv->after == NULL) || (k_destroy_func == NULL)) ? NULL : (self->priv->after = (k_destroy_func (self->priv->after), NULL)); self->priv->after = _tmp3_; _tmp4_ = ((before != NULL) && (k_dup_func != NULL)) ? k_dup_func ((gpointer) before) : ((gpointer) before); - _k_destroy_func0 (self->priv->before); + ((self->priv->before == NULL) || (k_destroy_func == NULL)) ? NULL : (self->priv->before = (k_destroy_func (self->priv->before), NULL)); self->priv->before = _tmp4_; self->priv->type = GEE_TREE_MAP_RANGE_TYPE_BOUNDED; } else { @@ -5478,7 +4718,7 @@ _g_object_unref0 (self->priv->map); self->priv->map = _tmp0_; _tmp1_ = ((before != NULL) && (k_dup_func != NULL)) ? k_dup_func ((gpointer) before) : ((gpointer) before); - _k_destroy_func0 (self->priv->before); + ((self->priv->before == NULL) || (k_destroy_func == NULL)) ? NULL : (self->priv->before = (k_destroy_func (self->priv->before), NULL)); self->priv->before = _tmp1_; self->priv->type = GEE_TREE_MAP_RANGE_TYPE_HEAD; return self; @@ -5523,7 +4763,7 @@ _g_object_unref0 (self->priv->map); self->priv->map = _tmp0_; _tmp1_ = ((after != NULL) && (k_dup_func != NULL)) ? k_dup_func ((gpointer) after) : ((gpointer) after); - _k_destroy_func0 (self->priv->after); + ((self->priv->after == NULL) || (k_destroy_func == NULL)) ? NULL : (self->priv->after = (k_destroy_func (self->priv->after), NULL)); self->priv->after = _tmp1_; self->priv->type = GEE_TREE_MAP_RANGE_TYPE_TAIL; return self; @@ -6255,16 +5495,24 @@ } static GType +gee_tree_map_range_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_tree_map_value_range_init, gee_tree_map_value_range_free_value, gee_tree_map_value_range_copy_value, gee_tree_map_value_range_peek_pointer, "p", gee_tree_map_value_range_collect_value, "p", gee_tree_map_value_range_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapRangeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_range_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapRange), 0, (GInstanceInitFunc) gee_tree_map_range_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_tree_map_range_type_id; + gee_tree_map_range_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeTreeMapRange", &g_define_type_info, &g_define_type_fundamental_info, 0); + GeeTreeMapRange_private_offset = g_type_add_instance_private (gee_tree_map_range_type_id, sizeof (GeeTreeMapRangePrivate)); + return gee_tree_map_range_type_id; +} + +static GType gee_tree_map_range_get_type (void) { static volatile gsize gee_tree_map_range_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_range_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_tree_map_value_range_init, gee_tree_map_value_range_free_value, gee_tree_map_value_range_copy_value, gee_tree_map_value_range_peek_pointer, "p", gee_tree_map_value_range_collect_value, "p", gee_tree_map_value_range_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapRangeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_range_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapRange), 0, (GInstanceInitFunc) gee_tree_map_range_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_tree_map_range_type_id; - gee_tree_map_range_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeTreeMapRange", &g_define_type_info, &g_define_type_fundamental_info, 0); - GeeTreeMapRange_private_offset = g_type_add_instance_private (gee_tree_map_range_type_id, sizeof (GeeTreeMapRangePrivate)); + gee_tree_map_range_type_id = gee_tree_map_range_get_type_once (); g_once_init_leave (&gee_tree_map_range_type_id__volatile, gee_tree_map_range_type_id); } return gee_tree_map_range_type_id__volatile; @@ -6887,14 +6135,22 @@ } static GType +gee_tree_map_sub_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubMap), 0, (GInstanceInitFunc) gee_tree_map_sub_map_instance_init, NULL }; + GType gee_tree_map_sub_map_type_id; + gee_tree_map_sub_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, "GeeTreeMapSubMap", &g_define_type_info, 0); + GeeTreeMapSubMap_private_offset = g_type_add_instance_private (gee_tree_map_sub_map_type_id, sizeof (GeeTreeMapSubMapPrivate)); + return gee_tree_map_sub_map_type_id; +} + +static GType gee_tree_map_sub_map_get_type (void) { static volatile gsize gee_tree_map_sub_map_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_sub_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubMap), 0, (GInstanceInitFunc) gee_tree_map_sub_map_instance_init, NULL }; GType gee_tree_map_sub_map_type_id; - gee_tree_map_sub_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, "GeeTreeMapSubMap", &g_define_type_info, 0); - GeeTreeMapSubMap_private_offset = g_type_add_instance_private (gee_tree_map_sub_map_type_id, sizeof (GeeTreeMapSubMapPrivate)); + gee_tree_map_sub_map_type_id = gee_tree_map_sub_map_get_type_once (); g_once_init_leave (&gee_tree_map_sub_map_type_id__volatile, gee_tree_map_sub_map_type_id); } return gee_tree_map_sub_map_type_id__volatile; @@ -7405,14 +6661,22 @@ } static GType +gee_tree_map_key_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapKeySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_key_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapKeySet), 0, (GInstanceInitFunc) gee_tree_map_key_set_instance_init, NULL }; + GType gee_tree_map_key_set_type_id; + gee_tree_map_key_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeMapKeySet", &g_define_type_info, 0); + GeeTreeMapKeySet_private_offset = g_type_add_instance_private (gee_tree_map_key_set_type_id, sizeof (GeeTreeMapKeySetPrivate)); + return gee_tree_map_key_set_type_id; +} + +static GType gee_tree_map_key_set_get_type (void) { static volatile gsize gee_tree_map_key_set_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_key_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapKeySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_key_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapKeySet), 0, (GInstanceInitFunc) gee_tree_map_key_set_instance_init, NULL }; GType gee_tree_map_key_set_type_id; - gee_tree_map_key_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeMapKeySet", &g_define_type_info, 0); - GeeTreeMapKeySet_private_offset = g_type_add_instance_private (gee_tree_map_key_set_type_id, sizeof (GeeTreeMapKeySetPrivate)); + gee_tree_map_key_set_type_id = gee_tree_map_key_set_get_type_once (); g_once_init_leave (&gee_tree_map_key_set_type_id__volatile, gee_tree_map_key_set_type_id); } return gee_tree_map_key_set_type_id__volatile; @@ -8132,14 +7396,22 @@ } static GType +gee_tree_map_sub_key_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubKeySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_key_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubKeySet), 0, (GInstanceInitFunc) gee_tree_map_sub_key_set_instance_init, NULL }; + GType gee_tree_map_sub_key_set_type_id; + gee_tree_map_sub_key_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeMapSubKeySet", &g_define_type_info, 0); + GeeTreeMapSubKeySet_private_offset = g_type_add_instance_private (gee_tree_map_sub_key_set_type_id, sizeof (GeeTreeMapSubKeySetPrivate)); + return gee_tree_map_sub_key_set_type_id; +} + +static GType gee_tree_map_sub_key_set_get_type (void) { static volatile gsize gee_tree_map_sub_key_set_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_sub_key_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubKeySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_key_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubKeySet), 0, (GInstanceInitFunc) gee_tree_map_sub_key_set_instance_init, NULL }; GType gee_tree_map_sub_key_set_type_id; - gee_tree_map_sub_key_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeMapSubKeySet", &g_define_type_info, 0); - GeeTreeMapSubKeySet_private_offset = g_type_add_instance_private (gee_tree_map_sub_key_set_type_id, sizeof (GeeTreeMapSubKeySetPrivate)); + gee_tree_map_sub_key_set_type_id = gee_tree_map_sub_key_set_get_type_once (); g_once_init_leave (&gee_tree_map_sub_key_set_type_id__volatile, gee_tree_map_sub_key_set_type_id); } return gee_tree_map_sub_key_set_type_id__volatile; @@ -8431,14 +7703,22 @@ } static GType +gee_tree_map_value_collection_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapValueCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_value_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapValueCollection), 0, (GInstanceInitFunc) gee_tree_map_value_collection_instance_init, NULL }; + GType gee_tree_map_value_collection_type_id; + gee_tree_map_value_collection_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeTreeMapValueCollection", &g_define_type_info, 0); + GeeTreeMapValueCollection_private_offset = g_type_add_instance_private (gee_tree_map_value_collection_type_id, sizeof (GeeTreeMapValueCollectionPrivate)); + return gee_tree_map_value_collection_type_id; +} + +static GType gee_tree_map_value_collection_get_type (void) { static volatile gsize gee_tree_map_value_collection_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_value_collection_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapValueCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_value_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapValueCollection), 0, (GInstanceInitFunc) gee_tree_map_value_collection_instance_init, NULL }; GType gee_tree_map_value_collection_type_id; - gee_tree_map_value_collection_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeTreeMapValueCollection", &g_define_type_info, 0); - GeeTreeMapValueCollection_private_offset = g_type_add_instance_private (gee_tree_map_value_collection_type_id, sizeof (GeeTreeMapValueCollectionPrivate)); + gee_tree_map_value_collection_type_id = gee_tree_map_value_collection_get_type_once (); g_once_init_leave (&gee_tree_map_value_collection_type_id__volatile, gee_tree_map_value_collection_type_id); } return gee_tree_map_value_collection_type_id__volatile; @@ -8788,14 +8068,22 @@ } static GType +gee_tree_map_sub_value_collection_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubValueCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_value_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubValueCollection), 0, (GInstanceInitFunc) gee_tree_map_sub_value_collection_instance_init, NULL }; + GType gee_tree_map_sub_value_collection_type_id; + gee_tree_map_sub_value_collection_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeTreeMapSubValueCollection", &g_define_type_info, 0); + GeeTreeMapSubValueCollection_private_offset = g_type_add_instance_private (gee_tree_map_sub_value_collection_type_id, sizeof (GeeTreeMapSubValueCollectionPrivate)); + return gee_tree_map_sub_value_collection_type_id; +} + +static GType gee_tree_map_sub_value_collection_get_type (void) { static volatile gsize gee_tree_map_sub_value_collection_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_sub_value_collection_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubValueCollectionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_value_collection_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubValueCollection), 0, (GInstanceInitFunc) gee_tree_map_sub_value_collection_instance_init, NULL }; GType gee_tree_map_sub_value_collection_type_id; - gee_tree_map_sub_value_collection_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeTreeMapSubValueCollection", &g_define_type_info, 0); - GeeTreeMapSubValueCollection_private_offset = g_type_add_instance_private (gee_tree_map_sub_value_collection_type_id, sizeof (GeeTreeMapSubValueCollectionPrivate)); + gee_tree_map_sub_value_collection_type_id = gee_tree_map_sub_value_collection_get_type_once (); g_once_init_leave (&gee_tree_map_sub_value_collection_type_id__volatile, gee_tree_map_sub_value_collection_type_id); } return gee_tree_map_sub_value_collection_type_id__volatile; @@ -9426,14 +8714,22 @@ } static GType +gee_tree_map_entry_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapEntrySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_entry_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapEntrySet), 0, (GInstanceInitFunc) gee_tree_map_entry_set_instance_init, NULL }; + GType gee_tree_map_entry_set_type_id; + gee_tree_map_entry_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeMapEntrySet", &g_define_type_info, 0); + GeeTreeMapEntrySet_private_offset = g_type_add_instance_private (gee_tree_map_entry_set_type_id, sizeof (GeeTreeMapEntrySetPrivate)); + return gee_tree_map_entry_set_type_id; +} + +static GType gee_tree_map_entry_set_get_type (void) { static volatile gsize gee_tree_map_entry_set_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_entry_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapEntrySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_entry_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapEntrySet), 0, (GInstanceInitFunc) gee_tree_map_entry_set_instance_init, NULL }; GType gee_tree_map_entry_set_type_id; - gee_tree_map_entry_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeMapEntrySet", &g_define_type_info, 0); - GeeTreeMapEntrySet_private_offset = g_type_add_instance_private (gee_tree_map_entry_set_type_id, sizeof (GeeTreeMapEntrySetPrivate)); + gee_tree_map_entry_set_type_id = gee_tree_map_entry_set_get_type_once (); g_once_init_leave (&gee_tree_map_entry_set_type_id__volatile, gee_tree_map_entry_set_type_id); } return gee_tree_map_entry_set_type_id__volatile; @@ -10248,14 +9544,22 @@ } static GType +gee_tree_map_sub_entry_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubEntrySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_entry_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubEntrySet), 0, (GInstanceInitFunc) gee_tree_map_sub_entry_set_instance_init, NULL }; + GType gee_tree_map_sub_entry_set_type_id; + gee_tree_map_sub_entry_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeMapSubEntrySet", &g_define_type_info, 0); + GeeTreeMapSubEntrySet_private_offset = g_type_add_instance_private (gee_tree_map_sub_entry_set_type_id, sizeof (GeeTreeMapSubEntrySetPrivate)); + return gee_tree_map_sub_entry_set_type_id; +} + +static GType gee_tree_map_sub_entry_set_get_type (void) { static volatile gsize gee_tree_map_sub_entry_set_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_sub_entry_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubEntrySetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_entry_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubEntrySet), 0, (GInstanceInitFunc) gee_tree_map_sub_entry_set_instance_init, NULL }; GType gee_tree_map_sub_entry_set_type_id; - gee_tree_map_sub_entry_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeMapSubEntrySet", &g_define_type_info, 0); - GeeTreeMapSubEntrySet_private_offset = g_type_add_instance_private (gee_tree_map_sub_entry_set_type_id, sizeof (GeeTreeMapSubEntrySetPrivate)); + gee_tree_map_sub_entry_set_type_id = gee_tree_map_sub_entry_set_get_type_once (); g_once_init_leave (&gee_tree_map_sub_entry_set_type_id__volatile, gee_tree_map_sub_entry_set_type_id); } return gee_tree_map_sub_entry_set_type_id__volatile; @@ -10872,8 +10176,13 @@ static gboolean gee_tree_map_node_iterator_get_read_only (GeeTreeMapNodeIterator* self) { + GeeTreeMapNodeIteratorClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_TREE_MAP_NODE_ITERATOR_GET_CLASS (self)->get_read_only (self); + _klass_ = GEE_TREE_MAP_NODE_ITERATOR_GET_CLASS (self); + if (_klass_->get_read_only) { + return _klass_->get_read_only (self); + } + return FALSE; } static gboolean @@ -10935,14 +10244,22 @@ } static GType +gee_tree_map_node_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapNodeIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_node_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapNodeIterator), 0, (GInstanceInitFunc) gee_tree_map_node_iterator_instance_init, NULL }; + GType gee_tree_map_node_iterator_type_id; + gee_tree_map_node_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTreeMapNodeIterator", &g_define_type_info, 0); + GeeTreeMapNodeIterator_private_offset = g_type_add_instance_private (gee_tree_map_node_iterator_type_id, sizeof (GeeTreeMapNodeIteratorPrivate)); + return gee_tree_map_node_iterator_type_id; +} + +static GType gee_tree_map_node_iterator_get_type (void) { static volatile gsize gee_tree_map_node_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_node_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapNodeIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_node_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapNodeIterator), 0, (GInstanceInitFunc) gee_tree_map_node_iterator_instance_init, NULL }; GType gee_tree_map_node_iterator_type_id; - gee_tree_map_node_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTreeMapNodeIterator", &g_define_type_info, 0); - GeeTreeMapNodeIterator_private_offset = g_type_add_instance_private (gee_tree_map_node_iterator_type_id, sizeof (GeeTreeMapNodeIteratorPrivate)); + gee_tree_map_node_iterator_type_id = gee_tree_map_node_iterator_get_type_once (); g_once_init_leave (&gee_tree_map_node_iterator_type_id__volatile, gee_tree_map_node_iterator_type_id); } return gee_tree_map_node_iterator_type_id__volatile; @@ -11290,8 +10607,13 @@ gboolean gee_tree_map_sub_node_iterator_first (GeeTreeMapSubNodeIterator* self) { + GeeTreeMapSubNodeIteratorClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_CLASS (self)->first (self); + _klass_ = GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_CLASS (self); + if (_klass_->first) { + return _klass_->first (self); + } + return FALSE; } static gboolean @@ -11401,8 +10723,13 @@ gboolean gee_tree_map_sub_node_iterator_last (GeeTreeMapSubNodeIterator* self) { + GeeTreeMapSubNodeIteratorClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_CLASS (self)->last (self); + _klass_ = GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_CLASS (self); + if (_klass_->last) { + return _klass_->last (self); + } + return FALSE; } static void @@ -11451,15 +10778,25 @@ gee_tree_map_sub_node_iterator_iterator_pointing_at (GeeTreeMapSubNodeIterator* self, GeeTreeMapNode* node) { + GeeTreeMapSubNodeIteratorClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_CLASS (self)->iterator_pointing_at (self, node); + _klass_ = GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_CLASS (self); + if (_klass_->iterator_pointing_at) { + return _klass_->iterator_pointing_at (self, node); + } + return NULL; } static gboolean gee_tree_map_sub_node_iterator_get_read_only (GeeTreeMapSubNodeIterator* self) { + GeeTreeMapSubNodeIteratorClass* _klass_; g_return_val_if_fail (self != NULL, FALSE); - return GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_CLASS (self)->get_read_only (self); + _klass_ = GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_CLASS (self); + if (_klass_->get_read_only) { + return _klass_->get_read_only (self); + } + return FALSE; } static gboolean @@ -11538,14 +10875,22 @@ } static GType +gee_tree_map_sub_node_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubNodeIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_node_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubNodeIterator), 0, (GInstanceInitFunc) gee_tree_map_sub_node_iterator_instance_init, NULL }; + GType gee_tree_map_sub_node_iterator_type_id; + gee_tree_map_sub_node_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTreeMapSubNodeIterator", &g_define_type_info, 0); + GeeTreeMapSubNodeIterator_private_offset = g_type_add_instance_private (gee_tree_map_sub_node_iterator_type_id, sizeof (GeeTreeMapSubNodeIteratorPrivate)); + return gee_tree_map_sub_node_iterator_type_id; +} + +static GType gee_tree_map_sub_node_iterator_get_type (void) { static volatile gsize gee_tree_map_sub_node_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_sub_node_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubNodeIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_node_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubNodeIterator), 0, (GInstanceInitFunc) gee_tree_map_sub_node_iterator_instance_init, NULL }; GType gee_tree_map_sub_node_iterator_type_id; - gee_tree_map_sub_node_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTreeMapSubNodeIterator", &g_define_type_info, 0); - GeeTreeMapSubNodeIterator_private_offset = g_type_add_instance_private (gee_tree_map_sub_node_iterator_type_id, sizeof (GeeTreeMapSubNodeIteratorPrivate)); + gee_tree_map_sub_node_iterator_type_id = gee_tree_map_sub_node_iterator_get_type_once (); g_once_init_leave (&gee_tree_map_sub_node_iterator_type_id__volatile, gee_tree_map_sub_node_iterator_type_id); } return gee_tree_map_sub_node_iterator_type_id__volatile; @@ -11999,8 +11344,8 @@ iface->get_g_dup_func = (GBoxedCopyFunc (*) (GeeBidirIterator *)) gee_tree_map_key_iterator_gee_bidir_iterator_get_g_dup_func; iface->get_g_destroy_func = (GDestroyNotify (*) (GeeBidirIterator *)) gee_tree_map_key_iterator_gee_bidir_iterator_get_g_destroy_func; iface->previous = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_previous; - iface->last = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_last; iface->has_previous = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_has_previous; + iface->last = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_last; iface->first = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_first; } @@ -12012,20 +11357,28 @@ } static GType +gee_tree_map_key_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapKeyIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_key_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapKeyIterator), 0, (GInstanceInitFunc) gee_tree_map_key_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_key_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_key_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_key_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_tree_map_key_iterator_type_id; + gee_tree_map_key_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_NODE_ITERATOR, "GeeTreeMapKeyIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_tree_map_key_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_tree_map_key_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + g_type_add_interface_static (gee_tree_map_key_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); + GeeTreeMapKeyIterator_private_offset = g_type_add_instance_private (gee_tree_map_key_iterator_type_id, sizeof (GeeTreeMapKeyIteratorPrivate)); + return gee_tree_map_key_iterator_type_id; +} + +static GType gee_tree_map_key_iterator_get_type (void) { static volatile gsize gee_tree_map_key_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_key_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapKeyIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_key_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapKeyIterator), 0, (GInstanceInitFunc) gee_tree_map_key_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_key_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_key_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_key_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_tree_map_key_iterator_type_id; - gee_tree_map_key_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_NODE_ITERATOR, "GeeTreeMapKeyIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_tree_map_key_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_tree_map_key_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - g_type_add_interface_static (gee_tree_map_key_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); - GeeTreeMapKeyIterator_private_offset = g_type_add_instance_private (gee_tree_map_key_iterator_type_id, sizeof (GeeTreeMapKeyIteratorPrivate)); + gee_tree_map_key_iterator_type_id = gee_tree_map_key_iterator_get_type_once (); g_once_init_leave (&gee_tree_map_key_iterator_type_id__volatile, gee_tree_map_key_iterator_type_id); } return gee_tree_map_key_iterator_type_id__volatile; @@ -12448,8 +11801,8 @@ iface->get_g_dup_func = (GBoxedCopyFunc (*) (GeeBidirIterator *)) gee_tree_map_sub_key_iterator_gee_bidir_iterator_get_g_dup_func; iface->get_g_destroy_func = (GDestroyNotify (*) (GeeBidirIterator *)) gee_tree_map_sub_key_iterator_gee_bidir_iterator_get_g_destroy_func; iface->previous = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_previous; - iface->last = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_last; iface->has_previous = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_has_previous; + iface->last = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_last; iface->first = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_first; } @@ -12461,20 +11814,28 @@ } static GType +gee_tree_map_sub_key_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubKeyIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_key_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubKeyIterator), 0, (GInstanceInitFunc) gee_tree_map_sub_key_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_sub_key_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_key_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_key_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_tree_map_sub_key_iterator_type_id; + gee_tree_map_sub_key_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, "GeeTreeMapSubKeyIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_tree_map_sub_key_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_tree_map_sub_key_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + g_type_add_interface_static (gee_tree_map_sub_key_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); + GeeTreeMapSubKeyIterator_private_offset = g_type_add_instance_private (gee_tree_map_sub_key_iterator_type_id, sizeof (GeeTreeMapSubKeyIteratorPrivate)); + return gee_tree_map_sub_key_iterator_type_id; +} + +static GType gee_tree_map_sub_key_iterator_get_type (void) { static volatile gsize gee_tree_map_sub_key_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_sub_key_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubKeyIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_key_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubKeyIterator), 0, (GInstanceInitFunc) gee_tree_map_sub_key_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_sub_key_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_key_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_key_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_tree_map_sub_key_iterator_type_id; - gee_tree_map_sub_key_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, "GeeTreeMapSubKeyIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_tree_map_sub_key_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_tree_map_sub_key_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - g_type_add_interface_static (gee_tree_map_sub_key_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); - GeeTreeMapSubKeyIterator_private_offset = g_type_add_instance_private (gee_tree_map_sub_key_iterator_type_id, sizeof (GeeTreeMapSubKeyIteratorPrivate)); + gee_tree_map_sub_key_iterator_type_id = gee_tree_map_sub_key_iterator_get_type_once (); g_once_init_leave (&gee_tree_map_sub_key_iterator_type_id__volatile, gee_tree_map_sub_key_iterator_type_id); } return gee_tree_map_sub_key_iterator_type_id__volatile; @@ -12924,8 +12285,8 @@ iface->get_g_dup_func = (GBoxedCopyFunc (*) (GeeBidirIterator *)) gee_tree_map_value_iterator_gee_bidir_iterator_get_g_dup_func; iface->get_g_destroy_func = (GDestroyNotify (*) (GeeBidirIterator *)) gee_tree_map_value_iterator_gee_bidir_iterator_get_g_destroy_func; iface->previous = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_previous; - iface->last = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_last; iface->has_previous = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_has_previous; + iface->last = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_last; iface->first = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_first; } @@ -12937,20 +12298,28 @@ } static GType +gee_tree_map_value_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapValueIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_value_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapValueIterator), 0, (GInstanceInitFunc) gee_tree_map_value_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_value_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_value_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_value_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_tree_map_value_iterator_type_id; + gee_tree_map_value_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_NODE_ITERATOR, "GeeTreeMapValueIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_tree_map_value_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_tree_map_value_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + g_type_add_interface_static (gee_tree_map_value_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); + GeeTreeMapValueIterator_private_offset = g_type_add_instance_private (gee_tree_map_value_iterator_type_id, sizeof (GeeTreeMapValueIteratorPrivate)); + return gee_tree_map_value_iterator_type_id; +} + +static GType gee_tree_map_value_iterator_get_type (void) { static volatile gsize gee_tree_map_value_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_value_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapValueIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_value_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapValueIterator), 0, (GInstanceInitFunc) gee_tree_map_value_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_value_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_value_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_value_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_tree_map_value_iterator_type_id; - gee_tree_map_value_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_NODE_ITERATOR, "GeeTreeMapValueIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_tree_map_value_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_tree_map_value_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - g_type_add_interface_static (gee_tree_map_value_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); - GeeTreeMapValueIterator_private_offset = g_type_add_instance_private (gee_tree_map_value_iterator_type_id, sizeof (GeeTreeMapValueIteratorPrivate)); + gee_tree_map_value_iterator_type_id = gee_tree_map_value_iterator_get_type_once (); g_once_init_leave (&gee_tree_map_value_iterator_type_id__volatile, gee_tree_map_value_iterator_type_id); } return gee_tree_map_value_iterator_type_id__volatile; @@ -13373,8 +12742,8 @@ iface->get_g_dup_func = (GBoxedCopyFunc (*) (GeeBidirIterator *)) gee_tree_map_sub_value_iterator_gee_bidir_iterator_get_g_dup_func; iface->get_g_destroy_func = (GDestroyNotify (*) (GeeBidirIterator *)) gee_tree_map_sub_value_iterator_gee_bidir_iterator_get_g_destroy_func; iface->previous = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_previous; - iface->last = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_last; iface->has_previous = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_has_previous; + iface->last = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_last; iface->first = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_first; } @@ -13386,20 +12755,28 @@ } static GType +gee_tree_map_sub_value_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubValueIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_value_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubValueIterator), 0, (GInstanceInitFunc) gee_tree_map_sub_value_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_sub_value_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_value_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_value_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_tree_map_sub_value_iterator_type_id; + gee_tree_map_sub_value_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, "GeeTreeMapSubValueIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_tree_map_sub_value_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_tree_map_sub_value_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + g_type_add_interface_static (gee_tree_map_sub_value_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); + GeeTreeMapSubValueIterator_private_offset = g_type_add_instance_private (gee_tree_map_sub_value_iterator_type_id, sizeof (GeeTreeMapSubValueIteratorPrivate)); + return gee_tree_map_sub_value_iterator_type_id; +} + +static GType gee_tree_map_sub_value_iterator_get_type (void) { static volatile gsize gee_tree_map_sub_value_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_sub_value_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubValueIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_value_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubValueIterator), 0, (GInstanceInitFunc) gee_tree_map_sub_value_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_sub_value_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_value_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_value_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_tree_map_sub_value_iterator_type_id; - gee_tree_map_sub_value_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, "GeeTreeMapSubValueIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_tree_map_sub_value_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_tree_map_sub_value_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - g_type_add_interface_static (gee_tree_map_sub_value_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); - GeeTreeMapSubValueIterator_private_offset = g_type_add_instance_private (gee_tree_map_sub_value_iterator_type_id, sizeof (GeeTreeMapSubValueIteratorPrivate)); + gee_tree_map_sub_value_iterator_type_id = gee_tree_map_sub_value_iterator_get_type_once (); g_once_init_leave (&gee_tree_map_sub_value_iterator_type_id__volatile, gee_tree_map_sub_value_iterator_type_id); } return gee_tree_map_sub_value_iterator_type_id__volatile; @@ -13851,8 +13228,8 @@ iface->get_g_dup_func = (GBoxedCopyFunc (*) (GeeBidirIterator *)) gee_tree_map_entry_iterator_gee_bidir_iterator_get_g_dup_func; iface->get_g_destroy_func = (GDestroyNotify (*) (GeeBidirIterator *)) gee_tree_map_entry_iterator_gee_bidir_iterator_get_g_destroy_func; iface->previous = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_previous; - iface->last = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_last; iface->has_previous = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_has_previous; + iface->last = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_last; iface->first = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_node_iterator_first; } @@ -13864,20 +13241,28 @@ } static GType +gee_tree_map_entry_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapEntryIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_entry_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapEntryIterator), 0, (GInstanceInitFunc) gee_tree_map_entry_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_entry_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_entry_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_entry_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_tree_map_entry_iterator_type_id; + gee_tree_map_entry_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_NODE_ITERATOR, "GeeTreeMapEntryIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_tree_map_entry_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_tree_map_entry_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + g_type_add_interface_static (gee_tree_map_entry_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); + GeeTreeMapEntryIterator_private_offset = g_type_add_instance_private (gee_tree_map_entry_iterator_type_id, sizeof (GeeTreeMapEntryIteratorPrivate)); + return gee_tree_map_entry_iterator_type_id; +} + +static GType gee_tree_map_entry_iterator_get_type (void) { static volatile gsize gee_tree_map_entry_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_entry_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapEntryIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_entry_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapEntryIterator), 0, (GInstanceInitFunc) gee_tree_map_entry_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_entry_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_entry_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_entry_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_tree_map_entry_iterator_type_id; - gee_tree_map_entry_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_NODE_ITERATOR, "GeeTreeMapEntryIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_tree_map_entry_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_tree_map_entry_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - g_type_add_interface_static (gee_tree_map_entry_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); - GeeTreeMapEntryIterator_private_offset = g_type_add_instance_private (gee_tree_map_entry_iterator_type_id, sizeof (GeeTreeMapEntryIteratorPrivate)); + gee_tree_map_entry_iterator_type_id = gee_tree_map_entry_iterator_get_type_once (); g_once_init_leave (&gee_tree_map_entry_iterator_type_id__volatile, gee_tree_map_entry_iterator_type_id); } return gee_tree_map_entry_iterator_type_id__volatile; @@ -14300,8 +13685,8 @@ iface->get_g_dup_func = (GBoxedCopyFunc (*) (GeeBidirIterator *)) gee_tree_map_sub_entry_iterator_gee_bidir_iterator_get_g_dup_func; iface->get_g_destroy_func = (GDestroyNotify (*) (GeeBidirIterator *)) gee_tree_map_sub_entry_iterator_gee_bidir_iterator_get_g_destroy_func; iface->previous = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_previous; - iface->last = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_last; iface->has_previous = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_has_previous; + iface->last = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_last; iface->first = (gboolean (*) (GeeBidirIterator*)) gee_tree_map_sub_node_iterator_first; } @@ -14313,20 +13698,28 @@ } static GType +gee_tree_map_sub_entry_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubEntryIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_entry_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubEntryIterator), 0, (GInstanceInitFunc) gee_tree_map_sub_entry_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_sub_entry_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_entry_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_entry_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_tree_map_sub_entry_iterator_type_id; + gee_tree_map_sub_entry_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, "GeeTreeMapSubEntryIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_tree_map_sub_entry_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_tree_map_sub_entry_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + g_type_add_interface_static (gee_tree_map_sub_entry_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); + GeeTreeMapSubEntryIterator_private_offset = g_type_add_instance_private (gee_tree_map_sub_entry_iterator_type_id, sizeof (GeeTreeMapSubEntryIteratorPrivate)); + return gee_tree_map_sub_entry_iterator_type_id; +} + +static GType gee_tree_map_sub_entry_iterator_get_type (void) { static volatile gsize gee_tree_map_sub_entry_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_sub_entry_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubEntryIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_entry_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubEntryIterator), 0, (GInstanceInitFunc) gee_tree_map_sub_entry_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_sub_entry_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_entry_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_entry_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_tree_map_sub_entry_iterator_type_id; - gee_tree_map_sub_entry_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, "GeeTreeMapSubEntryIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_tree_map_sub_entry_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_tree_map_sub_entry_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - g_type_add_interface_static (gee_tree_map_sub_entry_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); - GeeTreeMapSubEntryIterator_private_offset = g_type_add_instance_private (gee_tree_map_sub_entry_iterator_type_id, sizeof (GeeTreeMapSubEntryIteratorPrivate)); + gee_tree_map_sub_entry_iterator_type_id = gee_tree_map_sub_entry_iterator_get_type_once (); g_once_init_leave (&gee_tree_map_sub_entry_iterator_type_id__volatile, gee_tree_map_sub_entry_iterator_type_id); } return gee_tree_map_sub_entry_iterator_type_id__volatile; @@ -14598,8 +13991,8 @@ iface->get_v_dup_func = (GBoxedCopyFunc (*) (GeeMapIterator *)) gee_tree_map_map_iterator_gee_map_iterator_get_v_dup_func; iface->get_v_destroy_func = (GDestroyNotify (*) (GeeMapIterator *)) gee_tree_map_map_iterator_gee_map_iterator_get_v_destroy_func; iface->next = (gboolean (*) (GeeMapIterator*)) gee_tree_map_node_iterator_next; - iface->unset = (void (*) (GeeMapIterator*)) gee_tree_map_node_iterator_unset; iface->has_next = (gboolean (*) (GeeMapIterator*)) gee_tree_map_node_iterator_has_next; + iface->unset = (void (*) (GeeMapIterator*)) gee_tree_map_node_iterator_unset; iface->get_read_only = gee_tree_map_map_iterator_real_get_read_only; iface->get_mutable = gee_tree_map_map_iterator_real_get_mutable; iface->get_valid = (gboolean (*) (GeeMapIterator *)) gee_tree_map_node_iterator_get_valid; @@ -14652,10 +14045,10 @@ iface->get_v_type = (GType (*) (GeeBidirMapIterator *)) gee_tree_map_map_iterator_gee_bidir_map_iterator_get_v_type; iface->get_v_dup_func = (GBoxedCopyFunc (*) (GeeBidirMapIterator *)) gee_tree_map_map_iterator_gee_bidir_map_iterator_get_v_dup_func; iface->get_v_destroy_func = (GDestroyNotify (*) (GeeBidirMapIterator *)) gee_tree_map_map_iterator_gee_bidir_map_iterator_get_v_destroy_func; + iface->has_previous = (gboolean (*) (GeeBidirMapIterator*)) gee_tree_map_node_iterator_has_previous; iface->first = (gboolean (*) (GeeBidirMapIterator*)) gee_tree_map_node_iterator_first; iface->previous = (gboolean (*) (GeeBidirMapIterator*)) gee_tree_map_node_iterator_previous; iface->last = (gboolean (*) (GeeBidirMapIterator*)) gee_tree_map_node_iterator_last; - iface->has_previous = (gboolean (*) (GeeBidirMapIterator*)) gee_tree_map_node_iterator_has_previous; } static void @@ -14666,18 +14059,26 @@ } static GType +gee_tree_map_map_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapMapIterator), 0, (GInstanceInitFunc) gee_tree_map_map_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_tree_map_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_map_iterator_info = { (GInterfaceInitFunc) gee_tree_map_map_iterator_gee_bidir_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_tree_map_map_iterator_type_id; + gee_tree_map_map_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_NODE_ITERATOR, "GeeTreeMapMapIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_tree_map_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info); + g_type_add_interface_static (gee_tree_map_map_iterator_type_id, GEE_TYPE_BIDIR_MAP_ITERATOR, &gee_bidir_map_iterator_info); + GeeTreeMapMapIterator_private_offset = g_type_add_instance_private (gee_tree_map_map_iterator_type_id, sizeof (GeeTreeMapMapIteratorPrivate)); + return gee_tree_map_map_iterator_type_id; +} + +static GType gee_tree_map_map_iterator_get_type (void) { static volatile gsize gee_tree_map_map_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_map_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapMapIterator), 0, (GInstanceInitFunc) gee_tree_map_map_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_tree_map_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_map_iterator_info = { (GInterfaceInitFunc) gee_tree_map_map_iterator_gee_bidir_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_tree_map_map_iterator_type_id; - gee_tree_map_map_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_NODE_ITERATOR, "GeeTreeMapMapIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_tree_map_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info); - g_type_add_interface_static (gee_tree_map_map_iterator_type_id, GEE_TYPE_BIDIR_MAP_ITERATOR, &gee_bidir_map_iterator_info); - GeeTreeMapMapIterator_private_offset = g_type_add_instance_private (gee_tree_map_map_iterator_type_id, sizeof (GeeTreeMapMapIteratorPrivate)); + gee_tree_map_map_iterator_type_id = gee_tree_map_map_iterator_get_type_once (); g_once_init_leave (&gee_tree_map_map_iterator_type_id__volatile, gee_tree_map_map_iterator_type_id); } return gee_tree_map_map_iterator_type_id__volatile; @@ -14955,8 +14356,8 @@ iface->get_v_dup_func = (GBoxedCopyFunc (*) (GeeMapIterator *)) gee_tree_map_sub_map_iterator_gee_map_iterator_get_v_dup_func; iface->get_v_destroy_func = (GDestroyNotify (*) (GeeMapIterator *)) gee_tree_map_sub_map_iterator_gee_map_iterator_get_v_destroy_func; iface->next = (gboolean (*) (GeeMapIterator*)) gee_tree_map_sub_node_iterator_next; - iface->unset = (void (*) (GeeMapIterator*)) gee_tree_map_sub_node_iterator_unset; iface->has_next = (gboolean (*) (GeeMapIterator*)) gee_tree_map_sub_node_iterator_has_next; + iface->unset = (void (*) (GeeMapIterator*)) gee_tree_map_sub_node_iterator_unset; iface->get_read_only = gee_tree_map_sub_map_iterator_real_get_read_only; iface->get_mutable = gee_tree_map_sub_map_iterator_real_get_mutable; iface->get_valid = (gboolean (*) (GeeMapIterator *)) gee_tree_map_sub_node_iterator_get_valid; @@ -15009,10 +14410,10 @@ iface->get_v_type = (GType (*) (GeeBidirMapIterator *)) gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_v_type; iface->get_v_dup_func = (GBoxedCopyFunc (*) (GeeBidirMapIterator *)) gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_v_dup_func; iface->get_v_destroy_func = (GDestroyNotify (*) (GeeBidirMapIterator *)) gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_v_destroy_func; + iface->has_previous = (gboolean (*) (GeeBidirMapIterator*)) gee_tree_map_sub_node_iterator_has_previous; iface->first = (gboolean (*) (GeeBidirMapIterator*)) gee_tree_map_sub_node_iterator_first; iface->previous = (gboolean (*) (GeeBidirMapIterator*)) gee_tree_map_sub_node_iterator_previous; iface->last = (gboolean (*) (GeeBidirMapIterator*)) gee_tree_map_sub_node_iterator_last; - iface->has_previous = (gboolean (*) (GeeBidirMapIterator*)) gee_tree_map_sub_node_iterator_has_previous; } static void @@ -15023,18 +14424,26 @@ } static GType +gee_tree_map_sub_map_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubMapIterator), 0, (GInstanceInitFunc) gee_tree_map_sub_map_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_map_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_tree_map_sub_map_iterator_type_id; + gee_tree_map_sub_map_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, "GeeTreeMapSubMapIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_tree_map_sub_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info); + g_type_add_interface_static (gee_tree_map_sub_map_iterator_type_id, GEE_TYPE_BIDIR_MAP_ITERATOR, &gee_bidir_map_iterator_info); + GeeTreeMapSubMapIterator_private_offset = g_type_add_instance_private (gee_tree_map_sub_map_iterator_type_id, sizeof (GeeTreeMapSubMapIteratorPrivate)); + return gee_tree_map_sub_map_iterator_type_id; +} + +static GType gee_tree_map_sub_map_iterator_get_type (void) { static volatile gsize gee_tree_map_sub_map_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_sub_map_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapSubMapIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_sub_map_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMapSubMapIterator), 0, (GInstanceInitFunc) gee_tree_map_sub_map_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_map_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_tree_map_sub_map_iterator_type_id; - gee_tree_map_sub_map_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, "GeeTreeMapSubMapIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_tree_map_sub_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info); - g_type_add_interface_static (gee_tree_map_sub_map_iterator_type_id, GEE_TYPE_BIDIR_MAP_ITERATOR, &gee_bidir_map_iterator_info); - GeeTreeMapSubMapIterator_private_offset = g_type_add_instance_private (gee_tree_map_sub_map_iterator_type_id, sizeof (GeeTreeMapSubMapIteratorPrivate)); + gee_tree_map_sub_map_iterator_type_id = gee_tree_map_sub_map_iterator_get_type_once (); g_once_init_leave (&gee_tree_map_sub_map_iterator_type_id__volatile, gee_tree_map_sub_map_iterator_type_id); } return gee_tree_map_sub_map_iterator_type_id__volatile; @@ -15205,15 +14614,23 @@ * * @see HashMap */ +static GType +gee_tree_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMap), 0, (GInstanceInitFunc) gee_tree_map_instance_init, NULL }; + GType gee_tree_map_type_id; + gee_tree_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, "GeeTreeMap", &g_define_type_info, 0); + GeeTreeMap_private_offset = g_type_add_instance_private (gee_tree_map_type_id, sizeof (GeeTreeMapPrivate)); + return gee_tree_map_type_id; +} + GType gee_tree_map_get_type (void) { static volatile gsize gee_tree_map_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMap), 0, (GInstanceInitFunc) gee_tree_map_instance_init, NULL }; GType gee_tree_map_type_id; - gee_tree_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, "GeeTreeMap", &g_define_type_info, 0); - GeeTreeMap_private_offset = g_type_add_instance_private (gee_tree_map_type_id, sizeof (GeeTreeMapPrivate)); + gee_tree_map_type_id = gee_tree_map_get_type_once (); g_once_init_leave (&gee_tree_map_type_id__volatile, gee_tree_map_type_id); } return gee_tree_map_type_id__volatile; @@ -15312,7 +14729,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/treemultimap.c libgee-0.8-0.20.4/gee/treemultimap.c --- libgee-0.8-0.20.3/gee/treemultimap.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/treemultimap.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* treemultimap.c generated by valac 0.46.6, the Vala compiler +/* treemultimap.c generated by valac 0.52.0, the Vala compiler * generated from treemultimap.vala, do not modify */ /* treemultimap.vala @@ -23,140 +23,10 @@ * Didier 'Ptitjes Villevalois */ +#include "gee.h" #include #include -#define GEE_TYPE_MULTI_MAP (gee_multi_map_get_type ()) -#define GEE_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMap)) -#define GEE_IS_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_MAP)) -#define GEE_MULTI_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMapIface)) - -typedef struct _GeeMultiMap GeeMultiMap; -typedef struct _GeeMultiMapIface GeeMultiMapIface; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_MULTI_SET (gee_multi_set_get_type ()) -#define GEE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_SET, GeeMultiSet)) -#define GEE_IS_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_SET)) -#define GEE_MULTI_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface)) - -typedef struct _GeeMultiSet GeeMultiSet; -typedef struct _GeeMultiSetIface GeeMultiSetIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_MULTI_MAP (gee_abstract_multi_map_get_type ()) -#define GEE_ABSTRACT_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMap)) -#define GEE_ABSTRACT_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMapClass)) -#define GEE_IS_ABSTRACT_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MULTI_MAP)) -#define GEE_IS_ABSTRACT_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MULTI_MAP)) -#define GEE_ABSTRACT_MULTI_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MULTI_MAP, GeeAbstractMultiMapClass)) - -typedef struct _GeeAbstractMultiMap GeeAbstractMultiMap; -typedef struct _GeeAbstractMultiMapClass GeeAbstractMultiMapClass; -typedef struct _GeeAbstractMultiMapPrivate GeeAbstractMultiMapPrivate; -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - -#define GEE_TYPE_TREE_MULTI_MAP (gee_tree_multi_map_get_type ()) -#define GEE_TREE_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_MULTI_MAP, GeeTreeMultiMap)) -#define GEE_TREE_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_MULTI_MAP, GeeTreeMultiMapClass)) -#define GEE_IS_TREE_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_MULTI_MAP)) -#define GEE_IS_TREE_MULTI_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_MULTI_MAP)) -#define GEE_TREE_MULTI_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_MULTI_MAP, GeeTreeMultiMapClass)) - -typedef struct _GeeTreeMultiMap GeeTreeMultiMap; -typedef struct _GeeTreeMultiMapClass GeeTreeMultiMapClass; -typedef struct _GeeTreeMultiMapPrivate GeeTreeMultiMapPrivate; - #define GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE (gee_functions_compare_data_func_closure_get_type ()) #define GEE_FUNCTIONS_COMPARE_DATA_FUNC_CLOSURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE, GeeFunctionsCompareDataFuncClosure)) #define GEE_FUNCTIONS_COMPARE_DATA_FUNC_CLOSURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE, GeeFunctionsCompareDataFuncClosureClass)) @@ -178,306 +48,9 @@ }; static GParamSpec* gee_tree_multi_map_properties[GEE_TREE_MULTI_MAP_NUM_PROPERTIES]; #define _gee_functions_compare_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_compare_data_func_closure_unref (var), NULL))) - -#define GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type ()) -#define GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)) -#define GEE_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) -#define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) - -typedef struct _GeeAbstractMap GeeAbstractMap; -typedef struct _GeeAbstractMapClass GeeAbstractMapClass; - -#define GEE_TYPE_ABSTRACT_SORTED_MAP (gee_abstract_sorted_map_get_type ()) -#define GEE_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMap)) -#define GEE_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) -#define GEE_IS_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_IS_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_ABSTRACT_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) - -typedef struct _GeeAbstractSortedMap GeeAbstractSortedMap; -typedef struct _GeeAbstractSortedMapClass GeeAbstractSortedMapClass; - -#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP (gee_abstract_bidir_sorted_map_get_type ()) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMap)) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP)) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass)) - -typedef struct _GeeAbstractBidirSortedMap GeeAbstractBidirSortedMap; -typedef struct _GeeAbstractBidirSortedMapClass GeeAbstractBidirSortedMapClass; - -#define GEE_TYPE_TREE_MAP (gee_tree_map_get_type ()) -#define GEE_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_MAP, GeeTreeMap)) -#define GEE_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_MAP, GeeTreeMapClass)) -#define GEE_IS_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_MAP)) -#define GEE_IS_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_MAP)) -#define GEE_TREE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_MAP, GeeTreeMapClass)) - -typedef struct _GeeTreeMap GeeTreeMap; -typedef struct _GeeTreeMapClass GeeTreeMapClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; - -#define GEE_TYPE_ABSTRACT_SORTED_SET (gee_abstract_sorted_set_get_type ()) -#define GEE_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet)) -#define GEE_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) -#define GEE_IS_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_IS_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_ABSTRACT_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) - -typedef struct _GeeAbstractSortedSet GeeAbstractSortedSet; -typedef struct _GeeAbstractSortedSetClass GeeAbstractSortedSetClass; - -#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET (gee_abstract_bidir_sorted_set_get_type ()) -#define GEE_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSet)) -#define GEE_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET)) -#define GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass)) - -typedef struct _GeeAbstractBidirSortedSet GeeAbstractBidirSortedSet; -typedef struct _GeeAbstractBidirSortedSetClass GeeAbstractBidirSortedSetClass; - -#define GEE_TYPE_TREE_SET (gee_tree_set_get_type ()) -#define GEE_TREE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_SET, GeeTreeSet)) -#define GEE_TREE_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_SET, GeeTreeSetClass)) -#define GEE_IS_TREE_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_SET)) -#define GEE_IS_TREE_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_SET)) -#define GEE_TREE_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_SET, GeeTreeSetClass)) - -typedef struct _GeeTreeSet GeeTreeSet; -typedef struct _GeeTreeSetClass GeeTreeSetClass; - -#define GEE_TYPE_ABSTRACT_MULTI_SET (gee_abstract_multi_set_get_type ()) -#define GEE_ABSTRACT_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSet)) -#define GEE_ABSTRACT_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSetClass)) -#define GEE_IS_ABSTRACT_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MULTI_SET)) -#define GEE_IS_ABSTRACT_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MULTI_SET)) -#define GEE_ABSTRACT_MULTI_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSetClass)) - -typedef struct _GeeAbstractMultiSet GeeAbstractMultiSet; -typedef struct _GeeAbstractMultiSetClass GeeAbstractMultiSetClass; - -#define GEE_TYPE_TREE_MULTI_SET (gee_tree_multi_set_get_type ()) -#define GEE_TREE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_MULTI_SET, GeeTreeMultiSet)) -#define GEE_TREE_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_MULTI_SET, GeeTreeMultiSetClass)) -#define GEE_IS_TREE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_MULTI_SET)) -#define GEE_IS_TREE_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_MULTI_SET)) -#define GEE_TREE_MULTI_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_MULTI_SET, GeeTreeMultiSetClass)) - -typedef struct _GeeTreeMultiSet GeeTreeMultiSet; -typedef struct _GeeTreeMultiSetClass GeeTreeMultiSetClass; typedef struct _GeeFunctionsCompareDataFuncClosurePrivate GeeFunctionsCompareDataFuncClosurePrivate; -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMultiSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeMultiSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeMultiSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeMultiSet* self); - gint (*count) (GeeMultiSet* self, gconstpointer item); - GeeMultiSet* (*get_read_only_view) (GeeMultiSet* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeMultiMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMultiMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMultiMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMultiMap* self); - GType (*get_v_type) (GeeMultiMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMultiMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMultiMap* self); - GeeSet* (*get_keys) (GeeMultiMap* self); - GeeMultiSet* (*get_all_keys) (GeeMultiMap* self); - GeeCollection* (*get_values) (GeeMultiMap* self); - gboolean (*contains) (GeeMultiMap* self, gconstpointer key); - GeeCollection* (*get) (GeeMultiMap* self, gconstpointer key); - void (*set) (GeeMultiMap* self, gconstpointer key, gconstpointer value); - gboolean (*remove) (GeeMultiMap* self, gconstpointer key, gconstpointer value); - gboolean (*remove_all) (GeeMultiMap* self, gconstpointer key); - void (*clear) (GeeMultiMap* self); - GeeMapIterator* (*map_iterator) (GeeMultiMap* self); - gint (*get_size) (GeeMultiMap* self); - gboolean (*get_read_only) (GeeMultiMap* self); - GeeMultiMap* (*get_read_only_view) (GeeMultiMap* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeAbstractMultiMap { - GObject parent_instance; - GeeAbstractMultiMapPrivate * priv; - GeeMap* _storage_map; -}; - -struct _GeeAbstractMultiMapClass { - GObjectClass parent_class; - GeeCollection* (*create_value_storage) (GeeAbstractMultiMap* self); - GeeMultiSet* (*create_multi_key_set) (GeeAbstractMultiMap* self); - GeeEqualDataFunc (*get_value_equal_func) (GeeAbstractMultiMap* self, gpointer* result_target, GDestroyNotify* result_target_destroy_notify); - void (*reserved0) (GeeAbstractMultiMap* self); - void (*reserved1) (GeeAbstractMultiMap* self); - void (*reserved2) (GeeAbstractMultiMap* self); - void (*reserved3) (GeeAbstractMultiMap* self); - void (*reserved4) (GeeAbstractMultiMap* self); - void (*reserved5) (GeeAbstractMultiMap* self); - void (*reserved6) (GeeAbstractMultiMap* self); - void (*reserved7) (GeeAbstractMultiMap* self); - void (*reserved8) (GeeAbstractMultiMap* self); - GeeMultiMap* (*get_read_only_view) (GeeAbstractMultiMap* self); -}; - -struct _GeeTreeMultiMap { - GeeAbstractMultiMap parent_instance; - GeeTreeMultiMapPrivate * priv; -}; - -struct _GeeTreeMultiMapClass { - GeeAbstractMultiMapClass parent_class; -}; - struct _GeeTreeMultiMapPrivate { GType k_type; GBoxedCopyFunc k_dup_func; @@ -505,129 +78,26 @@ static gint GeeTreeMultiMap_private_offset; static gpointer gee_tree_multi_map_parent_class = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_multi_set_get_type (void) G_GNUC_CONST; -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_multi_map_get_type (void) G_GNUC_CONST; -GType gee_abstract_multi_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiMap, g_object_unref) -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GType gee_tree_multi_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMultiMap, g_object_unref) -G_GNUC_INTERNAL gpointer gee_functions_compare_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_compare_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_compare_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_compare_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_compare_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_compare_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_compare_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_compare_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_compare_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_compare_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_compare_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_compare_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsCompareDataFuncClosure, gee_functions_compare_data_func_closure_unref) -GeeTreeMultiMap* gee_tree_multi_map_new (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GCompareDataFunc key_compare_func, - gpointer key_compare_func_target, - GDestroyNotify key_compare_func_target_destroy_notify, - GCompareDataFunc value_compare_func, - gpointer value_compare_func_target, - GDestroyNotify value_compare_func_target_destroy_notify); -GeeTreeMultiMap* gee_tree_multi_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GCompareDataFunc key_compare_func, - gpointer key_compare_func_target, - GDestroyNotify key_compare_func_target_destroy_notify, - GCompareDataFunc value_compare_func, - gpointer value_compare_func_target, - GDestroyNotify value_compare_func_target_destroy_notify); -GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -GeeTreeMap* gee_tree_map_new (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GCompareDataFunc key_compare_func, - gpointer key_compare_func_target, - GDestroyNotify key_compare_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GeeTreeMap* gee_tree_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GCompareDataFunc key_compare_func, - gpointer key_compare_func_target, - GDestroyNotify key_compare_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GType gee_abstract_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMap, g_object_unref) -GType gee_abstract_sorted_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedMap, g_object_unref) -GType gee_abstract_bidir_sorted_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedMap, g_object_unref) -GType gee_tree_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMap, g_object_unref) -GeeAbstractMultiMap* gee_abstract_multi_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GeeMap* storage_map); -GCompareDataFunc gee_functions_get_compare_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL gpointer gee_functions_value_get_compare_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_compare_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -635,53 +105,34 @@ gpointer func_target, GDestroyNotify func_target_destroy_notify); static GeeCollection* gee_tree_multi_map_real_create_value_storage (GeeAbstractMultiMap* base); -G_GNUC_INTERNAL GeeTreeSet* gee_tree_set_new_with_closures (GType g_type, + G_GNUC_INTERNAL GeeTreeSet* gee_tree_set_new_with_closures (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsCompareDataFuncClosure* compare_func); -G_GNUC_INTERNAL GeeTreeSet* gee_tree_set_construct_with_closures (GType object_type, + G_GNUC_INTERNAL GeeTreeSet* gee_tree_set_construct_with_closures (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsCompareDataFuncClosure* compare_func); -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedSet, g_object_unref) -GType gee_abstract_bidir_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedSet, g_object_unref) -GType gee_tree_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeSet, g_object_unref) static GeeMultiSet* gee_tree_multi_map_real_create_multi_key_set (GeeAbstractMultiMap* base); -G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_tree_map_get_key_compare_func_closure (GeeTreeMap* self); -G_GNUC_INTERNAL GeeTreeMultiSet* gee_tree_multi_set_new_with_closures (GType g_type, + G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_tree_map_get_key_compare_func_closure (GeeTreeMap* self); + G_GNUC_INTERNAL GeeTreeMultiSet* gee_tree_multi_set_new_with_closures (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsCompareDataFuncClosure* compare_func); -G_GNUC_INTERNAL GeeTreeMultiSet* gee_tree_multi_set_construct_with_closures (GType object_type, + G_GNUC_INTERNAL GeeTreeMultiSet* gee_tree_multi_set_construct_with_closures (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsCompareDataFuncClosure* compare_func); -GType gee_abstract_multi_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiSet, g_object_unref) -GType gee_tree_multi_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMultiSet, g_object_unref) static GeeEqualDataFunc gee_tree_multi_map_real_get_value_equal_func (GeeAbstractMultiMap* base, gpointer* result_target, GDestroyNotify* result_target_destroy_notify); -GCompareDataFunc gee_tree_multi_map_get_key_compare_func (GeeTreeMultiMap* self, - gpointer* result_target); -GCompareDataFunc gee_tree_map_get_key_compare_func (GeeTreeMap* self, - gpointer* result_target); -GCompareDataFunc gee_tree_multi_map_get_value_compare_func (GeeTreeMultiMap* self, - gpointer* result_target); static void gee_tree_multi_map_set_value_compare_func (GeeTreeMultiMap* self, GCompareDataFunc value, gpointer value_target); static void gee_tree_multi_map_finalize (GObject * obj); +static GType gee_tree_multi_map_get_type_once (void); static void _vala_gee_tree_multi_map_get_property (GObject * object, guint property_id, GValue * value, @@ -725,7 +176,7 @@ GCompareDataFunc _tmp0_; gpointer _tmp0__target; GDestroyNotify _tmp0__target_destroy_notify; - void* _tmp1_ = NULL; + gpointer _tmp1_ = NULL; GDestroyNotify _tmp2_ = NULL; GeeEqualDataFunc _tmp3_; GeeTreeMap* _tmp4_; @@ -752,7 +203,7 @@ self->priv->v_destroy_func = v_destroy_func; _g_object_unref0 (_tmp5_); if (value_compare_func == NULL) { - void* _tmp6_ = NULL; + gpointer _tmp6_ = NULL; GDestroyNotify _tmp7_ = NULL; GCompareDataFunc _tmp8_; _tmp8_ = gee_functions_get_compare_func_for (v_type, &_tmp6_, &_tmp7_); @@ -845,7 +296,7 @@ GDestroyNotify* result_target_destroy_notify) { GeeTreeMultiMap * self; - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GeeEqualDataFunc _tmp2_; GeeEqualDataFunc _tmp3_; @@ -956,15 +407,23 @@ * Left-leaning red-black tree implementation of the {@link MultiMap} * interface. */ +static GType +gee_tree_multi_map_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMultiMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_multi_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMultiMap), 0, (GInstanceInitFunc) gee_tree_multi_map_instance_init, NULL }; + GType gee_tree_multi_map_type_id; + gee_tree_multi_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_MULTI_MAP, "GeeTreeMultiMap", &g_define_type_info, 0); + GeeTreeMultiMap_private_offset = g_type_add_instance_private (gee_tree_multi_map_type_id, sizeof (GeeTreeMultiMapPrivate)); + return gee_tree_multi_map_type_id; +} + GType gee_tree_multi_map_get_type (void) { static volatile gsize gee_tree_multi_map_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_multi_map_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMultiMapClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_multi_map_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMultiMap), 0, (GInstanceInitFunc) gee_tree_multi_map_instance_init, NULL }; GType gee_tree_multi_map_type_id; - gee_tree_multi_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_MULTI_MAP, "GeeTreeMultiMap", &g_define_type_info, 0); - GeeTreeMultiMap_private_offset = g_type_add_instance_private (gee_tree_multi_map_type_id, sizeof (GeeTreeMultiMapPrivate)); + gee_tree_multi_map_type_id = gee_tree_multi_map_get_type_once (); g_once_init_leave (&gee_tree_multi_map_type_id__volatile, gee_tree_multi_map_type_id); } return gee_tree_multi_map_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/treemultiset.c libgee-0.8-0.20.4/gee/treemultiset.c --- libgee-0.8-0.20.3/gee/treemultiset.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/treemultiset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* treemultiset.c generated by valac 0.46.6, the Vala compiler +/* treemultiset.c generated by valac 0.52.0, the Vala compiler * generated from treemultiset.vala, do not modify */ /* treemultiset.vala @@ -23,141 +23,10 @@ * Didier 'Ptitjes Villevalois */ -#include +#include "gee.h" #include +#include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_MULTI_SET (gee_multi_set_get_type ()) -#define GEE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_SET, GeeMultiSet)) -#define GEE_IS_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_SET)) -#define GEE_MULTI_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MULTI_SET, GeeMultiSetIface)) - -typedef struct _GeeMultiSet GeeMultiSet; -typedef struct _GeeMultiSetIface GeeMultiSetIface; - -#define GEE_TYPE_ABSTRACT_MULTI_SET (gee_abstract_multi_set_get_type ()) -#define GEE_ABSTRACT_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSet)) -#define GEE_ABSTRACT_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSetClass)) -#define GEE_IS_ABSTRACT_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MULTI_SET)) -#define GEE_IS_ABSTRACT_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MULTI_SET)) -#define GEE_ABSTRACT_MULTI_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MULTI_SET, GeeAbstractMultiSetClass)) - -typedef struct _GeeAbstractMultiSet GeeAbstractMultiSet; -typedef struct _GeeAbstractMultiSetClass GeeAbstractMultiSetClass; -typedef struct _GeeAbstractMultiSetPrivate GeeAbstractMultiSetPrivate; - -#define GEE_TYPE_MAP (gee_map_get_type ()) -#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap)) -#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP)) -#define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface)) - -typedef struct _GeeMap GeeMap; -typedef struct _GeeMapIface GeeMapIface; - -#define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ()) -#define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator)) -#define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR)) -#define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface)) - -typedef struct _GeeMapIterator GeeMapIterator; -typedef struct _GeeMapIteratorIface GeeMapIteratorIface; -typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, gpointer user_data); -typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, gpointer user_data); - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ()) -#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry)) -#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) -#define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY)) -#define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass)) - -typedef struct _GeeMapEntry GeeMapEntry; -typedef struct _GeeMapEntryClass GeeMapEntryClass; - -#define GEE_TYPE_TREE_MULTI_SET (gee_tree_multi_set_get_type ()) -#define GEE_TREE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_MULTI_SET, GeeTreeMultiSet)) -#define GEE_TREE_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_MULTI_SET, GeeTreeMultiSetClass)) -#define GEE_IS_TREE_MULTI_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_MULTI_SET)) -#define GEE_IS_TREE_MULTI_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_MULTI_SET)) -#define GEE_TREE_MULTI_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_MULTI_SET, GeeTreeMultiSetClass)) - -typedef struct _GeeTreeMultiSet GeeTreeMultiSet; -typedef struct _GeeTreeMultiSetClass GeeTreeMultiSetClass; -typedef struct _GeeTreeMultiSetPrivate GeeTreeMultiSetPrivate; enum { GEE_TREE_MULTI_SET_0_PROPERTY, GEE_TREE_MULTI_SET_G_TYPE, @@ -166,47 +35,6 @@ GEE_TREE_MULTI_SET_NUM_PROPERTIES }; static GParamSpec* gee_tree_multi_set_properties[GEE_TREE_MULTI_SET_NUM_PROPERTIES]; -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); - -#define GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type ()) -#define GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap)) -#define GEE_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) -#define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP)) -#define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass)) - -typedef struct _GeeAbstractMap GeeAbstractMap; -typedef struct _GeeAbstractMapClass GeeAbstractMapClass; - -#define GEE_TYPE_ABSTRACT_SORTED_MAP (gee_abstract_sorted_map_get_type ()) -#define GEE_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMap)) -#define GEE_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) -#define GEE_IS_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_IS_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP)) -#define GEE_ABSTRACT_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass)) - -typedef struct _GeeAbstractSortedMap GeeAbstractSortedMap; -typedef struct _GeeAbstractSortedMapClass GeeAbstractSortedMapClass; - -#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP (gee_abstract_bidir_sorted_map_get_type ()) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMap)) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP)) -#define GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass)) - -typedef struct _GeeAbstractBidirSortedMap GeeAbstractBidirSortedMap; -typedef struct _GeeAbstractBidirSortedMapClass GeeAbstractBidirSortedMapClass; - -#define GEE_TYPE_TREE_MAP (gee_tree_map_get_type ()) -#define GEE_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_MAP, GeeTreeMap)) -#define GEE_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_MAP, GeeTreeMapClass)) -#define GEE_IS_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_MAP)) -#define GEE_IS_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_MAP)) -#define GEE_TREE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_MAP, GeeTreeMapClass)) - -typedef struct _GeeTreeMap GeeTreeMap; -typedef struct _GeeTreeMapClass GeeTreeMapClass; #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE (gee_functions_compare_data_func_closure_get_type ()) @@ -230,195 +58,6 @@ typedef struct _GeeFunctionsEqualDataFuncClosureClass GeeFunctionsEqualDataFuncClosureClass; #define _gee_functions_compare_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_compare_data_func_closure_unref (var), NULL))) -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeMultiSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeMultiSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeMultiSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeMultiSet* self); - gint (*count) (GeeMultiSet* self, gconstpointer item); - GeeMultiSet* (*get_read_only_view) (GeeMultiSet* self); -}; - -struct _GeeMapIteratorIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self); - GType (*get_v_type) (GeeMapIterator* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self); - GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self); - gboolean (*next) (GeeMapIterator* self); - gboolean (*has_next) (GeeMapIterator* self); - gpointer (*get_key) (GeeMapIterator* self); - gpointer (*get_value) (GeeMapIterator* self); - void (*set_value) (GeeMapIterator* self, gconstpointer value); - void (*unset) (GeeMapIterator* self); - gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, gpointer f_target, gpointer seed); - gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, gpointer f_target); - gboolean (*get_valid) (GeeMapIterator* self); - gboolean (*get_mutable) (GeeMapIterator* self); - gboolean (*get_read_only) (GeeMapIterator* self); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeMapIface { - GTypeInterface parent_iface; - GType (*get_k_type) (GeeMap* self); - GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self); - GDestroyNotify (*get_k_destroy_func) (GeeMap* self); - GType (*get_v_type) (GeeMap* self); - GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self); - GDestroyNotify (*get_v_destroy_func) (GeeMap* self); - gboolean (*has_key) (GeeMap* self, gconstpointer key); - gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value); - gpointer (*get) (GeeMap* self, gconstpointer key); - void (*set) (GeeMap* self, gconstpointer key, gconstpointer value); - gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value); - void (*clear) (GeeMap* self); - GeeMapIterator* (*map_iterator) (GeeMap* self); - void (*set_all) (GeeMap* self, GeeMap* map); - gboolean (*unset_all) (GeeMap* self, GeeMap* map); - gboolean (*has_all) (GeeMap* self, GeeMap* map); - gint (*get_size) (GeeMap* self); - gboolean (*get_is_empty) (GeeMap* self); - gboolean (*get_read_only) (GeeMap* self); - GeeSet* (*get_keys) (GeeMap* self); - GeeCollection* (*get_values) (GeeMap* self); - GeeSet* (*get_entries) (GeeMap* self); - GeeMap* (*get_read_only_view) (GeeMap* self); -}; - -struct _GeeAbstractMultiSet { - GeeAbstractCollection parent_instance; - GeeAbstractMultiSetPrivate * priv; - GeeMap* _storage_map; -}; - -struct _GeeAbstractMultiSetClass { - GeeAbstractCollectionClass parent_class; - void (*reserved0) (GeeAbstractMultiSet* self); - void (*reserved1) (GeeAbstractMultiSet* self); - void (*reserved2) (GeeAbstractMultiSet* self); - void (*reserved3) (GeeAbstractMultiSet* self); - void (*reserved4) (GeeAbstractMultiSet* self); - void (*reserved5) (GeeAbstractMultiSet* self); - void (*reserved6) (GeeAbstractMultiSet* self); - void (*reserved7) (GeeAbstractMultiSet* self); - void (*reserved8) (GeeAbstractMultiSet* self); - GeeMultiSet* (*get_read_only_view) (GeeAbstractMultiSet* self); -}; - -struct _GeeTreeMultiSet { - GeeAbstractMultiSet parent_instance; - GeeTreeMultiSetPrivate * priv; -}; - -struct _GeeTreeMultiSetClass { - GeeAbstractMultiSetClass parent_class; -}; - struct _GeeTreeMultiSetPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -428,142 +67,55 @@ static gint GeeTreeMultiSet_private_offset; static gpointer gee_tree_multi_set_parent_class = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_multi_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_multi_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMultiSet, g_object_unref) -GType gee_map_iterator_get_type (void) G_GNUC_CONST; -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_map_entry_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeMapEntry, g_object_unref) -GType gee_map_get_type (void) G_GNUC_CONST; -GType gee_tree_multi_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMultiSet, g_object_unref) -GeeTreeMultiSet* gee_tree_multi_set_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); -GeeTreeMultiSet* gee_tree_multi_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); -GeeTreeMap* gee_tree_map_new (GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GCompareDataFunc key_compare_func, - gpointer key_compare_func_target, - GDestroyNotify key_compare_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GeeTreeMap* gee_tree_map_construct (GType object_type, - GType k_type, - GBoxedCopyFunc k_dup_func, - GDestroyNotify k_destroy_func, - GType v_type, - GBoxedCopyFunc v_dup_func, - GDestroyNotify v_destroy_func, - GCompareDataFunc key_compare_func, - gpointer key_compare_func_target, - GDestroyNotify key_compare_func_target_destroy_notify, - GeeEqualDataFunc value_equal_func, - gpointer value_equal_func_target, - GDestroyNotify value_equal_func_target_destroy_notify); -GType gee_abstract_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractMap, g_object_unref) -GType gee_abstract_sorted_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedMap, g_object_unref) -GType gee_abstract_bidir_sorted_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedMap, g_object_unref) -GType gee_tree_map_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeMap, g_object_unref) -GeeAbstractMultiSet* gee_abstract_multi_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeMap* storage_map); -G_GNUC_INTERNAL gpointer gee_functions_compare_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_compare_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_compare_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_compare_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_compare_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_compare_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_compare_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_compare_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_compare_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_compare_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_compare_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_compare_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsCompareDataFuncClosure, gee_functions_compare_data_func_closure_unref) -G_GNUC_INTERNAL GeeTreeMultiSet* gee_tree_multi_set_new_with_closures (GType g_type, + G_GNUC_INTERNAL gpointer gee_functions_value_get_compare_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_compare_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeTreeMultiSet* gee_tree_multi_set_new_with_closures (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsCompareDataFuncClosure* compare_func); -G_GNUC_INTERNAL GeeTreeMultiSet* gee_tree_multi_set_construct_with_closures (GType object_type, + G_GNUC_INTERNAL GeeTreeMultiSet* gee_tree_multi_set_construct_with_closures (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsCompareDataFuncClosure* compare_func); -GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsEqualDataFuncClosure, gee_functions_equal_data_func_closure_unref) -G_GNUC_INTERNAL GeeTreeMap* gee_tree_map_new_with_closures (GType k_type, + G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeTreeMap* gee_tree_map_new_with_closures (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, @@ -571,7 +123,7 @@ GDestroyNotify v_destroy_func, GeeFunctionsCompareDataFuncClosure* key_compare_func, GeeFunctionsEqualDataFuncClosure* value_equal_func); -G_GNUC_INTERNAL GeeTreeMap* gee_tree_map_construct_with_closures (GType object_type, + G_GNUC_INTERNAL GeeTreeMap* gee_tree_map_construct_with_closures (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, @@ -580,10 +132,7 @@ GDestroyNotify v_destroy_func, GeeFunctionsCompareDataFuncClosure* key_compare_func, GeeFunctionsEqualDataFuncClosure* value_equal_func); -GCompareDataFunc gee_tree_multi_set_get_compare_func (GeeTreeMultiSet* self, - gpointer* result_target); -GCompareDataFunc gee_tree_map_get_key_compare_func (GeeTreeMap* self, - gpointer* result_target); +static GType gee_tree_multi_set_get_type_once (void); static void _vala_gee_tree_multi_set_get_property (GObject * object, guint property_id, GValue * value, @@ -653,7 +202,7 @@ return gee_tree_multi_set_construct (GEE_TYPE_TREE_MULTI_SET, g_type, g_dup_func, g_destroy_func, compare_func, compare_func_target, compare_func_target_destroy_notify); } -G_GNUC_INTERNAL GeeTreeMultiSet* + G_GNUC_INTERNAL GeeTreeMultiSet* gee_tree_multi_set_construct_with_closures (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -662,7 +211,7 @@ { GeeTreeMultiSet * self = NULL; GeeFunctionsCompareDataFuncClosure* _tmp0_; - void* _tmp1_ = NULL; + gpointer _tmp1_ = NULL; GDestroyNotify _tmp2_ = NULL; GeeEqualDataFunc _tmp3_; GeeFunctionsEqualDataFuncClosure* _tmp4_; @@ -684,7 +233,7 @@ return self; } -G_GNUC_INTERNAL GeeTreeMultiSet* + G_GNUC_INTERNAL GeeTreeMultiSet* gee_tree_multi_set_new_with_closures (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -741,15 +290,23 @@ * Left-leaning red-black tree implementation of the {@link MultiSet} * interface. */ +static GType +gee_tree_multi_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMultiSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_multi_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMultiSet), 0, (GInstanceInitFunc) gee_tree_multi_set_instance_init, NULL }; + GType gee_tree_multi_set_type_id; + gee_tree_multi_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_MULTI_SET, "GeeTreeMultiSet", &g_define_type_info, 0); + GeeTreeMultiSet_private_offset = g_type_add_instance_private (gee_tree_multi_set_type_id, sizeof (GeeTreeMultiSetPrivate)); + return gee_tree_multi_set_type_id; +} + GType gee_tree_multi_set_get_type (void) { static volatile gsize gee_tree_multi_set_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_multi_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeMultiSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_multi_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeMultiSet), 0, (GInstanceInitFunc) gee_tree_multi_set_instance_init, NULL }; GType gee_tree_multi_set_type_id; - gee_tree_multi_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_MULTI_SET, "GeeTreeMultiSet", &g_define_type_info, 0); - GeeTreeMultiSet_private_offset = g_type_add_instance_private (gee_tree_multi_set_type_id, sizeof (GeeTreeMultiSetPrivate)); + gee_tree_multi_set_type_id = gee_tree_multi_set_get_type_once (); g_once_init_leave (&gee_tree_multi_set_type_id__volatile, gee_tree_multi_set_type_id); } return gee_tree_multi_set_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/treeset.c libgee-0.8-0.20.4/gee/treeset.c --- libgee-0.8-0.20.3/gee/treeset.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/treeset.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* treeset.c generated by valac 0.46.6, the Vala compiler +/* treeset.c generated by valac 0.52.0, the Vala compiler * generated from treeset.vala, do not modify */ /* treeset.vala @@ -23,152 +23,11 @@ * Maciej Piechotka */ -#include +#include "gee.h" #include +#include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_SET (gee_set_get_type ()) -#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet)) -#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET)) -#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface)) - -typedef struct _GeeSet GeeSet; -typedef struct _GeeSetIface GeeSetIface; - -#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ()) -#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet)) -#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) -#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET)) -#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET)) -#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass)) - -typedef struct _GeeAbstractSet GeeAbstractSet; -typedef struct _GeeAbstractSetClass GeeAbstractSetClass; -typedef struct _GeeAbstractSetPrivate GeeAbstractSetPrivate; - -#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ()) -#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet)) -#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET)) -#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface)) - -typedef struct _GeeSortedSet GeeSortedSet; -typedef struct _GeeSortedSetIface GeeSortedSetIface; - -#define GEE_TYPE_ABSTRACT_SORTED_SET (gee_abstract_sorted_set_get_type ()) -#define GEE_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet)) -#define GEE_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) -#define GEE_IS_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_IS_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_SET)) -#define GEE_ABSTRACT_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass)) - -typedef struct _GeeAbstractSortedSet GeeAbstractSortedSet; -typedef struct _GeeAbstractSortedSetClass GeeAbstractSortedSetClass; -typedef struct _GeeAbstractSortedSetPrivate GeeAbstractSortedSetPrivate; - -#define GEE_TYPE_BIDIR_SORTED_SET (gee_bidir_sorted_set_get_type ()) -#define GEE_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSet)) -#define GEE_IS_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_SET)) -#define GEE_BIDIR_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSetIface)) - -typedef struct _GeeBidirSortedSet GeeBidirSortedSet; -typedef struct _GeeBidirSortedSetIface GeeBidirSortedSetIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; - -#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET (gee_abstract_bidir_sorted_set_get_type ()) -#define GEE_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSet)) -#define GEE_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET)) -#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET)) -#define GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass)) - -typedef struct _GeeAbstractBidirSortedSet GeeAbstractBidirSortedSet; -typedef struct _GeeAbstractBidirSortedSetClass GeeAbstractBidirSortedSetClass; -typedef struct _GeeAbstractBidirSortedSetPrivate GeeAbstractBidirSortedSetPrivate; - -#define GEE_TYPE_TREE_SET (gee_tree_set_get_type ()) -#define GEE_TREE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_SET, GeeTreeSet)) -#define GEE_TREE_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_SET, GeeTreeSetClass)) -#define GEE_IS_TREE_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_SET)) -#define GEE_IS_TREE_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_SET)) -#define GEE_TREE_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_SET, GeeTreeSetClass)) - -typedef struct _GeeTreeSet GeeTreeSet; -typedef struct _GeeTreeSetClass GeeTreeSetClass; -typedef struct _GeeTreeSetPrivate GeeTreeSetPrivate; typedef struct _GeeTreeSetNode GeeTreeSetNode; #define GEE_FUNCTIONS_TYPE_COMPARE_DATA_FUNC_CLOSURE (gee_functions_compare_data_func_closure_get_type ()) @@ -250,7 +109,6 @@ typedef struct _GeeTreeSetRange GeeTreeSetRange; typedef struct _GeeTreeSetRangeClass GeeTreeSetRangeClass; typedef struct _GeeTreeSetRangePrivate GeeTreeSetRangePrivate; -#define _g_destroy_func0(var) (((var == NULL) || (g_destroy_func == NULL)) ? NULL : (var = (g_destroy_func (var), NULL))) typedef struct _GeeTreeSetParamSpecRange GeeTreeSetParamSpecRange; typedef struct _GeeTreeSetSubSetPrivate GeeTreeSetSubSetPrivate; enum { @@ -291,227 +149,6 @@ #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSet* self); - GeeSet* (*get_read_only_view) (GeeSet* self); -}; - -struct _GeeAbstractSet { - GeeAbstractCollection parent_instance; - GeeAbstractSetPrivate * priv; -}; - -struct _GeeAbstractSetClass { - GeeAbstractCollectionClass parent_class; - void (*reserved0) (GeeAbstractSet* self); - void (*reserved1) (GeeAbstractSet* self); - void (*reserved2) (GeeAbstractSet* self); - void (*reserved3) (GeeAbstractSet* self); - void (*reserved4) (GeeAbstractSet* self); - void (*reserved5) (GeeAbstractSet* self); - void (*reserved6) (GeeAbstractSet* self); - void (*reserved7) (GeeAbstractSet* self); - void (*reserved8) (GeeAbstractSet* self); - void (*reserved9) (GeeAbstractSet* self); - GeeSet* (*get_read_only_view) (GeeAbstractSet* self); -}; - -struct _GeeSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self); - gpointer (*first) (GeeSortedSet* self); - gpointer (*last) (GeeSortedSet* self); - GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to); - GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self); -}; - -struct _GeeAbstractSortedSet { - GeeAbstractSet parent_instance; - GeeAbstractSortedSetPrivate * priv; -}; - -struct _GeeAbstractSortedSetClass { - GeeAbstractSetClass parent_class; - gpointer (*first) (GeeAbstractSortedSet* self); - gpointer (*last) (GeeAbstractSortedSet* self); - GeeIterator* (*iterator_at) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*lower) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*higher) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*floor) (GeeAbstractSortedSet* self, gconstpointer element); - gpointer (*ceil) (GeeAbstractSortedSet* self, gconstpointer element); - GeeSortedSet* (*head_set) (GeeAbstractSortedSet* self, gconstpointer before); - GeeSortedSet* (*tail_set) (GeeAbstractSortedSet* self, gconstpointer after); - GeeSortedSet* (*sub_set) (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to); - void (*reserved0) (GeeAbstractSortedSet* self); - void (*reserved1) (GeeAbstractSortedSet* self); - void (*reserved2) (GeeAbstractSortedSet* self); - void (*reserved3) (GeeAbstractSortedSet* self); - void (*reserved4) (GeeAbstractSortedSet* self); - void (*reserved5) (GeeAbstractSortedSet* self); - void (*reserved6) (GeeAbstractSortedSet* self); - void (*reserved7) (GeeAbstractSortedSet* self); - void (*reserved8) (GeeAbstractSortedSet* self); - void (*reserved9) (GeeAbstractSortedSet* self); - GeeSortedSet* (*get_read_only_view) (GeeAbstractSortedSet* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirSortedSetIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirSortedSet* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirSortedSet* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirSortedSet* self); - GeeBidirIterator* (*bidir_iterator) (GeeBidirSortedSet* self); - GeeBidirSortedSet* (*get_read_only_view) (GeeBidirSortedSet* self); -}; - -struct _GeeAbstractBidirSortedSet { - GeeAbstractSortedSet parent_instance; - GeeAbstractBidirSortedSetPrivate * priv; -}; - -struct _GeeAbstractBidirSortedSetClass { - GeeAbstractSortedSetClass parent_class; - GeeBidirIterator* (*bidir_iterator) (GeeAbstractBidirSortedSet* self); - void (*reserved0) (GeeAbstractBidirSortedSet* self); - void (*reserved1) (GeeAbstractBidirSortedSet* self); - void (*reserved2) (GeeAbstractBidirSortedSet* self); - void (*reserved3) (GeeAbstractBidirSortedSet* self); - void (*reserved4) (GeeAbstractBidirSortedSet* self); - void (*reserved5) (GeeAbstractBidirSortedSet* self); - void (*reserved6) (GeeAbstractBidirSortedSet* self); - void (*reserved7) (GeeAbstractBidirSortedSet* self); - void (*reserved8) (GeeAbstractBidirSortedSet* self); - void (*reserved9) (GeeAbstractBidirSortedSet* self); - GeeBidirSortedSet* (*get_read_only_view) (GeeAbstractBidirSortedSet* self); -}; - -struct _GeeTreeSet { - GeeAbstractBidirSortedSet parent_instance; - GeeTreeSetPrivate * priv; -}; - -struct _GeeTreeSetClass { - GeeAbstractBidirSortedSetClass parent_class; -}; - struct _GeeTreeSetPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -645,104 +282,46 @@ static GeeIteratorIface * gee_tree_set_sub_iterator_gee_iterator_parent_iface = NULL; static GeeBidirIteratorIface * gee_tree_set_sub_iterator_gee_bidir_iterator_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSet, g_object_unref) -GType gee_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractSortedSet, g_object_unref) -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_sorted_set_get_type (void) G_GNUC_CONST; -GType gee_abstract_bidir_sorted_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirSortedSet, g_object_unref) -GType gee_tree_set_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeSet, g_object_unref) static void gee_tree_set_node_free (GeeTreeSetNode * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeSetNode, gee_tree_set_node_free) -G_GNUC_INTERNAL gpointer gee_functions_compare_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_compare_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_compare_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_compare_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_compare_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_compare_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_compare_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_compare_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_compare_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_compare_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_compare_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_compare_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsCompareDataFuncClosure, gee_functions_compare_data_func_closure_unref) -void gee_abstract_collection_clear (GeeAbstractCollection* self); -static GType gee_tree_set_range_type_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -GeeTreeSet* gee_tree_set_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); -GeeTreeSet* gee_tree_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GCompareDataFunc compare_func, - gpointer compare_func_target, - GDestroyNotify compare_func_target_destroy_notify); -GeeAbstractBidirSortedSet* gee_abstract_bidir_sorted_set_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GCompareDataFunc gee_functions_get_compare_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL gpointer gee_functions_value_get_compare_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_compare_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; +static GType gee_tree_set_range_type_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsCompareDataFuncClosure* gee_functions_compare_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeTreeSet* gee_tree_set_new_with_closures (GType g_type, + G_GNUC_INTERNAL GeeTreeSet* gee_tree_set_new_with_closures (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsCompareDataFuncClosure* compare_func); -G_GNUC_INTERNAL GeeTreeSet* gee_tree_set_construct_with_closures (GType object_type, + G_GNUC_INTERNAL GeeTreeSet* gee_tree_set_construct_with_closures (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeFunctionsCompareDataFuncClosure* compare_func); static gboolean gee_tree_set_real_contains (GeeAbstractCollection* base, gconstpointer item); -GCompareDataFunc gee_tree_set_get_compare_func (GeeTreeSet* self, - gpointer* result_target); -static GType gee_tree_set_node_color_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; +static GType gee_tree_set_node_color_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static inline void gee_tree_set_rotate_right (GeeTreeSet* self, GeeTreeSetNode* * root); static inline void gee_tree_set_rotate_left (GeeTreeSet* self, @@ -797,8 +376,7 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeTreeSet* set); -static GType gee_tree_set_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeSetIterator, g_object_unref) +static GType gee_tree_set_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeBidirIterator* gee_tree_set_real_bidir_iterator (GeeAbstractBidirSortedSet* base); static inline gpointer gee_tree_set_lift_null_get (GeeTreeSet* self, GeeTreeSetNode* node); @@ -817,8 +395,7 @@ GDestroyNotify g_destroy_func, GeeTreeSet* set, gconstpointer before); -static GType gee_tree_set_sub_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeSetSubSet, g_object_unref) +static GType gee_tree_set_sub_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeSortedSet* gee_tree_set_real_tail_set (GeeAbstractSortedSet* base, gconstpointer after); static GeeTreeSetSubSet* gee_tree_set_sub_set_new_tail (GType g_type, @@ -920,8 +497,7 @@ guint forks, gint* result_length1); static void gee_tree_set_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_valid (GeeIterator* self); -gboolean gee_iterator_get_read_only (GeeIterator* self); +static GType gee_tree_set_iterator_get_type_once (void); static void _vala_gee_tree_set_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -936,14 +512,13 @@ const gchar* nick, const gchar* blurb, GType object_type, - GParamFlags flags) G_GNUC_UNUSED; + GParamFlags flags) G_GNUC_UNUSED ; static void gee_tree_set_value_set_range (GValue* value, - gpointer v_object) G_GNUC_UNUSED; + gpointer v_object) G_GNUC_UNUSED ; static void gee_tree_set_value_take_range (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -static gpointer gee_tree_set_value_get_range (const GValue* value) G_GNUC_UNUSED; -static GType gee_tree_set_range_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeSetRange, gee_tree_set_range_unref) + gpointer v_object) G_GNUC_UNUSED ; +static gpointer gee_tree_set_value_get_range (const GValue* value) G_GNUC_UNUSED ; +static GType gee_tree_set_range_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeTreeSetRange* gee_tree_set_range_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -994,6 +569,7 @@ static GeeTreeSetNode* gee_tree_set_range_first (GeeTreeSetRange* self); static GeeTreeSetNode* gee_tree_set_range_last (GeeTreeSetRange* self); static void gee_tree_set_range_finalize (GeeTreeSetRange * obj); +static GType gee_tree_set_range_get_type_once (void); static GeeTreeSetSubSet* gee_tree_set_sub_set_new_from_range (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -1007,20 +583,11 @@ GeeTreeSetRange* range); static gboolean gee_tree_set_sub_set_real_contains (GeeAbstractCollection* base, gconstpointer item); -gboolean gee_abstract_collection_contains (GeeAbstractCollection* self, - gconstpointer item); static gboolean gee_tree_set_sub_set_real_add (GeeAbstractCollection* base, gconstpointer item); -gboolean gee_abstract_collection_add (GeeAbstractCollection* self, - gconstpointer item); static gboolean gee_tree_set_sub_set_real_remove (GeeAbstractCollection* base, gconstpointer item); -gboolean gee_abstract_collection_remove (GeeAbstractCollection* self, - gconstpointer item); static void gee_tree_set_sub_set_real_clear (GeeAbstractCollection* base); -GeeIterator* gee_abstract_collection_iterator (GeeAbstractCollection* self); -gboolean gee_iterator_next (GeeIterator* self); -void gee_iterator_remove (GeeIterator* self); static GeeIterator* gee_tree_set_sub_set_real_iterator (GeeAbstractCollection* base); static GeeTreeSetSubIterator* gee_tree_set_sub_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, @@ -1033,8 +600,7 @@ GDestroyNotify g_destroy_func, GeeTreeSet* set, GeeTreeSetRange* range); -static GType gee_tree_set_sub_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTreeSetSubIterator, g_object_unref) +static GType gee_tree_set_sub_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static GeeBidirIterator* gee_tree_set_sub_set_real_bidir_iterator (GeeAbstractBidirSortedSet* base); static gpointer gee_tree_set_sub_set_real_first (GeeAbstractSortedSet* base); static gpointer gee_tree_set_sub_set_real_last (GeeAbstractSortedSet* base); @@ -1062,26 +628,15 @@ GeeTreeSetNode* node); static gpointer gee_tree_set_sub_set_real_lower (GeeAbstractSortedSet* base, gconstpointer item); -gpointer gee_abstract_sorted_set_last (GeeAbstractSortedSet* self); -gpointer gee_abstract_sorted_set_lower (GeeAbstractSortedSet* self, - gconstpointer element); static gpointer gee_tree_set_sub_set_real_higher (GeeAbstractSortedSet* base, gconstpointer item); -gpointer gee_abstract_sorted_set_first (GeeAbstractSortedSet* self); -gpointer gee_abstract_sorted_set_higher (GeeAbstractSortedSet* self, - gconstpointer element); static gpointer gee_tree_set_sub_set_real_floor (GeeAbstractSortedSet* base, gconstpointer item); -gpointer gee_abstract_sorted_set_floor (GeeAbstractSortedSet* self, - gconstpointer element); static gpointer gee_tree_set_sub_set_real_ceil (GeeAbstractSortedSet* base, gconstpointer item); -gpointer gee_abstract_sorted_set_ceil (GeeAbstractSortedSet* self, - gconstpointer element); static gboolean gee_tree_set_sub_set_get_is_empty (GeeTreeSetSubSet* self); static void gee_tree_set_sub_set_finalize (GObject * obj); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); +static GType gee_tree_set_sub_set_get_type_once (void); static void _vala_gee_tree_set_sub_set_get_property (GObject * object, guint property_id, GValue * value, @@ -1100,15 +655,12 @@ GDestroyNotify g_destroy_func, GeeTreeSetSubIterator* iter); static gboolean gee_tree_set_sub_iterator_real_next (GeeIterator* base); -gboolean gee_bidir_iterator_first (GeeBidirIterator* self); static gboolean gee_tree_set_sub_iterator_real_has_next (GeeIterator* base); static gboolean gee_tree_set_sub_iterator_real_first (GeeBidirIterator* base); static gboolean gee_tree_set_sub_iterator_real_previous (GeeBidirIterator* base); -gboolean gee_bidir_iterator_previous (GeeBidirIterator* self); static gboolean gee_tree_set_sub_iterator_real_has_previous (GeeBidirIterator* base); static gboolean gee_tree_set_sub_iterator_real_last (GeeBidirIterator* base); static gpointer gee_tree_set_sub_iterator_real_get (GeeIterator* base); -gpointer gee_iterator_get (GeeIterator* self); static void gee_tree_set_sub_iterator_real_remove (GeeIterator* base); static gboolean gee_tree_set_sub_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, @@ -1117,6 +669,7 @@ guint forks, gint* result_length1); static void gee_tree_set_sub_iterator_finalize (GObject * obj); +static GType gee_tree_set_sub_iterator_get_type_once (void); static void _vala_gee_tree_set_sub_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -1126,6 +679,7 @@ const GValue * value, GParamSpec * pspec); static void gee_tree_set_finalize (GObject * obj); +static GType gee_tree_set_get_type_once (void); static void _vala_gee_tree_set_get_property (GObject * object, guint property_id, GValue * value, @@ -1148,13 +702,21 @@ } static GType +gee_tree_set_range_type_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_TREE_SET_RANGE_TYPE_HEAD, "GEE_TREE_SET_RANGE_TYPE_HEAD", "head"}, {GEE_TREE_SET_RANGE_TYPE_TAIL, "GEE_TREE_SET_RANGE_TYPE_TAIL", "tail"}, {GEE_TREE_SET_RANGE_TYPE_EMPTY, "GEE_TREE_SET_RANGE_TYPE_EMPTY", "empty"}, {GEE_TREE_SET_RANGE_TYPE_BOUNDED, "GEE_TREE_SET_RANGE_TYPE_BOUNDED", "bounded"}, {0, NULL, NULL}}; + GType gee_tree_set_range_type_type_id; + gee_tree_set_range_type_type_id = g_enum_register_static ("GeeTreeSetRangeType", values); + return gee_tree_set_range_type_type_id; +} + +static GType gee_tree_set_range_type_get_type (void) { static volatile gsize gee_tree_set_range_type_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_set_range_type_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_TREE_SET_RANGE_TYPE_HEAD, "GEE_TREE_SET_RANGE_TYPE_HEAD", "head"}, {GEE_TREE_SET_RANGE_TYPE_TAIL, "GEE_TREE_SET_RANGE_TYPE_TAIL", "tail"}, {GEE_TREE_SET_RANGE_TYPE_EMPTY, "GEE_TREE_SET_RANGE_TYPE_EMPTY", "empty"}, {GEE_TREE_SET_RANGE_TYPE_BOUNDED, "GEE_TREE_SET_RANGE_TYPE_BOUNDED", "bounded"}, {0, NULL, NULL}}; GType gee_tree_set_range_type_type_id; - gee_tree_set_range_type_type_id = g_enum_register_static ("GeeTreeSetRangeType", values); + gee_tree_set_range_type_type_id = gee_tree_set_range_type_get_type_once (); g_once_init_leave (&gee_tree_set_range_type_type_id__volatile, gee_tree_set_range_type_type_id); } return gee_tree_set_range_type_type_id__volatile; @@ -1188,7 +750,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; if (compare_func == NULL) { - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GCompareDataFunc _tmp2_; _tmp2_ = gee_functions_get_compare_func_for (g_type, &_tmp0_, &_tmp1_); @@ -1227,7 +789,7 @@ return gee_tree_set_construct (GEE_TYPE_TREE_SET, g_type, g_dup_func, g_destroy_func, compare_func, compare_func_target, compare_func_target_destroy_notify); } -G_GNUC_INTERNAL GeeTreeSet* + G_GNUC_INTERNAL GeeTreeSet* gee_tree_set_construct_with_closures (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -1249,7 +811,7 @@ return self; } -G_GNUC_INTERNAL GeeTreeSet* + G_GNUC_INTERNAL GeeTreeSet* gee_tree_set_new_with_closures (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -1552,7 +1114,6 @@ return result; } } - ((item == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (item = (self->priv->g_destroy_func (item), NULL)); } /** @@ -1940,12 +1501,6 @@ } } } - if (prev) { - *prev = _vala_prev; - } - if (next) { - *next = _vala_next; - } } /** @@ -2740,14 +2295,22 @@ } } +static GType +gee_tree_set_node_color_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_TREE_SET_NODE_COLOR_RED, "GEE_TREE_SET_NODE_COLOR_RED", "red"}, {GEE_TREE_SET_NODE_COLOR_BLACK, "GEE_TREE_SET_NODE_COLOR_BLACK", "black"}, {0, NULL, NULL}}; + GType gee_tree_set_node_color_type_id; + gee_tree_set_node_color_type_id = g_enum_register_static ("GeeTreeSetNodeColor", values); + return gee_tree_set_node_color_type_id; +} + GType gee_tree_set_node_color_get_type (void) { static volatile gsize gee_tree_set_node_color_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_set_node_color_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_TREE_SET_NODE_COLOR_RED, "GEE_TREE_SET_NODE_COLOR_RED", "red"}, {GEE_TREE_SET_NODE_COLOR_BLACK, "GEE_TREE_SET_NODE_COLOR_BLACK", "black"}, {0, NULL, NULL}}; GType gee_tree_set_node_color_type_id; - gee_tree_set_node_color_type_id = g_enum_register_static ("GeeTreeSetNodeColor", values); + gee_tree_set_node_color_type_id = gee_tree_set_node_color_get_type_once (); g_once_init_leave (&gee_tree_set_node_color_type_id__volatile, gee_tree_set_node_color_type_id); } return gee_tree_set_node_color_type_id__volatile; @@ -3313,11 +2876,6 @@ } return result; } - if (val) { - *val = _vala_val; - } else { - ((_vala_val == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_vala_val = (self->priv->g_destroy_func (_vala_val), NULL)); - } } static gboolean @@ -3370,11 +2928,6 @@ } return result; } - if (val) { - *val = _vala_val; - } else { - ((_vala_val == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (_vala_val = (self->priv->g_destroy_func (_vala_val), NULL)); - } } static gboolean @@ -3683,20 +3236,28 @@ } static GType +gee_tree_set_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeSetIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_set_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeSetIterator), 0, (GInstanceInitFunc) gee_tree_set_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_set_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_set_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_set_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_tree_set_iterator_type_id; + gee_tree_set_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTreeSetIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_tree_set_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_tree_set_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + g_type_add_interface_static (gee_tree_set_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); + GeeTreeSetIterator_private_offset = g_type_add_instance_private (gee_tree_set_iterator_type_id, sizeof (GeeTreeSetIteratorPrivate)); + return gee_tree_set_iterator_type_id; +} + +static GType gee_tree_set_iterator_get_type (void) { static volatile gsize gee_tree_set_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_set_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeSetIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_set_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeSetIterator), 0, (GInstanceInitFunc) gee_tree_set_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_set_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_set_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_set_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_tree_set_iterator_type_id; - gee_tree_set_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTreeSetIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_tree_set_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_tree_set_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - g_type_add_interface_static (gee_tree_set_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); - GeeTreeSetIterator_private_offset = g_type_add_instance_private (gee_tree_set_iterator_type_id, sizeof (GeeTreeSetIteratorPrivate)); + gee_tree_set_iterator_type_id = gee_tree_set_iterator_get_type_once (); g_once_init_leave (&gee_tree_set_iterator_type_id__volatile, gee_tree_set_iterator_type_id); } return gee_tree_set_iterator_type_id__volatile; @@ -3792,10 +3353,10 @@ gpointer _tmp3_; gpointer _tmp4_; _tmp3_ = ((after != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) after) : ((gpointer) after); - _g_destroy_func0 (self->priv->after); + ((self->priv->after == NULL) || (g_destroy_func == NULL)) ? NULL : (self->priv->after = (g_destroy_func (self->priv->after), NULL)); self->priv->after = _tmp3_; _tmp4_ = ((before != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) before) : ((gpointer) before); - _g_destroy_func0 (self->priv->before); + ((self->priv->before == NULL) || (g_destroy_func == NULL)) ? NULL : (self->priv->before = (g_destroy_func (self->priv->before), NULL)); self->priv->before = _tmp4_; self->priv->type = GEE_TREE_SET_RANGE_TYPE_BOUNDED; } else { @@ -3835,7 +3396,7 @@ _g_object_unref0 (self->priv->set); self->priv->set = _tmp0_; _tmp1_ = ((before != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) before) : ((gpointer) before); - _g_destroy_func0 (self->priv->before); + ((self->priv->before == NULL) || (g_destroy_func == NULL)) ? NULL : (self->priv->before = (g_destroy_func (self->priv->before), NULL)); self->priv->before = _tmp1_; self->priv->type = GEE_TREE_SET_RANGE_TYPE_HEAD; return self; @@ -3871,7 +3432,7 @@ _g_object_unref0 (self->priv->set); self->priv->set = _tmp0_; _tmp1_ = ((after != NULL) && (g_dup_func != NULL)) ? g_dup_func ((gpointer) after) : ((gpointer) after); - _g_destroy_func0 (self->priv->after); + ((self->priv->after == NULL) || (g_destroy_func == NULL)) ? NULL : (self->priv->after = (g_destroy_func (self->priv->after), NULL)); self->priv->after = _tmp1_; self->priv->type = GEE_TREE_SET_RANGE_TYPE_TAIL; return self; @@ -4545,16 +4106,24 @@ } static GType +gee_tree_set_range_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_tree_set_value_range_init, gee_tree_set_value_range_free_value, gee_tree_set_value_range_copy_value, gee_tree_set_value_range_peek_pointer, "p", gee_tree_set_value_range_collect_value, "p", gee_tree_set_value_range_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeSetRangeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_set_range_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeSetRange), 0, (GInstanceInitFunc) gee_tree_set_range_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_tree_set_range_type_id; + gee_tree_set_range_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeTreeSetRange", &g_define_type_info, &g_define_type_fundamental_info, 0); + GeeTreeSetRange_private_offset = g_type_add_instance_private (gee_tree_set_range_type_id, sizeof (GeeTreeSetRangePrivate)); + return gee_tree_set_range_type_id; +} + +static GType gee_tree_set_range_get_type (void) { static volatile gsize gee_tree_set_range_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_set_range_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_tree_set_value_range_init, gee_tree_set_value_range_free_value, gee_tree_set_value_range_copy_value, gee_tree_set_value_range_peek_pointer, "p", gee_tree_set_value_range_collect_value, "p", gee_tree_set_value_range_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeSetRangeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_set_range_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeSetRange), 0, (GInstanceInitFunc) gee_tree_set_range_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_tree_set_range_type_id; - gee_tree_set_range_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeTreeSetRange", &g_define_type_info, &g_define_type_fundamental_info, 0); - GeeTreeSetRange_private_offset = g_type_add_instance_private (gee_tree_set_range_type_id, sizeof (GeeTreeSetRangePrivate)); + gee_tree_set_range_type_id = gee_tree_set_range_get_type_once (); g_once_init_leave (&gee_tree_set_range_type_id__volatile, gee_tree_set_range_type_id); } return gee_tree_set_range_type_id__volatile; @@ -5299,14 +4868,22 @@ } static GType +gee_tree_set_sub_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeSetSubSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_set_sub_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeSetSubSet), 0, (GInstanceInitFunc) gee_tree_set_sub_set_instance_init, NULL }; + GType gee_tree_set_sub_set_type_id; + gee_tree_set_sub_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeSetSubSet", &g_define_type_info, 0); + GeeTreeSetSubSet_private_offset = g_type_add_instance_private (gee_tree_set_sub_set_type_id, sizeof (GeeTreeSetSubSetPrivate)); + return gee_tree_set_sub_set_type_id; +} + +static GType gee_tree_set_sub_set_get_type (void) { static volatile gsize gee_tree_set_sub_set_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_set_sub_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeSetSubSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_set_sub_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeSetSubSet), 0, (GInstanceInitFunc) gee_tree_set_sub_set_instance_init, NULL }; GType gee_tree_set_sub_set_type_id; - gee_tree_set_sub_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeSetSubSet", &g_define_type_info, 0); - GeeTreeSetSubSet_private_offset = g_type_add_instance_private (gee_tree_set_sub_set_type_id, sizeof (GeeTreeSetSubSetPrivate)); + gee_tree_set_sub_set_type_id = gee_tree_set_sub_set_get_type_once (); g_once_init_leave (&gee_tree_set_sub_set_type_id__volatile, gee_tree_set_sub_set_type_id); } return gee_tree_set_sub_set_type_id__volatile; @@ -5655,7 +5232,6 @@ ((prev == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (prev = (self->priv->g_destroy_func (prev), NULL)); return result; } - ((prev == NULL) || (self->priv->g_destroy_func == NULL)) ? NULL : (prev = (self->priv->g_destroy_func (prev), NULL)); } static gboolean @@ -6001,20 +5577,28 @@ } static GType +gee_tree_set_sub_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeSetSubIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_set_sub_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeSetSubIterator), 0, (GInstanceInitFunc) gee_tree_set_sub_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_set_sub_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_set_sub_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_set_sub_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_tree_set_sub_iterator_type_id; + gee_tree_set_sub_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTreeSetSubIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_tree_set_sub_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_tree_set_sub_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + g_type_add_interface_static (gee_tree_set_sub_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); + GeeTreeSetSubIterator_private_offset = g_type_add_instance_private (gee_tree_set_sub_iterator_type_id, sizeof (GeeTreeSetSubIteratorPrivate)); + return gee_tree_set_sub_iterator_type_id; +} + +static GType gee_tree_set_sub_iterator_get_type (void) { static volatile gsize gee_tree_set_sub_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_set_sub_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeSetSubIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_set_sub_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeSetSubIterator), 0, (GInstanceInitFunc) gee_tree_set_sub_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_set_sub_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_set_sub_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_set_sub_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_tree_set_sub_iterator_type_id; - gee_tree_set_sub_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTreeSetSubIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_tree_set_sub_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_tree_set_sub_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - g_type_add_interface_static (gee_tree_set_sub_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); - GeeTreeSetSubIterator_private_offset = g_type_add_instance_private (gee_tree_set_sub_iterator_type_id, sizeof (GeeTreeSetSubIteratorPrivate)); + gee_tree_set_sub_iterator_type_id = gee_tree_set_sub_iterator_get_type_once (); g_once_init_leave (&gee_tree_set_sub_iterator_type_id__volatile, gee_tree_set_sub_iterator_type_id); } return gee_tree_set_sub_iterator_type_id__volatile; @@ -6148,15 +5732,23 @@ * * @see HashSet */ +static GType +gee_tree_set_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTreeSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeSet), 0, (GInstanceInitFunc) gee_tree_set_instance_init, NULL }; + GType gee_tree_set_type_id; + gee_tree_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeSet", &g_define_type_info, 0); + GeeTreeSet_private_offset = g_type_add_instance_private (gee_tree_set_type_id, sizeof (GeeTreeSetPrivate)); + return gee_tree_set_type_id; +} + GType gee_tree_set_get_type (void) { static volatile gsize gee_tree_set_type_id__volatile = 0; if (g_once_init_enter (&gee_tree_set_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTreeSetClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_tree_set_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTreeSet), 0, (GInstanceInitFunc) gee_tree_set_instance_init, NULL }; GType gee_tree_set_type_id; - gee_tree_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeSet", &g_define_type_info, 0); - GeeTreeSet_private_offset = g_type_add_instance_private (gee_tree_set_type_id, sizeof (GeeTreeSetPrivate)); + gee_tree_set_type_id = gee_tree_set_get_type_once (); g_once_init_leave (&gee_tree_set_type_id__volatile, gee_tree_set_type_id); } return gee_tree_set_type_id__volatile; @@ -6222,7 +5814,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/gee/unfolditerator.c libgee-0.8-0.20.4/gee/unfolditerator.c --- libgee-0.8-0.20.3/gee/unfolditerator.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/unfolditerator.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* unfolditerator.c generated by valac 0.46.6, the Vala compiler +/* unfolditerator.c generated by valac 0.52.0, the Vala compiler * generated from unfolditerator.vala, do not modify */ /* unfolditerator.vala @@ -24,48 +24,9 @@ */ #include +#include "gee.h" #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - #define GEE_TYPE_UNFOLD_ITERATOR (gee_unfold_iterator_get_type ()) #define GEE_UNFOLD_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_UNFOLD_ITERATOR, GeeUnfoldIterator)) #define GEE_UNFOLD_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_UNFOLD_ITERATOR, GeeUnfoldIteratorClass)) @@ -76,7 +37,6 @@ typedef struct _GeeUnfoldIterator GeeUnfoldIterator; typedef struct _GeeUnfoldIteratorClass GeeUnfoldIteratorClass; typedef struct _GeeUnfoldIteratorPrivate GeeUnfoldIteratorPrivate; -typedef GeeLazy* (*GeeUnfoldFunc) (gpointer user_data); enum { GEE_UNFOLD_ITERATOR_0_PROPERTY, GEE_UNFOLD_ITERATOR_G_TYPE, @@ -93,39 +53,6 @@ #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - struct _GeeUnfoldIterator { GObject parent_instance; GeeUnfoldIteratorPrivate * priv; @@ -152,33 +79,15 @@ static GeeTraversableIface * gee_unfold_iterator_gee_traversable_parent_iface = NULL; static GeeIteratorIface * gee_unfold_iterator_gee_iterator_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -G_GNUC_INTERNAL GType gee_unfold_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeUnfoldIterator, g_object_unref) -G_GNUC_INTERNAL GeeUnfoldIterator* gee_unfold_iterator_new (GType g_type, + G_GNUC_INTERNAL GType gee_unfold_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; + G_GNUC_INTERNAL GeeUnfoldIterator* gee_unfold_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeUnfoldFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify, GeeLazy* current); -G_GNUC_INTERNAL GeeUnfoldIterator* gee_unfold_iterator_construct (GType object_type, + G_GNUC_INTERNAL GeeUnfoldIterator* gee_unfold_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -187,18 +96,14 @@ GDestroyNotify func_target_destroy_notify, GeeLazy* current); static gboolean gee_unfold_iterator_real_next (GeeIterator* base); -gboolean gee_iterator_has_next (GeeIterator* self); -void gee_lazy_eval (GeeLazy* self); static gboolean gee_unfold_iterator_real_has_next (GeeIterator* base); static gpointer gee_unfold_iterator_real_get (GeeIterator* base); -gconstpointer gee_lazy_get_value (GeeLazy* self); static void gee_unfold_iterator_real_remove (GeeIterator* base); static gboolean gee_unfold_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, gpointer f_target); static void gee_unfold_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_valid (GeeIterator* self); -gboolean gee_iterator_get_read_only (GeeIterator* self); +static GType gee_unfold_iterator_get_type_once (void); static void _vala_gee_unfold_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -214,7 +119,7 @@ return G_STRUCT_MEMBER_P (self, GeeUnfoldIterator_private_offset); } -G_GNUC_INTERNAL GeeUnfoldIterator* + G_GNUC_INTERNAL GeeUnfoldIterator* gee_unfold_iterator_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, @@ -259,7 +164,7 @@ return self; } -G_GNUC_INTERNAL GeeUnfoldIterator* + G_GNUC_INTERNAL GeeUnfoldIterator* gee_unfold_iterator_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -581,19 +486,27 @@ G_OBJECT_CLASS (gee_unfold_iterator_parent_class)->finalize (obj); } -G_GNUC_INTERNAL GType +static GType +gee_unfold_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeUnfoldIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_unfold_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeUnfoldIterator), 0, (GInstanceInitFunc) gee_unfold_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_unfold_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_unfold_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_unfold_iterator_type_id; + gee_unfold_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeUnfoldIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_unfold_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_unfold_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + GeeUnfoldIterator_private_offset = g_type_add_instance_private (gee_unfold_iterator_type_id, sizeof (GeeUnfoldIteratorPrivate)); + return gee_unfold_iterator_type_id; +} + + G_GNUC_INTERNAL GType gee_unfold_iterator_get_type (void) { static volatile gsize gee_unfold_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_unfold_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeUnfoldIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_unfold_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeUnfoldIterator), 0, (GInstanceInitFunc) gee_unfold_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_unfold_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_unfold_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_unfold_iterator_type_id; - gee_unfold_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeUnfoldIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_unfold_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_unfold_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - GeeUnfoldIterator_private_offset = g_type_add_instance_private (gee_unfold_iterator_type_id, sizeof (GeeUnfoldIteratorPrivate)); + gee_unfold_iterator_type_id = gee_unfold_iterator_get_type_once (); g_once_init_leave (&gee_unfold_iterator_type_id__volatile, gee_unfold_iterator_type_id); } return gee_unfold_iterator_type_id__volatile; diff -Nru libgee-0.8-0.20.3/gee/unrolledlinkedlist.c libgee-0.8-0.20.4/gee/unrolledlinkedlist.c --- libgee-0.8-0.20.3/gee/unrolledlinkedlist.c 2020-02-09 19:03:21.000000000 +0000 +++ libgee-0.8-0.20.4/gee/unrolledlinkedlist.c 2021-03-17 19:58:43.000000000 +0000 @@ -1,4 +1,4 @@ -/* unrolledlinkedlist.c generated by valac 0.46.6, the Vala compiler +/* unrolledlinkedlist.c generated by valac 0.52.0, the Vala compiler * generated from unrolledlinkedlist.vala, do not modify */ /* unrolledlinkedlist.vala @@ -23,165 +23,11 @@ * Maciej Piechotka */ -#include +#include "gee.h" #include +#include #include -#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ()) -#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable)) -#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE)) -#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface)) - -typedef struct _GeeTraversable GeeTraversable; -typedef struct _GeeTraversableIface GeeTraversableIface; -typedef gboolean (*GeeForallFunc) (gpointer g, gpointer user_data); -typedef enum { - GEE_TRAVERSABLE_STREAM_YIELD, - GEE_TRAVERSABLE_STREAM_CONTINUE, - GEE_TRAVERSABLE_STREAM_END, - GEE_TRAVERSABLE_STREAM_WAIT -} GeeTraversableStream; - -#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ()) - -#define GEE_TYPE_LAZY (gee_lazy_get_type ()) -#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy)) -#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass)) -#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY)) -#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY)) -#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass)) - -typedef struct _GeeLazy GeeLazy; -typedef struct _GeeLazyClass GeeLazyClass; -typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy* * lazy, gpointer user_data); - -#define GEE_TYPE_ITERATOR (gee_iterator_get_type ()) -#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator)) -#define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR)) -#define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface)) - -typedef struct _GeeIterator GeeIterator; -typedef struct _GeeIteratorIface GeeIteratorIface; -typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, gpointer user_data); -typedef gpointer (*GeeMapFunc) (gpointer g, gpointer user_data); -typedef gboolean (*GeePredicate) (gconstpointer g, gpointer user_data); -typedef GeeIterator* (*GeeFlatMapFunc) (gpointer g, gpointer user_data); - -#define GEE_TYPE_ITERABLE (gee_iterable_get_type ()) -#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable)) -#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE)) -#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface)) - -typedef struct _GeeIterable GeeIterable; -typedef struct _GeeIterableIface GeeIterableIface; - -#define GEE_TYPE_COLLECTION (gee_collection_get_type ()) -#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection)) -#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION)) -#define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface)) - -typedef struct _GeeCollection GeeCollection; -typedef struct _GeeCollectionIface GeeCollectionIface; - -#define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ()) -#define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection)) -#define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) -#define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION)) -#define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass)) - -typedef struct _GeeAbstractCollection GeeAbstractCollection; -typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass; -typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate; - -#define GEE_TYPE_LIST (gee_list_get_type ()) -#define GEE_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST, GeeList)) -#define GEE_IS_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST)) -#define GEE_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST, GeeListIface)) - -typedef struct _GeeList GeeList; -typedef struct _GeeListIface GeeListIface; - -#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ()) -#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator)) -#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR)) -#define GEE_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIteratorIface)) - -typedef struct _GeeListIterator GeeListIterator; -typedef struct _GeeListIteratorIface GeeListIteratorIface; - -#define GEE_TYPE_ABSTRACT_LIST (gee_abstract_list_get_type ()) -#define GEE_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractList)) -#define GEE_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) -#define GEE_IS_ABSTRACT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_IS_ABSTRACT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_LIST)) -#define GEE_ABSTRACT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_LIST, GeeAbstractListClass)) - -typedef struct _GeeAbstractList GeeAbstractList; -typedef struct _GeeAbstractListClass GeeAbstractListClass; -typedef struct _GeeAbstractListPrivate GeeAbstractListPrivate; - -#define GEE_TYPE_BIDIR_LIST (gee_bidir_list_get_type ()) -#define GEE_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirList)) -#define GEE_IS_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST)) -#define GEE_BIDIR_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirListIface)) - -typedef struct _GeeBidirList GeeBidirList; -typedef struct _GeeBidirListIface GeeBidirListIface; - -#define GEE_TYPE_BIDIR_LIST_ITERATOR (gee_bidir_list_iterator_get_type ()) -#define GEE_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIterator)) -#define GEE_IS_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR)) -#define GEE_BIDIR_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIteratorIface)) - -typedef struct _GeeBidirListIterator GeeBidirListIterator; -typedef struct _GeeBidirListIteratorIface GeeBidirListIteratorIface; - -#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ()) -#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator)) -#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR)) -#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface)) - -typedef struct _GeeBidirIterator GeeBidirIterator; -typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface; - -#define GEE_TYPE_ABSTRACT_BIDIR_LIST (gee_abstract_bidir_list_get_type ()) -#define GEE_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirList)) -#define GEE_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) -#define GEE_IS_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_IS_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST)) -#define GEE_ABSTRACT_BIDIR_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass)) - -typedef struct _GeeAbstractBidirList GeeAbstractBidirList; -typedef struct _GeeAbstractBidirListClass GeeAbstractBidirListClass; -typedef struct _GeeAbstractBidirListPrivate GeeAbstractBidirListPrivate; - -#define GEE_TYPE_QUEUE (gee_queue_get_type ()) -#define GEE_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_QUEUE, GeeQueue)) -#define GEE_IS_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_QUEUE)) -#define GEE_QUEUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_QUEUE, GeeQueueIface)) - -typedef struct _GeeQueue GeeQueue; -typedef struct _GeeQueueIface GeeQueueIface; - -#define GEE_TYPE_DEQUE (gee_deque_get_type ()) -#define GEE_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_DEQUE, GeeDeque)) -#define GEE_IS_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_DEQUE)) -#define GEE_DEQUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_DEQUE, GeeDequeIface)) - -typedef struct _GeeDeque GeeDeque; -typedef struct _GeeDequeIface GeeDequeIface; - -#define GEE_TYPE_UNROLLED_LINKED_LIST (gee_unrolled_linked_list_get_type ()) -#define GEE_UNROLLED_LINKED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_UNROLLED_LINKED_LIST, GeeUnrolledLinkedList)) -#define GEE_UNROLLED_LINKED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_UNROLLED_LINKED_LIST, GeeUnrolledLinkedListClass)) -#define GEE_IS_UNROLLED_LINKED_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_UNROLLED_LINKED_LIST)) -#define GEE_IS_UNROLLED_LINKED_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_UNROLLED_LINKED_LIST)) -#define GEE_UNROLLED_LINKED_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_UNROLLED_LINKED_LIST, GeeUnrolledLinkedListClass)) - -typedef struct _GeeUnrolledLinkedList GeeUnrolledLinkedList; -typedef struct _GeeUnrolledLinkedListClass GeeUnrolledLinkedListClass; -typedef struct _GeeUnrolledLinkedListPrivate GeeUnrolledLinkedListPrivate; typedef struct _GeeUnrolledLinkedListNode GeeUnrolledLinkedListNode; #define GEE_FUNCTIONS_TYPE_EQUAL_DATA_FUNC_CLOSURE (gee_functions_equal_data_func_closure_get_type ()) @@ -208,7 +54,6 @@ static GParamSpec* gee_unrolled_linked_list_properties[GEE_UNROLLED_LINKED_LIST_NUM_PROPERTIES]; #define _gee_unrolled_linked_list_node_free0(var) ((var == NULL) ? NULL : (var = (gee_unrolled_linked_list_node_free (var), NULL))) #define _gee_functions_equal_data_func_closure_unref0(var) ((var == NULL) ? NULL : (var = (gee_functions_equal_data_func_closure_unref (var), NULL))) -typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, gpointer user_data); #define GEE_UNROLLED_LINKED_LIST_TYPE_ITERATOR (gee_unrolled_linked_list_iterator_get_type ()) #define GEE_UNROLLED_LINKED_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_UNROLLED_LINKED_LIST_TYPE_ITERATOR, GeeUnrolledLinkedListIterator)) @@ -220,7 +65,6 @@ typedef struct _GeeUnrolledLinkedListIterator GeeUnrolledLinkedListIterator; typedef struct _GeeUnrolledLinkedListIteratorClass GeeUnrolledLinkedListIteratorClass; #define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL))) -#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) typedef struct _GeeFunctionsEqualDataFuncClosurePrivate GeeFunctionsEqualDataFuncClosurePrivate; typedef struct _GeeUnrolledLinkedListIteratorPrivate GeeUnrolledLinkedListIteratorPrivate; enum { @@ -233,246 +77,12 @@ GEE_UNROLLED_LINKED_LIST_ITERATOR_NUM_PROPERTIES }; static GParamSpec* gee_unrolled_linked_list_iterator_properties[GEE_UNROLLED_LINKED_LIST_ITERATOR_NUM_PROPERTIES]; +#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL))) #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } #define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); -struct _GeeIteratorIface { - GTypeInterface parent_iface; - gboolean (*next) (GeeIterator* self); - gboolean (*has_next) (GeeIterator* self); - gpointer (*get) (GeeIterator* self); - void (*remove) (GeeIterator* self); - gboolean (*get_valid) (GeeIterator* self); - gboolean (*get_read_only) (GeeIterator* self); -}; - -struct _GeeTraversableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeTraversable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self); - GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self); - gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, gpointer f_target); - GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, gpointer f_target); - GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, gpointer f_target, gpointer seed); - GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length); - GType (*get_element_type) (GeeTraversable* self); - GeeIterator* (*flat_map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFlatMapFunc f, gpointer f_target, GDestroyNotify f_target_destroy_notify); - GeeIterator** (*tee) (GeeTraversable* self, guint forks, gint* result_length1); - gpointer (*first_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*any_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gboolean (*all_match) (GeeTraversable* self, GeePredicate pred, gpointer pred_target, GDestroyNotify pred_target_destroy_notify); - gpointer (*max) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - gpointer (*min) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); - GeeIterator* (*order_by) (GeeTraversable* self, GCompareDataFunc compare, gpointer compare_target, GDestroyNotify compare_target_destroy_notify); -}; - -struct _GeeIterableIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeIterable* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self); - GDestroyNotify (*get_g_destroy_func) (GeeIterable* self); - GeeIterator* (*iterator) (GeeIterable* self); -}; - -struct _GeeCollectionIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeCollection* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self); - GDestroyNotify (*get_g_destroy_func) (GeeCollection* self); - gboolean (*contains) (GeeCollection* self, gconstpointer item); - gboolean (*add) (GeeCollection* self, gconstpointer item); - gboolean (*remove) (GeeCollection* self, gconstpointer item); - void (*clear) (GeeCollection* self); - gboolean (*add_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection); - gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection); - gpointer* (*to_array) (GeeCollection* self, gint* result_length1); - gint (*get_size) (GeeCollection* self); - gboolean (*get_is_empty) (GeeCollection* self); - gboolean (*get_read_only) (GeeCollection* self); - GeeCollection* (*get_read_only_view) (GeeCollection* self); - gboolean (*add_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*contains_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*remove_all_array) (GeeCollection* self, gpointer* array, gint array_length1); - gboolean (*add_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*contains_all_iterator) (GeeCollection* self, GeeIterator* iter); - gboolean (*remove_all_iterator) (GeeCollection* self, GeeIterator* iter); -}; - -struct _GeeAbstractCollection { - GObject parent_instance; - GeeAbstractCollectionPrivate * priv; -}; - -struct _GeeAbstractCollectionClass { - GObjectClass parent_class; - gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*add) (GeeAbstractCollection* self, gconstpointer item); - gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item); - void (*clear) (GeeAbstractCollection* self); - GeeIterator* (*iterator) (GeeAbstractCollection* self); - gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, gpointer f_target); - void (*reserved0) (GeeAbstractCollection* self); - void (*reserved1) (GeeAbstractCollection* self); - void (*reserved2) (GeeAbstractCollection* self); - void (*reserved3) (GeeAbstractCollection* self); - void (*reserved4) (GeeAbstractCollection* self); - void (*reserved5) (GeeAbstractCollection* self); - void (*reserved6) (GeeAbstractCollection* self); - void (*reserved7) (GeeAbstractCollection* self); - void (*reserved8) (GeeAbstractCollection* self); - void (*reserved9) (GeeAbstractCollection* self); - gint (*get_size) (GeeAbstractCollection* self); - gboolean (*get_read_only) (GeeAbstractCollection* self); - GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self); -}; - -struct _GeeListIteratorIface { - GTypeInterface parent_iface; - void (*set) (GeeListIterator* self, gconstpointer item); - void (*add) (GeeListIterator* self, gconstpointer item); - gint (*index) (GeeListIterator* self); -}; - -struct _GeeListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeList* self); - GDestroyNotify (*get_g_destroy_func) (GeeList* self); - GeeListIterator* (*list_iterator) (GeeList* self); - gpointer (*get) (GeeList* self, gint index); - void (*set) (GeeList* self, gint index, gconstpointer item); - gint (*index_of) (GeeList* self, gconstpointer item); - void (*insert) (GeeList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeList* self, gint index); - GeeList* (*slice) (GeeList* self, gint start, gint stop); - gpointer (*first) (GeeList* self); - gpointer (*last) (GeeList* self); - void (*insert_all) (GeeList* self, gint index, GeeCollection* collection); - void (*sort) (GeeList* self, GCompareDataFunc compare_func, gpointer compare_func_target, GDestroyNotify compare_func_target_destroy_notify); - GeeList* (*get_read_only_view) (GeeList* self); -}; - -struct _GeeAbstractList { - GeeAbstractCollection parent_instance; - GeeAbstractListPrivate * priv; -}; - -struct _GeeAbstractListClass { - GeeAbstractCollectionClass parent_class; - GeeListIterator* (*list_iterator) (GeeAbstractList* self); - gpointer (*get) (GeeAbstractList* self, gint index); - void (*set) (GeeAbstractList* self, gint index, gconstpointer item); - gint (*index_of) (GeeAbstractList* self, gconstpointer item); - void (*insert) (GeeAbstractList* self, gint index, gconstpointer item); - gpointer (*remove_at) (GeeAbstractList* self, gint index); - GeeList* (*slice) (GeeAbstractList* self, gint start, gint stop); - void (*reserved0) (GeeAbstractList* self); - void (*reserved1) (GeeAbstractList* self); - void (*reserved2) (GeeAbstractList* self); - void (*reserved3) (GeeAbstractList* self); - void (*reserved4) (GeeAbstractList* self); - void (*reserved5) (GeeAbstractList* self); - void (*reserved6) (GeeAbstractList* self); - void (*reserved7) (GeeAbstractList* self); - void (*reserved8) (GeeAbstractList* self); - void (*reserved9) (GeeAbstractList* self); - GeeList* (*get_read_only_view) (GeeAbstractList* self); -}; - -struct _GeeBidirIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self); - gboolean (*previous) (GeeBidirIterator* self); - gboolean (*has_previous) (GeeBidirIterator* self); - gboolean (*first) (GeeBidirIterator* self); - gboolean (*last) (GeeBidirIterator* self); -}; - -struct _GeeBidirListIteratorIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirListIterator* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirListIterator* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirListIterator* self); - void (*insert) (GeeBidirListIterator* self, gconstpointer item); -}; - -struct _GeeBidirListIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeBidirList* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeBidirList* self); - GDestroyNotify (*get_g_destroy_func) (GeeBidirList* self); - GeeBidirListIterator* (*bidir_list_iterator) (GeeBidirList* self); - GeeBidirList* (*get_read_only_view) (GeeBidirList* self); -}; - -struct _GeeAbstractBidirList { - GeeAbstractList parent_instance; - GeeAbstractBidirListPrivate * priv; -}; - -struct _GeeAbstractBidirListClass { - GeeAbstractListClass parent_class; - GeeBidirListIterator* (*bidir_list_iterator) (GeeAbstractBidirList* self); - void (*reserved0) (GeeAbstractBidirList* self); - void (*reserved1) (GeeAbstractBidirList* self); - void (*reserved2) (GeeAbstractBidirList* self); - void (*reserved3) (GeeAbstractBidirList* self); - void (*reserved4) (GeeAbstractBidirList* self); - void (*reserved5) (GeeAbstractBidirList* self); - void (*reserved6) (GeeAbstractBidirList* self); - void (*reserved7) (GeeAbstractBidirList* self); - void (*reserved8) (GeeAbstractBidirList* self); - void (*reserved9) (GeeAbstractBidirList* self); - GeeBidirList* (*get_read_only_view) (GeeAbstractBidirList* self); -}; - -struct _GeeQueueIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeQueue* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeQueue* self); - GDestroyNotify (*get_g_destroy_func) (GeeQueue* self); - gboolean (*offer) (GeeQueue* self, gconstpointer element); - gpointer (*peek) (GeeQueue* self); - gpointer (*poll) (GeeQueue* self); - gint (*drain) (GeeQueue* self, GeeCollection* recipient, gint amount); - gint (*get_capacity) (GeeQueue* self); - gint (*get_remaining_capacity) (GeeQueue* self); - gboolean (*get_is_full) (GeeQueue* self); -}; - -struct _GeeDequeIface { - GTypeInterface parent_iface; - GType (*get_g_type) (GeeDeque* self); - GBoxedCopyFunc (*get_g_dup_func) (GeeDeque* self); - GDestroyNotify (*get_g_destroy_func) (GeeDeque* self); - gboolean (*offer_head) (GeeDeque* self, gconstpointer element); - gpointer (*peek_head) (GeeDeque* self); - gpointer (*poll_head) (GeeDeque* self); - gint (*drain_head) (GeeDeque* self, GeeCollection* recipient, gint amount); - gboolean (*offer_tail) (GeeDeque* self, gconstpointer element); - gpointer (*peek_tail) (GeeDeque* self); - gpointer (*poll_tail) (GeeDeque* self); - gint (*drain_tail) (GeeDeque* self, GeeCollection* recipient, gint amount); -}; - -struct _GeeUnrolledLinkedList { - GeeAbstractBidirList parent_instance; - GeeUnrolledLinkedListPrivate * priv; -}; - -struct _GeeUnrolledLinkedListClass { - GeeAbstractBidirListClass parent_class; -}; - struct _GeeUnrolledLinkedListPrivate { GType g_type; GBoxedCopyFunc g_dup_func; @@ -538,87 +148,30 @@ static GeeQueueIface * gee_unrolled_linked_list_gee_queue_parent_iface = NULL; static GeeDequeIface * gee_unrolled_linked_list_gee_deque_parent_iface = NULL; -GType gee_traversable_stream_get_type (void) G_GNUC_CONST; -gpointer gee_lazy_ref (gpointer instance); -void gee_lazy_unref (gpointer instance); -GParamSpec* gee_param_spec_lazy (const gchar* name, - const gchar* nick, - const gchar* blurb, - GType object_type, - GParamFlags flags); -void gee_value_set_lazy (GValue* value, - gpointer v_object); -void gee_value_take_lazy (GValue* value, - gpointer v_object); -gpointer gee_value_get_lazy (const GValue* value); -GType gee_lazy_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeLazy, gee_lazy_unref) -GType gee_iterator_get_type (void) G_GNUC_CONST; -GType gee_traversable_get_type (void) G_GNUC_CONST; -GType gee_iterable_get_type (void) G_GNUC_CONST; -GType gee_collection_get_type (void) G_GNUC_CONST; -GType gee_abstract_collection_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractCollection, g_object_unref) -GType gee_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_list_get_type (void) G_GNUC_CONST; -GType gee_abstract_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractList, g_object_unref) -GType gee_bidir_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_iterator_get_type (void) G_GNUC_CONST; -GType gee_bidir_list_get_type (void) G_GNUC_CONST; -GType gee_abstract_bidir_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeAbstractBidirList, g_object_unref) -GType gee_queue_get_type (void) G_GNUC_CONST; -GType gee_deque_get_type (void) G_GNUC_CONST; -GType gee_unrolled_linked_list_get_type (void) G_GNUC_CONST; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeUnrolledLinkedList, g_object_unref) static void gee_unrolled_linked_list_node_free (GeeUnrolledLinkedListNode * self); -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeUnrolledLinkedListNode, gee_unrolled_linked_list_node_free) -G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); -G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); -G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, + G_GNUC_INTERNAL gpointer gee_functions_equal_data_func_closure_ref (gpointer instance); + G_GNUC_INTERNAL void gee_functions_equal_data_func_closure_unref (gpointer instance); + G_GNUC_INTERNAL GParamSpec* gee_functions_param_spec_equal_data_func_closure (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags); -G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, + G_GNUC_INTERNAL void gee_functions_value_set_equal_data_func_closure (GValue* value, + gpointer v_object) G_GNUC_UNUSED ; + G_GNUC_INTERNAL void gee_functions_value_take_equal_data_func_closure (GValue* value, gpointer v_object); -G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED; -G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeFunctionsEqualDataFuncClosure, gee_functions_equal_data_func_closure_unref) -void gee_abstract_collection_clear (GeeAbstractCollection* self); + G_GNUC_INTERNAL gpointer gee_functions_value_get_equal_data_func_closure (const GValue* value) G_GNUC_UNUSED ; + G_GNUC_INTERNAL GType gee_functions_equal_data_func_closure_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; #define GEE_UNROLLED_LINKED_LIST_NODE_SIZE 29 #define GEE_UNROLLED_LINKED_LIST_SPLIT_POS (((GEE_UNROLLED_LINKED_LIST_NODE_SIZE - 1) / 2) + 1) #define GEE_UNROLLED_LINKED_LIST_MERGE_THRESHOLD ((GEE_UNROLLED_LINKED_LIST_NODE_SIZE * 4) / 5) -GeeUnrolledLinkedList* gee_unrolled_linked_list_new (GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeUnrolledLinkedList* gee_unrolled_linked_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func, - GeeEqualDataFunc equal_func, - gpointer equal_func_target, - GDestroyNotify equal_func_target_destroy_notify); -GeeAbstractBidirList* gee_abstract_bidir_list_construct (GType object_type, - GType g_type, - GBoxedCopyFunc g_dup_func, - GDestroyNotify g_destroy_func); -GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, - gpointer* result_target, - GDestroyNotify* result_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc func, gpointer func_target, GDestroyNotify func_target_destroy_notify); -G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, + G_GNUC_INTERNAL GeeFunctionsEqualDataFuncClosure* gee_functions_equal_data_func_closure_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -647,8 +200,7 @@ GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeUnrolledLinkedList* list); -static GType gee_unrolled_linked_list_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeUnrolledLinkedListIterator, g_object_unref) +static GType gee_unrolled_linked_list_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; static gboolean gee_unrolled_linked_list_real_contains (GeeAbstractCollection* base, gconstpointer item); static GeeUnrolledLinkedListNode* gee_unrolled_linked_list_find_node (GeeUnrolledLinkedList* self, @@ -699,41 +251,28 @@ static gint gee_unrolled_linked_list_real_drain (GeeQueue* base, GeeCollection* recipient, gint amount); -gboolean gee_collection_add (GeeCollection* self, - gconstpointer item); static void gee_unrolled_linked_list_merge_with_next (GeeUnrolledLinkedList* self, GeeUnrolledLinkedListNode* node); static gboolean gee_unrolled_linked_list_real_offer_head (GeeDeque* base, gconstpointer element); static gpointer gee_unrolled_linked_list_real_peek_head (GeeDeque* base); -gpointer gee_queue_peek (GeeQueue* self); static gpointer gee_unrolled_linked_list_real_poll_head (GeeDeque* base); -gpointer gee_queue_poll (GeeQueue* self); static gint gee_unrolled_linked_list_real_drain_head (GeeDeque* base, GeeCollection* recipient, gint amount); -gint gee_queue_drain (GeeQueue* self, - GeeCollection* recipient, - gint amount); static gboolean gee_unrolled_linked_list_real_offer_tail (GeeDeque* base, gconstpointer element); -gboolean gee_queue_offer (GeeQueue* self, - gconstpointer element); static gpointer gee_unrolled_linked_list_real_peek_tail (GeeDeque* base); static gpointer gee_unrolled_linked_list_real_poll_tail (GeeDeque* base); static gint gee_unrolled_linked_list_real_drain_tail (GeeDeque* base, GeeCollection* recipient, gint amount); -GeeEqualDataFunc gee_unrolled_linked_list_get_equal_func (GeeUnrolledLinkedList* self, - gpointer* result_target); -gint gee_abstract_collection_get_size (GeeAbstractCollection* self); static gint* _int_dup (gint* self); static void gee_unrolled_linked_list_delete_node (GeeUnrolledLinkedList* self, GeeUnrolledLinkedListNode* node); static void gee_unrolled_linked_list_set_equal_func (GeeUnrolledLinkedList* self, GeeEqualDataFunc value, gpointer value_target); -#define GEE_QUEUE_UNBOUNDED_CAPACITY -1 static GeeUnrolledLinkedListIterator* gee_unrolled_linked_list_iterator_new_from_iterator (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, @@ -765,8 +304,7 @@ static void gee_unrolled_linked_list_iterator_real_insert (GeeBidirListIterator* base, gconstpointer item); static void gee_unrolled_linked_list_iterator_finalize (GObject * obj); -gboolean gee_iterator_get_valid (GeeIterator* self); -gboolean gee_iterator_get_read_only (GeeIterator* self); +static GType gee_unrolled_linked_list_iterator_get_type_once (void); static void _vala_gee_unrolled_linked_list_iterator_get_property (GObject * object, guint property_id, GValue * value, @@ -777,10 +315,7 @@ GParamSpec * pspec); static void gee_unrolled_linked_list_node_instance_init (GeeUnrolledLinkedListNode * self); static void gee_unrolled_linked_list_finalize (GObject * obj); -gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self); -gint gee_queue_get_capacity (GeeQueue* self); -gint gee_queue_get_remaining_capacity (GeeQueue* self); -gboolean gee_queue_get_is_full (GeeQueue* self); +static GType gee_unrolled_linked_list_get_type_once (void); static void _vala_gee_unrolled_linked_list_get_property (GObject * object, guint property_id, GValue * value, @@ -829,7 +364,7 @@ self->priv->g_dup_func = g_dup_func; self->priv->g_destroy_func = g_destroy_func; if (equal_func == NULL) { - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GeeEqualDataFunc _tmp2_; _tmp2_ = gee_functions_get_equal_func_for (g_type, &_tmp0_, &_tmp1_); @@ -2388,11 +1923,6 @@ _vala_assert (start_of_node == 0, "start_of_node == 0"); } g_assert_not_reached (); - if (pos) { - *pos = _vala_pos; - } else { - _g_free0 (_vala_pos); - } } static void @@ -4102,24 +3632,32 @@ } static GType +gee_unrolled_linked_list_iterator_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeUnrolledLinkedListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_unrolled_linked_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeUnrolledLinkedListIterator), 0, (GInstanceInitFunc) gee_unrolled_linked_list_iterator_instance_init, NULL }; + static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_list_iterator_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_iterator_gee_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_bidir_list_iterator_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_iterator_gee_bidir_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_unrolled_linked_list_iterator_type_id; + gee_unrolled_linked_list_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeUnrolledLinkedListIterator", &g_define_type_info, 0); + g_type_add_interface_static (gee_unrolled_linked_list_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); + g_type_add_interface_static (gee_unrolled_linked_list_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); + g_type_add_interface_static (gee_unrolled_linked_list_iterator_type_id, GEE_TYPE_LIST_ITERATOR, &gee_list_iterator_info); + g_type_add_interface_static (gee_unrolled_linked_list_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); + g_type_add_interface_static (gee_unrolled_linked_list_iterator_type_id, GEE_TYPE_BIDIR_LIST_ITERATOR, &gee_bidir_list_iterator_info); + GeeUnrolledLinkedListIterator_private_offset = g_type_add_instance_private (gee_unrolled_linked_list_iterator_type_id, sizeof (GeeUnrolledLinkedListIteratorPrivate)); + return gee_unrolled_linked_list_iterator_type_id; +} + +static GType gee_unrolled_linked_list_iterator_get_type (void) { static volatile gsize gee_unrolled_linked_list_iterator_type_id__volatile = 0; if (g_once_init_enter (&gee_unrolled_linked_list_iterator_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeUnrolledLinkedListIteratorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_unrolled_linked_list_iterator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeUnrolledLinkedListIterator), 0, (GInstanceInitFunc) gee_unrolled_linked_list_iterator_instance_init, NULL }; - static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_list_iterator_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_iterator_gee_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_bidir_list_iterator_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_iterator_gee_bidir_list_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_unrolled_linked_list_iterator_type_id; - gee_unrolled_linked_list_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeUnrolledLinkedListIterator", &g_define_type_info, 0); - g_type_add_interface_static (gee_unrolled_linked_list_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info); - g_type_add_interface_static (gee_unrolled_linked_list_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info); - g_type_add_interface_static (gee_unrolled_linked_list_iterator_type_id, GEE_TYPE_LIST_ITERATOR, &gee_list_iterator_info); - g_type_add_interface_static (gee_unrolled_linked_list_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info); - g_type_add_interface_static (gee_unrolled_linked_list_iterator_type_id, GEE_TYPE_BIDIR_LIST_ITERATOR, &gee_bidir_list_iterator_info); - GeeUnrolledLinkedListIterator_private_offset = g_type_add_instance_private (gee_unrolled_linked_list_iterator_type_id, sizeof (GeeUnrolledLinkedListIteratorPrivate)); + gee_unrolled_linked_list_iterator_type_id = gee_unrolled_linked_list_iterator_get_type_once (); g_once_init_leave (&gee_unrolled_linked_list_iterator_type_id__volatile, gee_unrolled_linked_list_iterator_type_id); } return gee_unrolled_linked_list_iterator_type_id__volatile; @@ -4345,19 +3883,27 @@ * @see ArrayList * @see LinkedList */ +static GType +gee_unrolled_linked_list_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeUnrolledLinkedListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_unrolled_linked_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeUnrolledLinkedList), 0, (GInstanceInitFunc) gee_unrolled_linked_list_instance_init, NULL }; + static const GInterfaceInfo gee_queue_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_gee_queue_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_deque_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_gee_deque_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType gee_unrolled_linked_list_type_id; + gee_unrolled_linked_list_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_LIST, "GeeUnrolledLinkedList", &g_define_type_info, 0); + g_type_add_interface_static (gee_unrolled_linked_list_type_id, GEE_TYPE_QUEUE, &gee_queue_info); + g_type_add_interface_static (gee_unrolled_linked_list_type_id, GEE_TYPE_DEQUE, &gee_deque_info); + GeeUnrolledLinkedList_private_offset = g_type_add_instance_private (gee_unrolled_linked_list_type_id, sizeof (GeeUnrolledLinkedListPrivate)); + return gee_unrolled_linked_list_type_id; +} + GType gee_unrolled_linked_list_get_type (void) { static volatile gsize gee_unrolled_linked_list_type_id__volatile = 0; if (g_once_init_enter (&gee_unrolled_linked_list_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeUnrolledLinkedListClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_unrolled_linked_list_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeUnrolledLinkedList), 0, (GInstanceInitFunc) gee_unrolled_linked_list_instance_init, NULL }; - static const GInterfaceInfo gee_queue_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_gee_queue_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_deque_info = { (GInterfaceInitFunc) gee_unrolled_linked_list_gee_deque_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType gee_unrolled_linked_list_type_id; - gee_unrolled_linked_list_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_LIST, "GeeUnrolledLinkedList", &g_define_type_info, 0); - g_type_add_interface_static (gee_unrolled_linked_list_type_id, GEE_TYPE_QUEUE, &gee_queue_info); - g_type_add_interface_static (gee_unrolled_linked_list_type_id, GEE_TYPE_DEQUE, &gee_deque_info); - GeeUnrolledLinkedList_private_offset = g_type_add_instance_private (gee_unrolled_linked_list_type_id, sizeof (GeeUnrolledLinkedListPrivate)); + gee_unrolled_linked_list_type_id = gee_unrolled_linked_list_get_type_once (); g_once_init_leave (&gee_unrolled_linked_list_type_id__volatile, gee_unrolled_linked_list_type_id); } return gee_unrolled_linked_list_type_id__volatile; @@ -4432,7 +3978,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/install-sh libgee-0.8-0.20.4/install-sh --- libgee-0.8-0.20.3/install-sh 2020-02-09 19:03:15.000000000 +0000 +++ libgee-0.8-0.20.4/install-sh 2021-03-17 19:58:39.000000000 +0000 @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2018-03-11.20; # UTC +scriptversion=2020-11-14.01; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -69,6 +69,11 @@ # Desired mode of installed file. mode=0755 +# Create dirs (including intermediate dirs) using mode 755. +# This is like GNU 'install' as of coreutils 8.32 (2020). +mkdir_umask=22 + +backupsuffix= chgrpcmd= chmodcmd=$chmodprog chowncmd= @@ -99,18 +104,28 @@ --version display version info and exit. -c (ignored) - -C install only if different (preserve the last data modification time) + -C install only if different (preserve data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. + -p pass -p to $cpprog. -s $stripprog installed files. + -S SUFFIX attempt to back up existing files, with suffix SUFFIX. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG + +By default, rm is invoked with -f; when overridden with RMPROG, +it's up to you to specify -f if you want it. + +If -S is not specified, no backups are attempted. + +Email bug reports to bug-automake@gnu.org. +Automake home page: https://www.gnu.org/software/automake/ " while test $# -ne 0; do @@ -137,8 +152,13 @@ -o) chowncmd="$chownprog $2" shift;; + -p) cpprog="$cpprog -p";; + -s) stripcmd=$stripprog;; + -S) backupsuffix="$2" + shift;; + -t) is_target_a_directory=always dst_arg=$2 @@ -255,6 +275,10 @@ dstdir=$dst test -d "$dstdir" dstdir_status=$? + # Don't chown directories that already exist. + if test $dstdir_status = 0; then + chowncmd="" + fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command @@ -301,22 +325,6 @@ if test $dstdir_status != 0; then case $posix_mkdir in '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then @@ -326,52 +334,49 @@ fi posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - # Note that $RANDOM variable is not portable (e.g. dash); Use it - # here however when possible just to lower collision chance. - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - - trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 - - # Because "mkdir -p" follows existing symlinks and we likely work - # directly in world-writeable /tmp, make sure that the '$tmpdir' - # directory is successfully created first before we actually test - # 'mkdir -p' feature. - if (umask $mkdir_umask && - $mkdirprog $mkdir_mode "$tmpdir" && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - test_tmpdir="$tmpdir/a" - ls_ld_tmpdir=`ls -ld "$test_tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null - fi - trap '' 0;; - esac;; + # The $RANDOM variable is not portable (e.g., dash). Use it + # here however when possible just to lower collision chance. + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + + trap ' + ret=$? + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null + exit $ret + ' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p'. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; esac if @@ -382,7 +387,7 @@ then : else - # The umask is ridiculous, or mkdir does not conform to POSIX, + # mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. @@ -411,7 +416,7 @@ prefixes= else if $posix_mkdir; then - (umask=$mkdir_umask && + (umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 @@ -451,7 +456,18 @@ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + (umask $cp_umask && + { test -z "$stripcmd" || { + # Create $dsttmp read-write so that cp doesn't create it read-only, + # which would cause strip to fail. + if test -z "$doit"; then + : >"$dsttmp" # No need to fork-exec 'touch'. + else + $doit touch "$dsttmp" + fi + } + } && + $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # @@ -477,6 +493,13 @@ then rm -f "$dsttmp" else + # If $backupsuffix is set, and the file being installed + # already exists, attempt a backup. Don't worry if it fails, + # e.g., if mv doesn't support -f. + if test -n "$backupsuffix" && test -f "$dst"; then + $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null + fi + # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || @@ -491,9 +514,9 @@ # file should still install successfully. { test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || + $doit $rmcmd "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 diff -Nru libgee-0.8-0.20.3/ltmain.sh libgee-0.8-0.20.4/ltmain.sh --- libgee-0.8-0.20.3/ltmain.sh 2020-02-09 19:03:09.000000000 +0000 +++ libgee-0.8-0.20.4/ltmain.sh 2021-03-17 19:58:34.000000000 +0000 @@ -31,7 +31,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.6 Debian-2.4.6-12" +VERSION="2.4.6 Debian-2.4.6-15" package_revision=2.4.6 @@ -2141,7 +2141,7 @@ compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname $scriptversion Debian-2.4.6-12 + version: $progname $scriptversion Debian-2.4.6-15 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` diff -Nru libgee-0.8-0.20.3/m4/libtool.m4 libgee-0.8-0.20.4/m4/libtool.m4 --- libgee-0.8-0.20.3/m4/libtool.m4 2020-02-09 19:03:09.000000000 +0000 +++ libgee-0.8-0.20.4/m4/libtool.m4 2021-03-17 19:58:34.000000000 +0000 @@ -1071,11 +1071,11 @@ # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + 10.0,*86*-darwin8*|10.0,*-darwin[[912]]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[[012]][[,.]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*) + 10.*|11.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; diff -Nru libgee-0.8-0.20.3/m4/pkg.m4 libgee-0.8-0.20.4/m4/pkg.m4 --- libgee-0.8-0.20.3/m4/pkg.m4 2020-02-09 19:03:01.000000000 +0000 +++ libgee-0.8-0.20.4/m4/pkg.m4 2021-03-17 19:58:26.000000000 +0000 @@ -1,6 +1,6 @@ -dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -dnl serial 11 (pkg-config-0.29.1) -dnl +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 12 (pkg-config-0.29.2) + dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson dnl @@ -41,7 +41,7 @@ dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], -[m4_define([PKG_MACROS_VERSION], [0.29.1]) +[m4_define([PKG_MACROS_VERSION], [0.29.2]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ @@ -142,7 +142,7 @@ AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no -AC_MSG_CHECKING([for $1]) +AC_MSG_CHECKING([for $2]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) @@ -152,11 +152,11 @@ See the pkg-config man page for more details.]) if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else + else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs @@ -173,7 +173,7 @@ _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) + AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full diff -Nru libgee-0.8-0.20.3/Makefile.in libgee-0.8-0.20.4/Makefile.in --- libgee-0.8-0.20.3/Makefile.in 2020-02-09 19:03:15.000000000 +0000 +++ libgee-0.8-0.20.4/Makefile.in 2021-03-17 19:58:39.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -172,8 +172,8 @@ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir distdir-am dist dist-all distcheck -am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ - $(LISP)config.h.in +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ + config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. @@ -236,6 +236,8 @@ GZIP_ENV = --best DIST_ARCHIVES = $(distdir).tar.xz DIST_TARGETS = dist-xz +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' @@ -693,6 +695,10 @@ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @@ -735,6 +741,8 @@ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) @@ -750,7 +758,7 @@ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ @@ -916,19 +924,19 @@ am--refresh check check-am check-local clean clean-cscope \ clean-generic clean-libtool cscope cscopelist-am ctags \ ctags-am dist dist-all dist-bzip2 dist-gzip dist-hook \ - dist-lzip dist-shar dist-tarZ dist-xz dist-zip distcheck \ - distclean distclean-generic distclean-hdr distclean-libtool \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-html install-html-am \ - install-info install-info-am install-man install-pdf \ - install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ - install-strip installcheck installcheck-am installdirs \ - installdirs-am maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ - ps ps-am tags tags-am uninstall uninstall-am \ - uninstall-pkgconfigDATA + dist-lzip dist-shar dist-tarZ dist-xz dist-zip dist-zstd \ + distcheck distclean distclean-generic distclean-hdr \ + distclean-libtool distclean-tags distcleancheck distdir \ + distuninstallcheck dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pkgconfigDATA install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-pkgconfigDATA .PRECIOUS: Makefile diff -Nru libgee-0.8-0.20.3/missing libgee-0.8-0.20.4/missing --- libgee-0.8-0.20.3/missing 2020-02-09 19:03:15.000000000 +0000 +++ libgee-0.8-0.20.4/missing 2021-03-17 19:58:39.000000000 +0000 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2018 Free Software Foundation, Inc. +# Copyright (C) 1996-2020 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify diff -Nru libgee-0.8-0.20.3/NEWS libgee-0.8-0.20.4/NEWS --- libgee-0.8-0.20.3/NEWS 2020-02-09 19:02:41.000000000 +0000 +++ libgee-0.8-0.20.4/NEWS 2021-03-17 19:54:17.000000000 +0000 @@ -1,3 +1,7 @@ +libgee 0.20.4 +============= + * Fixes for newer valac + libgee 0.20.3 ============= * Minor warning fixes for newer valac diff -Nru libgee-0.8-0.20.3/tests/Makefile.in libgee-0.8-0.20.4/tests/Makefile.in --- libgee-0.8-0.20.3/tests/Makefile.in 2020-02-09 19:03:15.000000000 +0000 +++ libgee-0.8-0.20.4/tests/Makefile.in 2021-03-17 19:58:39.000000000 +0000 @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.16.1 from Makefile.am. +# Makefile.in generated by automake 1.16.3 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2018 Free Software Foundation, Inc. +# Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff -Nru libgee-0.8-0.20.3/tests/testarraylist.c libgee-0.8-0.20.4/tests/testarraylist.c --- libgee-0.8-0.20.3/tests/testarraylist.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testarraylist.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testarraylist.c generated by valac 0.46.6, the Vala compiler +/* testarraylist.c generated by valac 0.52.0, the Vala compiler * generated from testarraylist.vala, do not modify */ /* testarraylist.vala @@ -159,17 +159,19 @@ static gpointer array_list_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType list_tests_get_type (void) G_GNUC_CONST; +GType list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ListTests, g_object_unref) -GType bidir_list_tests_get_type (void) G_GNUC_CONST; +GType bidir_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (BidirListTests, g_object_unref) -GType array_list_tests_get_type (void) G_GNUC_CONST; +GType array_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ArrayListTests, g_object_unref) -static GType array_list_tests_test_enum_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); +static GType array_list_tests_test_enum_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; #define ARRAY_LIST_TESTS_BIG_SORT_SIZE 1000000 ArrayListTests* array_list_tests_new (void); ArrayListTests* array_list_tests_construct (GType object_type); @@ -193,6 +195,7 @@ static gdouble* _double_dup (gdouble* self); static gboolean _double_equal (const gdouble * s1, const gdouble * s2); +static GType array_list_tests_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -201,13 +204,21 @@ GDestroyNotify destroy_func); static GType +array_list_tests_test_enum_get_type_once (void) +{ + static const GEnumValue values[] = {{ARRAY_LIST_TESTS_TEST_ENUM_ONE, "ARRAY_LIST_TESTS_TEST_ENUM_ONE", "one"}, {ARRAY_LIST_TESTS_TEST_ENUM_TWO, "ARRAY_LIST_TESTS_TEST_ENUM_TWO", "two"}, {ARRAY_LIST_TESTS_TEST_ENUM_THREE, "ARRAY_LIST_TESTS_TEST_ENUM_THREE", "three"}, {0, NULL, NULL}}; + GType array_list_tests_test_enum_type_id; + array_list_tests_test_enum_type_id = g_enum_register_static ("ArrayListTestsTestEnum", values); + return array_list_tests_test_enum_type_id; +} + +static GType array_list_tests_test_enum_get_type (void) { static volatile gsize array_list_tests_test_enum_type_id__volatile = 0; if (g_once_init_enter (&array_list_tests_test_enum_type_id__volatile)) { - static const GEnumValue values[] = {{ARRAY_LIST_TESTS_TEST_ENUM_ONE, "ARRAY_LIST_TESTS_TEST_ENUM_ONE", "one"}, {ARRAY_LIST_TESTS_TEST_ENUM_TWO, "ARRAY_LIST_TESTS_TEST_ENUM_TWO", "two"}, {ARRAY_LIST_TESTS_TEST_ENUM_THREE, "ARRAY_LIST_TESTS_TEST_ENUM_THREE", "three"}, {0, NULL, NULL}}; GType array_list_tests_test_enum_type_id; - array_list_tests_test_enum_type_id = g_enum_register_static ("ArrayListTestsTestEnum", values); + array_list_tests_test_enum_type_id = array_list_tests_test_enum_get_type_once (); g_once_init_leave (&array_list_tests_test_enum_type_id__volatile, array_list_tests_test_enum_type_id); } return array_list_tests_test_enum_type_id__volatile; @@ -499,39 +510,39 @@ gint _bool_array_size_; gint index = 0; GeeList* int_list = NULL; - GeeArrayList* _tmp17_; - GeeList* _tmp18_; - GeeList* _tmp19_; + GeeArrayList* _tmp19_; GeeList* _tmp20_; - gint* int_array = NULL; GeeList* _tmp21_; - gint _tmp22_ = 0; - gpointer* _tmp23_; + GeeList* _tmp22_; + gint* int_array = NULL; + GeeList* _tmp23_; + gint _tmp24_ = 0; + gpointer* _tmp25_; gint int_array_length1; gint _int_array_size_; GeeList* double_list = NULL; - GeeArrayList* _tmp34_; - GeeList* _tmp35_; - gdouble _tmp36_; - GeeList* _tmp37_; - gdouble _tmp38_; + GeeArrayList* _tmp38_; GeeList* _tmp39_; gdouble _tmp40_; - gdouble** double_array = NULL; GeeList* _tmp41_; - gint _tmp42_ = 0; - gpointer* _tmp43_; + gdouble _tmp42_; + GeeList* _tmp43_; + gdouble _tmp44_; + gdouble** double_array = NULL; + GeeList* _tmp45_; + gint _tmp46_ = 0; + gpointer* _tmp47_; gint double_array_length1; gint _double_array_size_; GeeList* enum_list = NULL; - GeeArrayList* _tmp56_; - GeeList* _tmp57_; - GeeList* _tmp58_; - GeeList* _tmp59_; + GeeArrayList* _tmp62_; + GeeList* _tmp63_; + GeeList* _tmp64_; + GeeList* _tmp65_; ArrayListTestsTestEnum* enum_array = NULL; - GeeList* _tmp60_; - gint _tmp61_ = 0; - gpointer* _tmp62_; + GeeList* _tmp66_; + gint _tmp67_ = 0; + gpointer* _tmp68_; gint enum_array_length1; gint _enum_array_size_; g_return_if_fail (self != NULL); @@ -552,218 +563,228 @@ { GeeList* _element_list = NULL; GeeList* _tmp7_; - GeeList* _tmp8_; gint _element_size = 0; - GeeList* _tmp9_; + GeeList* _tmp8_; + gint _tmp9_; gint _tmp10_; - gint _tmp11_; gint _element_index = 0; _tmp7_ = bool_list; - _tmp8_ = _g_object_ref0 (_tmp7_); - _element_list = _tmp8_; - _tmp9_ = _element_list; - _tmp10_ = gee_collection_get_size ((GeeCollection*) _tmp9_); - _tmp11_ = _tmp10_; - _element_size = _tmp11_; + _element_list = _tmp7_; + _tmp8_ = _element_list; + _tmp9_ = gee_collection_get_size ((GeeCollection*) _tmp8_); + _tmp10_ = _tmp9_; + _element_size = _tmp10_; _element_index = -1; while (TRUE) { + gint _tmp11_; + gint _tmp12_; gboolean element = FALSE; - GeeList* _tmp12_; - gpointer _tmp13_; - gboolean* _tmp14_; - gint _tmp14__length1; - gint _tmp15_; - gboolean _tmp16_; + GeeList* _tmp13_; + gpointer _tmp14_; + gboolean _tmp15_; + gboolean* _tmp16_; + gint _tmp16__length1; + gint _tmp17_; + gboolean _tmp18_; _element_index = _element_index + 1; - if (!(_element_index < _element_size)) { + _tmp11_ = _element_index; + _tmp12_ = _element_size; + if (!(_tmp11_ < _tmp12_)) { break; } - _tmp12_ = _element_list; - _tmp13_ = gee_list_get (_tmp12_, _element_index); - element = (gboolean) ((gintptr) _tmp13_); - _tmp14_ = bool_array; - _tmp14__length1 = bool_array_length1; - _tmp15_ = index; - index = _tmp15_ + 1; - _tmp16_ = _tmp14_[_tmp15_]; - _vala_assert (element == _tmp16_, "element == bool_array[index++]"); + _tmp13_ = _element_list; + _tmp14_ = gee_list_get (_tmp13_, _element_index); + element = (gboolean) ((gintptr) _tmp14_); + _tmp15_ = element; + _tmp16_ = bool_array; + _tmp16__length1 = bool_array_length1; + _tmp17_ = index; + index = _tmp17_ + 1; + _tmp18_ = _tmp16_[_tmp17_]; + _vala_assert (_tmp15_ == _tmp18_, "element == bool_array[index++]"); } - _g_object_unref0 (_element_list); } - _tmp17_ = gee_array_list_new (G_TYPE_INT, NULL, NULL, NULL, NULL, NULL); - int_list = (GeeList*) _tmp17_; - _tmp18_ = int_list; - _vala_assert (gee_collection_add ((GeeCollection*) _tmp18_, (gpointer) ((gintptr) 1)), "int_list.add (1)"); - _tmp19_ = int_list; - _vala_assert (gee_collection_add ((GeeCollection*) _tmp19_, (gpointer) ((gintptr) 2)), "int_list.add (2)"); + _tmp19_ = gee_array_list_new (G_TYPE_INT, NULL, NULL, NULL, NULL, NULL); + int_list = (GeeList*) _tmp19_; _tmp20_ = int_list; - _vala_assert (gee_collection_add ((GeeCollection*) _tmp20_, (gpointer) ((gintptr) 3)), "int_list.add (3)"); + _vala_assert (gee_collection_add ((GeeCollection*) _tmp20_, (gpointer) ((gintptr) 1)), "int_list.add (1)"); _tmp21_ = int_list; - _tmp23_ = gee_collection_to_array ((GeeCollection*) _tmp21_, &_tmp22_); - int_array = _tmp23_; - int_array_length1 = _tmp22_; + _vala_assert (gee_collection_add ((GeeCollection*) _tmp21_, (gpointer) ((gintptr) 2)), "int_list.add (2)"); + _tmp22_ = int_list; + _vala_assert (gee_collection_add ((GeeCollection*) _tmp22_, (gpointer) ((gintptr) 3)), "int_list.add (3)"); + _tmp23_ = int_list; + _tmp25_ = gee_collection_to_array ((GeeCollection*) _tmp23_, &_tmp24_); + int_array = _tmp25_; + int_array_length1 = _tmp24_; _int_array_size_ = int_array_length1; index = 0; { GeeList* _element_list = NULL; - GeeList* _tmp24_; - GeeList* _tmp25_; - gint _element_size = 0; GeeList* _tmp26_; - gint _tmp27_; + gint _element_size = 0; + GeeList* _tmp27_; gint _tmp28_; + gint _tmp29_; gint _element_index = 0; - _tmp24_ = int_list; - _tmp25_ = _g_object_ref0 (_tmp24_); - _element_list = _tmp25_; - _tmp26_ = _element_list; - _tmp27_ = gee_collection_get_size ((GeeCollection*) _tmp26_); - _tmp28_ = _tmp27_; - _element_size = _tmp28_; + _tmp26_ = int_list; + _element_list = _tmp26_; + _tmp27_ = _element_list; + _tmp28_ = gee_collection_get_size ((GeeCollection*) _tmp27_); + _tmp29_ = _tmp28_; + _element_size = _tmp29_; _element_index = -1; while (TRUE) { + gint _tmp30_; + gint _tmp31_; gint element = 0; - GeeList* _tmp29_; - gpointer _tmp30_; - gint* _tmp31_; - gint _tmp31__length1; - gint _tmp32_; - gint _tmp33_; + GeeList* _tmp32_; + gpointer _tmp33_; + gint _tmp34_; + gint* _tmp35_; + gint _tmp35__length1; + gint _tmp36_; + gint _tmp37_; _element_index = _element_index + 1; - if (!(_element_index < _element_size)) { + _tmp30_ = _element_index; + _tmp31_ = _element_size; + if (!(_tmp30_ < _tmp31_)) { break; } - _tmp29_ = _element_list; - _tmp30_ = gee_list_get (_tmp29_, _element_index); - element = (gint) ((gintptr) _tmp30_); - _tmp31_ = int_array; - _tmp31__length1 = int_array_length1; - _tmp32_ = index; - index = _tmp32_ + 1; - _tmp33_ = _tmp31_[_tmp32_]; - _vala_assert (element == _tmp33_, "element == int_array[index++]"); + _tmp32_ = _element_list; + _tmp33_ = gee_list_get (_tmp32_, _element_index); + element = (gint) ((gintptr) _tmp33_); + _tmp34_ = element; + _tmp35_ = int_array; + _tmp35__length1 = int_array_length1; + _tmp36_ = index; + index = _tmp36_ + 1; + _tmp37_ = _tmp35_[_tmp36_]; + _vala_assert (_tmp34_ == _tmp37_, "element == int_array[index++]"); } - _g_object_unref0 (_element_list); } - _tmp34_ = gee_array_list_new (G_TYPE_DOUBLE, (GBoxedCopyFunc) _double_dup, (GDestroyNotify) g_free, NULL, NULL, NULL); - double_list = (GeeList*) _tmp34_; - _tmp35_ = double_list; - _tmp36_ = 1.0; - _vala_assert (gee_collection_add ((GeeCollection*) _tmp35_, &_tmp36_), "double_list.add (1.0d)"); - _tmp37_ = double_list; - _tmp38_ = 1.5; - _vala_assert (gee_collection_add ((GeeCollection*) _tmp37_, &_tmp38_), "double_list.add (1.5d)"); + _tmp38_ = gee_array_list_new (G_TYPE_DOUBLE, (GBoxedCopyFunc) _double_dup, (GDestroyNotify) g_free, NULL, NULL, NULL); + double_list = (GeeList*) _tmp38_; _tmp39_ = double_list; - _tmp40_ = 2.0; - _vala_assert (gee_collection_add ((GeeCollection*) _tmp39_, &_tmp40_), "double_list.add (2.0d)"); + _tmp40_ = 1.0; + _vala_assert (gee_collection_add ((GeeCollection*) _tmp39_, &_tmp40_), "double_list.add (1.0d)"); _tmp41_ = double_list; - _tmp43_ = gee_collection_to_array ((GeeCollection*) _tmp41_, &_tmp42_); - double_array = _tmp43_; - double_array_length1 = _tmp42_; + _tmp42_ = 1.5; + _vala_assert (gee_collection_add ((GeeCollection*) _tmp41_, &_tmp42_), "double_list.add (1.5d)"); + _tmp43_ = double_list; + _tmp44_ = 2.0; + _vala_assert (gee_collection_add ((GeeCollection*) _tmp43_, &_tmp44_), "double_list.add (2.0d)"); + _tmp45_ = double_list; + _tmp47_ = gee_collection_to_array ((GeeCollection*) _tmp45_, &_tmp46_); + double_array = _tmp47_; + double_array_length1 = _tmp46_; _double_array_size_ = double_array_length1; index = 0; { GeeList* _element_list = NULL; - GeeList* _tmp44_; - GeeList* _tmp45_; + GeeList* _tmp48_; gint _element_size = 0; - GeeList* _tmp46_; - gint _tmp47_; - gint _tmp48_; + GeeList* _tmp49_; + gint _tmp50_; + gint _tmp51_; gint _element_index = 0; - _tmp44_ = double_list; - _tmp45_ = _g_object_ref0 (_tmp44_); - _element_list = _tmp45_; - _tmp46_ = _element_list; - _tmp47_ = gee_collection_get_size ((GeeCollection*) _tmp46_); - _tmp48_ = _tmp47_; - _element_size = _tmp48_; + _tmp48_ = double_list; + _element_list = _tmp48_; + _tmp49_ = _element_list; + _tmp50_ = gee_collection_get_size ((GeeCollection*) _tmp49_); + _tmp51_ = _tmp50_; + _element_size = _tmp51_; _element_index = -1; while (TRUE) { + gint _tmp52_; + gint _tmp53_; gdouble element = 0.0; - GeeList* _tmp49_; - gpointer _tmp50_; - gdouble* _tmp51_; - gdouble _tmp52_; - gdouble** _tmp53_; - gint _tmp53__length1; - gint _tmp54_; - gdouble* _tmp55_; + GeeList* _tmp54_; + gpointer _tmp55_; + gdouble* _tmp56_; + gdouble _tmp57_; + gdouble _tmp58_; + gdouble** _tmp59_; + gint _tmp59__length1; + gint _tmp60_; + gdouble* _tmp61_; _element_index = _element_index + 1; - if (!(_element_index < _element_size)) { + _tmp52_ = _element_index; + _tmp53_ = _element_size; + if (!(_tmp52_ < _tmp53_)) { break; } - _tmp49_ = _element_list; - _tmp50_ = gee_list_get (_tmp49_, _element_index); - _tmp51_ = (gdouble*) _tmp50_; - _tmp52_ = *_tmp51_; - _g_free0 (_tmp51_); - element = _tmp52_; - _tmp53_ = double_array; - _tmp53__length1 = double_array_length1; - _tmp54_ = index; - index = _tmp54_ + 1; - _tmp55_ = _tmp53_[_tmp54_]; - _vala_assert (_double_equal (&element, _tmp55_) == TRUE, "element == double_array[index++]"); + _tmp54_ = _element_list; + _tmp55_ = gee_list_get (_tmp54_, _element_index); + _tmp56_ = (gdouble*) _tmp55_; + _tmp57_ = *_tmp56_; + _g_free0 (_tmp56_); + element = _tmp57_; + _tmp58_ = element; + _tmp59_ = double_array; + _tmp59__length1 = double_array_length1; + _tmp60_ = index; + index = _tmp60_ + 1; + _tmp61_ = _tmp59_[_tmp60_]; + _vala_assert (_double_equal (&_tmp58_, _tmp61_) == TRUE, "element == double_array[index++]"); } - _g_object_unref0 (_element_list); } - _tmp56_ = gee_array_list_new (ARRAY_LIST_TESTS_TYPE_TEST_ENUM, NULL, NULL, NULL, NULL, NULL); - enum_list = (GeeList*) _tmp56_; - _tmp57_ = enum_list; - _vala_assert (gee_collection_add ((GeeCollection*) _tmp57_, (gpointer) ((gintptr) ARRAY_LIST_TESTS_TEST_ENUM_ONE)), "enum_list.add (TestEnum.ONE)"); - _tmp58_ = enum_list; - _vala_assert (gee_collection_add ((GeeCollection*) _tmp58_, (gpointer) ((gintptr) ARRAY_LIST_TESTS_TEST_ENUM_TWO)), "enum_list.add (TestEnum.TWO)"); - _tmp59_ = enum_list; - _vala_assert (gee_collection_add ((GeeCollection*) _tmp59_, (gpointer) ((gintptr) ARRAY_LIST_TESTS_TEST_ENUM_THREE)), "enum_list.add (TestEnum.THREE)"); - _tmp60_ = enum_list; - _tmp62_ = gee_collection_to_array ((GeeCollection*) _tmp60_, &_tmp61_); - enum_array = _tmp62_; - enum_array_length1 = _tmp61_; + _tmp62_ = gee_array_list_new (ARRAY_LIST_TESTS_TYPE_TEST_ENUM, NULL, NULL, NULL, NULL, NULL); + enum_list = (GeeList*) _tmp62_; + _tmp63_ = enum_list; + _vala_assert (gee_collection_add ((GeeCollection*) _tmp63_, (gpointer) ((gintptr) ARRAY_LIST_TESTS_TEST_ENUM_ONE)), "enum_list.add (TestEnum.ONE)"); + _tmp64_ = enum_list; + _vala_assert (gee_collection_add ((GeeCollection*) _tmp64_, (gpointer) ((gintptr) ARRAY_LIST_TESTS_TEST_ENUM_TWO)), "enum_list.add (TestEnum.TWO)"); + _tmp65_ = enum_list; + _vala_assert (gee_collection_add ((GeeCollection*) _tmp65_, (gpointer) ((gintptr) ARRAY_LIST_TESTS_TEST_ENUM_THREE)), "enum_list.add (TestEnum.THREE)"); + _tmp66_ = enum_list; + _tmp68_ = gee_collection_to_array ((GeeCollection*) _tmp66_, &_tmp67_); + enum_array = _tmp68_; + enum_array_length1 = _tmp67_; _enum_array_size_ = enum_array_length1; index = 0; { GeeList* _element_list = NULL; - GeeList* _tmp63_; - GeeList* _tmp64_; + GeeList* _tmp69_; gint _element_size = 0; - GeeList* _tmp65_; - gint _tmp66_; - gint _tmp67_; + GeeList* _tmp70_; + gint _tmp71_; + gint _tmp72_; gint _element_index = 0; - _tmp63_ = enum_list; - _tmp64_ = _g_object_ref0 (_tmp63_); - _element_list = _tmp64_; - _tmp65_ = _element_list; - _tmp66_ = gee_collection_get_size ((GeeCollection*) _tmp65_); - _tmp67_ = _tmp66_; - _element_size = _tmp67_; + _tmp69_ = enum_list; + _element_list = _tmp69_; + _tmp70_ = _element_list; + _tmp71_ = gee_collection_get_size ((GeeCollection*) _tmp70_); + _tmp72_ = _tmp71_; + _element_size = _tmp72_; _element_index = -1; while (TRUE) { + gint _tmp73_; + gint _tmp74_; ArrayListTestsTestEnum element = 0; - GeeList* _tmp68_; - gpointer _tmp69_; - ArrayListTestsTestEnum _tmp70_; - ArrayListTestsTestEnum* _tmp71_; - gint _tmp71__length1; - gint _tmp72_; - ArrayListTestsTestEnum _tmp73_; + GeeList* _tmp75_; + gpointer _tmp76_; + ArrayListTestsTestEnum _tmp77_; + ArrayListTestsTestEnum* _tmp78_; + gint _tmp78__length1; + gint _tmp79_; + ArrayListTestsTestEnum _tmp80_; _element_index = _element_index + 1; - if (!(_element_index < _element_size)) { + _tmp73_ = _element_index; + _tmp74_ = _element_size; + if (!(_tmp73_ < _tmp74_)) { break; } - _tmp68_ = _element_list; - _tmp69_ = gee_list_get (_tmp68_, _element_index); - element = (ArrayListTestsTestEnum) ((gintptr) _tmp69_); - _tmp70_ = element; - _tmp71_ = enum_array; - _tmp71__length1 = enum_array_length1; - _tmp72_ = index; - index = _tmp72_ + 1; - _tmp73_ = _tmp71_[_tmp72_]; - _vala_assert (_tmp70_ == _tmp73_, "element == enum_array[index++]"); + _tmp75_ = _element_list; + _tmp76_ = gee_list_get (_tmp75_, _element_index); + element = (ArrayListTestsTestEnum) ((gintptr) _tmp76_); + _tmp77_ = element; + _tmp78_ = enum_array; + _tmp78__length1 = enum_array_length1; + _tmp79_ = index; + index = _tmp79_ + 1; + _tmp80_ = _tmp78_[_tmp79_]; + _vala_assert (_tmp77_ == _tmp80_, "element == enum_array[index++]"); } - _g_object_unref0 (_element_list); } enum_array = (g_free (enum_array), NULL); _g_object_unref0 (enum_list); @@ -790,14 +811,22 @@ { } +static GType +array_list_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (ArrayListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) array_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ArrayListTests), 0, (GInstanceInitFunc) array_list_tests_instance_init, NULL }; + GType array_list_tests_type_id; + array_list_tests_type_id = g_type_register_static (TYPE_BIDIR_LIST_TESTS, "ArrayListTests", &g_define_type_info, 0); + return array_list_tests_type_id; +} + GType array_list_tests_get_type (void) { static volatile gsize array_list_tests_type_id__volatile = 0; if (g_once_init_enter (&array_list_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (ArrayListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) array_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ArrayListTests), 0, (GInstanceInitFunc) array_list_tests_instance_init, NULL }; GType array_list_tests_type_id; - array_list_tests_type_id = g_type_register_static (TYPE_BIDIR_LIST_TESTS, "ArrayListTests", &g_define_type_info, 0); + array_list_tests_type_id = array_list_tests_get_type_once (); g_once_init_leave (&array_list_tests_type_id__volatile, array_list_tests_type_id); } return array_list_tests_type_id__volatile; @@ -809,7 +838,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/tests/testarrayqueue.c libgee-0.8-0.20.4/tests/testarrayqueue.c --- libgee-0.8-0.20.3/tests/testarrayqueue.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testarrayqueue.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testarrayqueue.c generated by valac 0.46.6, the Vala compiler +/* testarrayqueue.c generated by valac 0.52.0, the Vala compiler * generated from testarrayqueue.vala, do not modify */ /* arrayqueue.vala @@ -140,22 +140,25 @@ static gpointer array_queue_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType queue_tests_get_type (void) G_GNUC_CONST; +GType queue_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (QueueTests, g_object_unref) -GType deque_tests_get_type (void) G_GNUC_CONST; +GType deque_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (DequeTests, g_object_unref) -GType array_queue_tests_get_type (void) G_GNUC_CONST; +GType array_queue_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ArrayQueueTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); ArrayQueueTests* array_queue_tests_new (void); ArrayQueueTests* array_queue_tests_construct (GType object_type); DequeTests* deque_tests_construct (GType object_type, const gchar* name); static void array_queue_tests_real_set_up (GeeTestCase* base); static void array_queue_tests_real_tear_down (GeeTestCase* base); +static GType array_queue_tests_get_type_once (void); ArrayQueueTests* array_queue_tests_construct (GType object_type) @@ -206,14 +209,22 @@ { } +static GType +array_queue_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (ArrayQueueTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) array_queue_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ArrayQueueTests), 0, (GInstanceInitFunc) array_queue_tests_instance_init, NULL }; + GType array_queue_tests_type_id; + array_queue_tests_type_id = g_type_register_static (TYPE_DEQUE_TESTS, "ArrayQueueTests", &g_define_type_info, 0); + return array_queue_tests_type_id; +} + GType array_queue_tests_get_type (void) { static volatile gsize array_queue_tests_type_id__volatile = 0; if (g_once_init_enter (&array_queue_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (ArrayQueueTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) array_queue_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ArrayQueueTests), 0, (GInstanceInitFunc) array_queue_tests_instance_init, NULL }; GType array_queue_tests_type_id; - array_queue_tests_type_id = g_type_register_static (TYPE_DEQUE_TESTS, "ArrayQueueTests", &g_define_type_info, 0); + array_queue_tests_type_id = array_queue_tests_get_type_once (); g_once_init_leave (&array_queue_tests_type_id__volatile, array_queue_tests_type_id); } return array_queue_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testbidirlist.c libgee-0.8-0.20.4/tests/testbidirlist.c --- libgee-0.8-0.20.3/tests/testbidirlist.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testbidirlist.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testbidirlist.c generated by valac 0.46.6, the Vala compiler +/* testbidirlist.c generated by valac 0.52.0, the Vala compiler * generated from testbidirlist.vala, do not modify */ /* testbidirlist.vala @@ -127,13 +127,13 @@ static gpointer bidir_list_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType list_tests_get_type (void) G_GNUC_CONST; +GType list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ListTests, g_object_unref) -GType bidir_list_tests_get_type (void) G_GNUC_CONST; +GType bidir_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (BidirListTests, g_object_unref) BidirListTests* bidir_list_tests_construct (GType object_type, const gchar* name); @@ -146,6 +146,7 @@ GDestroyNotify test_target_destroy_notify); void bidir_list_tests_test_bidir_list_iterator (BidirListTests* self); static void _bidir_list_tests_test_bidir_list_iterator_gee_test_case_test_method (gpointer self); +static GType bidir_list_tests_get_type_once (void); static void _bidir_list_tests_test_bidir_list_iterator_gee_test_case_test_method (gpointer self) @@ -422,14 +423,22 @@ { } +static GType +bidir_list_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (BidirListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirListTests), 0, (GInstanceInitFunc) bidir_list_tests_instance_init, NULL }; + GType bidir_list_tests_type_id; + bidir_list_tests_type_id = g_type_register_static (TYPE_LIST_TESTS, "BidirListTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + return bidir_list_tests_type_id; +} + GType bidir_list_tests_get_type (void) { static volatile gsize bidir_list_tests_type_id__volatile = 0; if (g_once_init_enter (&bidir_list_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (BidirListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirListTests), 0, (GInstanceInitFunc) bidir_list_tests_instance_init, NULL }; GType bidir_list_tests_type_id; - bidir_list_tests_type_id = g_type_register_static (TYPE_LIST_TESTS, "BidirListTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + bidir_list_tests_type_id = bidir_list_tests_get_type_once (); g_once_init_leave (&bidir_list_tests_type_id__volatile, bidir_list_tests_type_id); } return bidir_list_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testbidirsortedmap.c libgee-0.8-0.20.4/tests/testbidirsortedmap.c --- libgee-0.8-0.20.3/tests/testbidirsortedmap.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testbidirsortedmap.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testbidirsortedmap.c generated by valac 0.46.6, the Vala compiler +/* testbidirsortedmap.c generated by valac 0.52.0, the Vala compiler * generated from testbidirsortedmap.vala, do not modify */ /* testbidirsortedmap.vala @@ -168,13 +168,13 @@ static gint BidirSortedMapTestsBidirSubMapTests_private_offset; static gpointer bidir_sorted_map_tests_bidir_sub_map_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType map_tests_get_type (void) G_GNUC_CONST; +GType map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MapTests, g_object_unref) -GType gee_sorted_map_tests_get_type (void) G_GNUC_CONST; +GType gee_sorted_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeSortedMapTests, g_object_unref) -GType bidir_sorted_map_tests_get_type (void) G_GNUC_CONST; +GType bidir_sorted_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (BidirSortedMapTests, g_object_unref) BidirSortedMapTests* bidir_sorted_map_tests_construct (GType object_type, const gchar* name); @@ -190,32 +190,34 @@ void bidir_sorted_map_tests_test_bidir_iterator_last (BidirSortedMapTests* self); static void _bidir_sorted_map_tests_test_bidir_iterator_last_gee_test_case_test_method (gpointer self); GTestSuite* gee_test_case_get_suite (GeeTestCase* self); -GType gee_sorted_map_tests_sub_map_tests_type_get_type (void) G_GNUC_CONST; +GType gee_sorted_map_tests_sub_map_tests_type_get_type (void) G_GNUC_CONST ; BidirSortedMapTestsBidirSubMapTests* bidir_sorted_map_tests_bidir_sub_map_tests_new (BidirSortedMapTests* test, GeeSortedMapTestsSubMapTestsType type); BidirSortedMapTestsBidirSubMapTests* bidir_sorted_map_tests_bidir_sub_map_tests_construct (GType object_type, BidirSortedMapTests* test, GeeSortedMapTestsSubMapTestsType type); -GType bidir_sorted_map_tests_bidir_sub_map_tests_get_type (void) G_GNUC_CONST; +GType bidir_sorted_map_tests_bidir_sub_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (BidirSortedMapTestsBidirSubMapTests, g_object_unref) void map_tests_assert_entry (GeeMapEntry* e, const gchar* key, const gchar* value); +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); const gchar* gee_sorted_map_tests_sub_map_tests_type_to_string (GeeSortedMapTestsSubMapTestsType self); GeeTestCase* gee_test_case_construct (GType object_type, const gchar* name); void bidir_sorted_map_tests_bidir_sub_map_tests_test_bidir_iterators (BidirSortedMapTestsBidirSubMapTests* self); static void _bidir_sorted_map_tests_bidir_sub_map_tests_test_bidir_iterators_gee_test_case_test_method (gpointer self); static void bidir_sorted_map_tests_bidir_sub_map_tests_real_set_up (GeeTestCase* base); -void gee_test_case_set_up (GeeTestCase* self); static void bidir_sorted_map_tests_bidir_sub_map_tests_real_tear_down (GeeTestCase* base); -void gee_test_case_tear_down (GeeTestCase* self); void bidir_sorted_map_tests_bidir_sub_map_tests_set_default_values (BidirSortedMapTestsBidirSubMapTests* self, gchar*** contains, gint* contains_length1, gchar*** not_contains, gint* not_contains_length1); static void bidir_sorted_map_tests_bidir_sub_map_tests_finalize (GObject * obj); +static GType bidir_sorted_map_tests_bidir_sub_map_tests_get_type_once (void); +static GType bidir_sorted_map_tests_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -2061,15 +2063,23 @@ G_OBJECT_CLASS (bidir_sorted_map_tests_bidir_sub_map_tests_parent_class)->finalize (obj); } +static GType +bidir_sorted_map_tests_bidir_sub_map_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (BidirSortedMapTestsBidirSubMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_sorted_map_tests_bidir_sub_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirSortedMapTestsBidirSubMapTests), 0, (GInstanceInitFunc) bidir_sorted_map_tests_bidir_sub_map_tests_instance_init, NULL }; + GType bidir_sorted_map_tests_bidir_sub_map_tests_type_id; + bidir_sorted_map_tests_bidir_sub_map_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "BidirSortedMapTestsBidirSubMapTests", &g_define_type_info, 0); + BidirSortedMapTestsBidirSubMapTests_private_offset = g_type_add_instance_private (bidir_sorted_map_tests_bidir_sub_map_tests_type_id, sizeof (BidirSortedMapTestsBidirSubMapTestsPrivate)); + return bidir_sorted_map_tests_bidir_sub_map_tests_type_id; +} + GType bidir_sorted_map_tests_bidir_sub_map_tests_get_type (void) { static volatile gsize bidir_sorted_map_tests_bidir_sub_map_tests_type_id__volatile = 0; if (g_once_init_enter (&bidir_sorted_map_tests_bidir_sub_map_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (BidirSortedMapTestsBidirSubMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_sorted_map_tests_bidir_sub_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirSortedMapTestsBidirSubMapTests), 0, (GInstanceInitFunc) bidir_sorted_map_tests_bidir_sub_map_tests_instance_init, NULL }; GType bidir_sorted_map_tests_bidir_sub_map_tests_type_id; - bidir_sorted_map_tests_bidir_sub_map_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "BidirSortedMapTestsBidirSubMapTests", &g_define_type_info, 0); - BidirSortedMapTestsBidirSubMapTests_private_offset = g_type_add_instance_private (bidir_sorted_map_tests_bidir_sub_map_tests_type_id, sizeof (BidirSortedMapTestsBidirSubMapTestsPrivate)); + bidir_sorted_map_tests_bidir_sub_map_tests_type_id = bidir_sorted_map_tests_bidir_sub_map_tests_get_type_once (); g_once_init_leave (&bidir_sorted_map_tests_bidir_sub_map_tests_type_id__volatile, bidir_sorted_map_tests_bidir_sub_map_tests_type_id); } return bidir_sorted_map_tests_bidir_sub_map_tests_type_id__volatile; @@ -2088,14 +2098,22 @@ { } +static GType +bidir_sorted_map_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (BidirSortedMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_sorted_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirSortedMapTests), 0, (GInstanceInitFunc) bidir_sorted_map_tests_instance_init, NULL }; + GType bidir_sorted_map_tests_type_id; + bidir_sorted_map_tests_type_id = g_type_register_static (GEE_TYPE_SORTED_MAP_TESTS, "BidirSortedMapTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + return bidir_sorted_map_tests_type_id; +} + GType bidir_sorted_map_tests_get_type (void) { static volatile gsize bidir_sorted_map_tests_type_id__volatile = 0; if (g_once_init_enter (&bidir_sorted_map_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (BidirSortedMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_sorted_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirSortedMapTests), 0, (GInstanceInitFunc) bidir_sorted_map_tests_instance_init, NULL }; GType bidir_sorted_map_tests_type_id; - bidir_sorted_map_tests_type_id = g_type_register_static (GEE_TYPE_SORTED_MAP_TESTS, "BidirSortedMapTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + bidir_sorted_map_tests_type_id = bidir_sorted_map_tests_get_type_once (); g_once_init_leave (&bidir_sorted_map_tests_type_id__volatile, bidir_sorted_map_tests_type_id); } return bidir_sorted_map_tests_type_id__volatile; @@ -2107,7 +2125,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/tests/testbidirsortedset.c libgee-0.8-0.20.4/tests/testbidirsortedset.c --- libgee-0.8-0.20.3/tests/testbidirsortedset.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testbidirsortedset.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testbidirsortedset.c generated by valac 0.46.6, the Vala compiler +/* testbidirsortedset.c generated by valac 0.52.0, the Vala compiler * generated from testbidirsortedset.vala, do not modify */ /* testbidirsortedset.vala @@ -189,15 +189,15 @@ static gint BidirSortedSetTestsBidirSubSetTests_private_offset; static gpointer bidir_sorted_set_tests_bidir_sub_set_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType set_tests_get_type (void) G_GNUC_CONST; +GType set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (SetTests, g_object_unref) -GType sorted_set_tests_get_type (void) G_GNUC_CONST; +GType sorted_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (SortedSetTests, g_object_unref) -GType bidir_sorted_set_tests_get_type (void) G_GNUC_CONST; +GType bidir_sorted_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (BidirSortedSetTests, g_object_unref) BidirSortedSetTests* bidir_sorted_set_tests_construct (GType object_type, const gchar* name); @@ -218,24 +218,26 @@ void bidir_sorted_set_tests_test_bidir_iterator_last (BidirSortedSetTests* self); static void _bidir_sorted_set_tests_test_bidir_iterator_last_gee_test_case_test_method (gpointer self); GTestSuite* gee_test_case_get_suite (GeeTestCase* self); -GType sorted_set_tests_sub_set_tests_type_get_type (void) G_GNUC_CONST; +GType sorted_set_tests_sub_set_tests_type_get_type (void) G_GNUC_CONST ; BidirSortedSetTestsBidirSubSetTests* bidir_sorted_set_tests_bidir_sub_set_tests_new (BidirSortedSetTests* test, SortedSetTestsSubSetTestsType type); BidirSortedSetTestsBidirSubSetTests* bidir_sorted_set_tests_bidir_sub_set_tests_construct (GType object_type, BidirSortedSetTests* test, SortedSetTestsSubSetTestsType type); -GType bidir_sorted_set_tests_bidir_sub_set_tests_get_type (void) G_GNUC_CONST; +GType bidir_sorted_set_tests_bidir_sub_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (BidirSortedSetTestsBidirSubSetTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); const gchar* sorted_set_tests_sub_set_tests_type_to_string (SortedSetTestsSubSetTestsType self); GeeTestCase* gee_test_case_construct (GType object_type, const gchar* name); void bidir_sorted_set_tests_bidir_sub_set_tests_test_bidir_iterator (BidirSortedSetTestsBidirSubSetTests* self); static void _bidir_sorted_set_tests_bidir_sub_set_tests_test_bidir_iterator_gee_test_case_test_method (gpointer self); static void bidir_sorted_set_tests_bidir_sub_set_tests_real_set_up (GeeTestCase* base); -void gee_test_case_set_up (GeeTestCase* self); static void bidir_sorted_set_tests_bidir_sub_set_tests_real_tear_down (GeeTestCase* base); -void gee_test_case_tear_down (GeeTestCase* self); static void bidir_sorted_set_tests_bidir_sub_set_tests_finalize (GObject * obj); +static GType bidir_sorted_set_tests_bidir_sub_set_tests_get_type_once (void); +static GType bidir_sorted_set_tests_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -1175,15 +1177,23 @@ G_OBJECT_CLASS (bidir_sorted_set_tests_bidir_sub_set_tests_parent_class)->finalize (obj); } +static GType +bidir_sorted_set_tests_bidir_sub_set_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (BidirSortedSetTestsBidirSubSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_sorted_set_tests_bidir_sub_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirSortedSetTestsBidirSubSetTests), 0, (GInstanceInitFunc) bidir_sorted_set_tests_bidir_sub_set_tests_instance_init, NULL }; + GType bidir_sorted_set_tests_bidir_sub_set_tests_type_id; + bidir_sorted_set_tests_bidir_sub_set_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "BidirSortedSetTestsBidirSubSetTests", &g_define_type_info, 0); + BidirSortedSetTestsBidirSubSetTests_private_offset = g_type_add_instance_private (bidir_sorted_set_tests_bidir_sub_set_tests_type_id, sizeof (BidirSortedSetTestsBidirSubSetTestsPrivate)); + return bidir_sorted_set_tests_bidir_sub_set_tests_type_id; +} + GType bidir_sorted_set_tests_bidir_sub_set_tests_get_type (void) { static volatile gsize bidir_sorted_set_tests_bidir_sub_set_tests_type_id__volatile = 0; if (g_once_init_enter (&bidir_sorted_set_tests_bidir_sub_set_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (BidirSortedSetTestsBidirSubSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_sorted_set_tests_bidir_sub_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirSortedSetTestsBidirSubSetTests), 0, (GInstanceInitFunc) bidir_sorted_set_tests_bidir_sub_set_tests_instance_init, NULL }; GType bidir_sorted_set_tests_bidir_sub_set_tests_type_id; - bidir_sorted_set_tests_bidir_sub_set_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "BidirSortedSetTestsBidirSubSetTests", &g_define_type_info, 0); - BidirSortedSetTestsBidirSubSetTests_private_offset = g_type_add_instance_private (bidir_sorted_set_tests_bidir_sub_set_tests_type_id, sizeof (BidirSortedSetTestsBidirSubSetTestsPrivate)); + bidir_sorted_set_tests_bidir_sub_set_tests_type_id = bidir_sorted_set_tests_bidir_sub_set_tests_get_type_once (); g_once_init_leave (&bidir_sorted_set_tests_bidir_sub_set_tests_type_id__volatile, bidir_sorted_set_tests_bidir_sub_set_tests_type_id); } return bidir_sorted_set_tests_bidir_sub_set_tests_type_id__volatile; @@ -1202,14 +1212,22 @@ { } +static GType +bidir_sorted_set_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (BidirSortedSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_sorted_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirSortedSetTests), 0, (GInstanceInitFunc) bidir_sorted_set_tests_instance_init, NULL }; + GType bidir_sorted_set_tests_type_id; + bidir_sorted_set_tests_type_id = g_type_register_static (TYPE_SORTED_SET_TESTS, "BidirSortedSetTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + return bidir_sorted_set_tests_type_id; +} + GType bidir_sorted_set_tests_get_type (void) { static volatile gsize bidir_sorted_set_tests_type_id__volatile = 0; if (g_once_init_enter (&bidir_sorted_set_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (BidirSortedSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_sorted_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirSortedSetTests), 0, (GInstanceInitFunc) bidir_sorted_set_tests_instance_init, NULL }; GType bidir_sorted_set_tests_type_id; - bidir_sorted_set_tests_type_id = g_type_register_static (TYPE_SORTED_SET_TESTS, "BidirSortedSetTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + bidir_sorted_set_tests_type_id = bidir_sorted_set_tests_get_type_once (); g_once_init_leave (&bidir_sorted_set_tests_type_id__volatile, bidir_sorted_set_tests_type_id); } return bidir_sorted_set_tests_type_id__volatile; @@ -1221,7 +1239,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/tests/testcase.c libgee-0.8-0.20.4/tests/testcase.c --- libgee-0.8-0.20.3/tests/testcase.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testcase.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testcase.c generated by valac 0.46.6, the Vala compiler +/* testcase.c generated by valac 0.52.0, the Vala compiler * generated from testcase.vala, do not modify */ /* testcase.vala @@ -107,7 +107,7 @@ static gint GeeTestCaseAdaptor_private_offset; static gpointer gee_test_case_adaptor_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) static gpointer gee_test_case_adaptor_ref (gpointer instance); static void gee_test_case_adaptor_unref (gpointer instance); @@ -115,14 +115,16 @@ const gchar* nick, const gchar* blurb, GType object_type, - GParamFlags flags) G_GNUC_UNUSED; + GParamFlags flags) G_GNUC_UNUSED ; static void gee_test_case_value_set_adaptor (GValue* value, - gpointer v_object) G_GNUC_UNUSED; + gpointer v_object) G_GNUC_UNUSED ; static void gee_test_case_value_take_adaptor (GValue* value, - gpointer v_object) G_GNUC_UNUSED; -static gpointer gee_test_case_value_get_adaptor (const GValue* value) G_GNUC_UNUSED; -static GType gee_test_case_adaptor_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; + gpointer v_object) G_GNUC_UNUSED ; +static gpointer gee_test_case_value_get_adaptor (const GValue* value) G_GNUC_UNUSED ; +static GType gee_test_case_adaptor_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCaseAdaptor, gee_test_case_adaptor_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); GeeTestCase* gee_test_case_construct (GType object_type, const gchar* name); void gee_test_case_add_test (GeeTestCase* self, @@ -142,8 +144,8 @@ GDestroyNotify test_target_destroy_notify, GeeTestCase* test_case); static void _vala_array_add1 (GeeTestCaseAdaptor** * array, - int* length, - int* size, + gint* length, + gint* size, GeeTestCaseAdaptor* value); static const gchar* gee_test_case_adaptor_get_name (GeeTestCaseAdaptor* self); static void gee_test_case_adaptor_set_up (GeeTestCaseAdaptor* self, @@ -158,15 +160,15 @@ void* fixture); static void _gee_test_case_adaptor_tear_down_gtest_fixture_func (void* fixture, gpointer self); -void gee_test_case_set_up (GeeTestCase* self); static void gee_test_case_real_set_up (GeeTestCase* self); -void gee_test_case_tear_down (GeeTestCase* self); static void gee_test_case_real_tear_down (GeeTestCase* self); GTestSuite* gee_test_case_get_suite (GeeTestCase* self); static void gee_test_case_adaptor_set_name (GeeTestCaseAdaptor* self, const gchar* value); static void gee_test_case_adaptor_finalize (GeeTestCaseAdaptor * obj); +static GType gee_test_case_adaptor_get_type_once (void); static void gee_test_case_finalize (GObject * obj); +static GType gee_test_case_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -201,8 +203,8 @@ static void _vala_array_add1 (GeeTestCaseAdaptor** * array, - int* length, - int* size, + gint* length, + gint* size, GeeTestCaseAdaptor* value) { if ((*length) == (*size)) { @@ -246,13 +248,11 @@ gpointer _tmp0__target; GDestroyNotify _tmp0__target_destroy_notify; GeeTestCaseAdaptor* _tmp1_; - GeeTestCaseAdaptor** _tmp2_; - gint _tmp2__length1; - GeeTestCaseAdaptor* _tmp3_; - GTestSuite* _tmp4_; + GeeTestCaseAdaptor* _tmp2_; + GTestSuite* _tmp3_; + const gchar* _tmp4_; const gchar* _tmp5_; - const gchar* _tmp6_; - GTestCase* _tmp7_; + GTestCase* _tmp6_; g_return_if_fail (self != NULL); g_return_if_fail (name != NULL); _tmp0_ = test; @@ -263,15 +263,13 @@ test_target_destroy_notify = NULL; _tmp1_ = gee_test_case_adaptor_new (name, _tmp0_, _tmp0__target, _tmp0__target_destroy_notify, self); adaptor = _tmp1_; - _tmp2_ = self->priv->adaptors; - _tmp2__length1 = self->priv->adaptors_length1; - _tmp3_ = _gee_test_case_adaptor_ref0 (adaptor); - _vala_array_add1 (&self->priv->adaptors, &self->priv->adaptors_length1, &self->priv->_adaptors_size_, _tmp3_); - _tmp4_ = self->priv->suite; - _tmp5_ = gee_test_case_adaptor_get_name (adaptor); - _tmp6_ = _tmp5_; - _tmp7_ = g_test_create_case (_tmp6_, (gsize) 0, adaptor, _gee_test_case_adaptor_set_up_gtest_fixture_func, _gee_test_case_adaptor_run_gtest_fixture_func, _gee_test_case_adaptor_tear_down_gtest_fixture_func); - g_test_suite_add (_tmp4_, _tmp7_); + _tmp2_ = _gee_test_case_adaptor_ref0 (adaptor); + _vala_array_add1 (&self->priv->adaptors, &self->priv->adaptors_length1, &self->priv->_adaptors_size_, _tmp2_); + _tmp3_ = self->priv->suite; + _tmp4_ = gee_test_case_adaptor_get_name (adaptor); + _tmp5_ = _tmp4_; + _tmp6_ = g_test_create_case (_tmp5_, (gsize) 0, adaptor, _gee_test_case_adaptor_set_up_gtest_fixture_func, _gee_test_case_adaptor_run_gtest_fixture_func, _gee_test_case_adaptor_tear_down_gtest_fixture_func); + g_test_suite_add (_tmp3_, _tmp6_); _gee_test_case_adaptor_unref0 (adaptor); (test_target_destroy_notify == NULL) ? NULL : (test_target_destroy_notify (test_target), NULL); test = NULL; @@ -287,8 +285,12 @@ void gee_test_case_set_up (GeeTestCase* self) { + GeeTestCaseClass* _klass_; g_return_if_fail (self != NULL); - GEE_TEST_CASE_GET_CLASS (self)->set_up (self); + _klass_ = GEE_TEST_CASE_GET_CLASS (self); + if (_klass_->set_up) { + _klass_->set_up (self); + } } static void @@ -299,8 +301,12 @@ void gee_test_case_tear_down (GeeTestCase* self) { + GeeTestCaseClass* _klass_; g_return_if_fail (self != NULL); - GEE_TEST_CASE_GET_CLASS (self)->tear_down (self); + _klass_ = GEE_TEST_CASE_GET_CLASS (self); + if (_klass_->tear_down) { + _klass_->tear_down (self); + } } GTestSuite* @@ -595,16 +601,24 @@ } static GType +gee_test_case_adaptor_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { gee_test_case_value_adaptor_init, gee_test_case_value_adaptor_free_value, gee_test_case_value_adaptor_copy_value, gee_test_case_value_adaptor_peek_pointer, "p", gee_test_case_value_adaptor_collect_value, "p", gee_test_case_value_adaptor_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (GeeTestCaseAdaptorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_test_case_adaptor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTestCaseAdaptor), 0, (GInstanceInitFunc) gee_test_case_adaptor_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType gee_test_case_adaptor_type_id; + gee_test_case_adaptor_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeTestCaseAdaptor", &g_define_type_info, &g_define_type_fundamental_info, 0); + GeeTestCaseAdaptor_private_offset = g_type_add_instance_private (gee_test_case_adaptor_type_id, sizeof (GeeTestCaseAdaptorPrivate)); + return gee_test_case_adaptor_type_id; +} + +static GType gee_test_case_adaptor_get_type (void) { static volatile gsize gee_test_case_adaptor_type_id__volatile = 0; if (g_once_init_enter (&gee_test_case_adaptor_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { gee_test_case_value_adaptor_init, gee_test_case_value_adaptor_free_value, gee_test_case_value_adaptor_copy_value, gee_test_case_value_adaptor_peek_pointer, "p", gee_test_case_value_adaptor_collect_value, "p", gee_test_case_value_adaptor_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (GeeTestCaseAdaptorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_test_case_adaptor_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTestCaseAdaptor), 0, (GInstanceInitFunc) gee_test_case_adaptor_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType gee_test_case_adaptor_type_id; - gee_test_case_adaptor_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GeeTestCaseAdaptor", &g_define_type_info, &g_define_type_fundamental_info, 0); - GeeTestCaseAdaptor_private_offset = g_type_add_instance_private (gee_test_case_adaptor_type_id, sizeof (GeeTestCaseAdaptorPrivate)); + gee_test_case_adaptor_type_id = gee_test_case_adaptor_get_type_once (); g_once_init_leave (&gee_test_case_adaptor_type_id__volatile, gee_test_case_adaptor_type_id); } return gee_test_case_adaptor_type_id__volatile; @@ -662,15 +676,23 @@ G_OBJECT_CLASS (gee_test_case_parent_class)->finalize (obj); } +static GType +gee_test_case_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeTestCaseClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_test_case_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTestCase), 0, (GInstanceInitFunc) gee_test_case_instance_init, NULL }; + GType gee_test_case_type_id; + gee_test_case_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTestCase", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + GeeTestCase_private_offset = g_type_add_instance_private (gee_test_case_type_id, sizeof (GeeTestCasePrivate)); + return gee_test_case_type_id; +} + GType gee_test_case_get_type (void) { static volatile gsize gee_test_case_type_id__volatile = 0; if (g_once_init_enter (&gee_test_case_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeTestCaseClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_test_case_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeTestCase), 0, (GInstanceInitFunc) gee_test_case_instance_init, NULL }; GType gee_test_case_type_id; - gee_test_case_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTestCase", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - GeeTestCase_private_offset = g_type_add_instance_private (gee_test_case_type_id, sizeof (GeeTestCasePrivate)); + gee_test_case_type_id = gee_test_case_get_type_once (); g_once_init_leave (&gee_test_case_type_id__volatile, gee_test_case_type_id); } return gee_test_case_type_id__volatile; @@ -682,7 +704,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/tests/testcollection.c libgee-0.8-0.20.4/tests/testcollection.c --- libgee-0.8-0.20.3/tests/testcollection.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testcollection.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testcollection.c generated by valac 0.46.6, the Vala compiler +/* testcollection.c generated by valac 0.52.0, the Vala compiler * generated from testcollection.vala, do not modify */ /* testcollection.vala @@ -141,9 +141,9 @@ static gpointer collection_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) CollectionTests* collection_tests_construct (GType object_type, const gchar* name); @@ -417,6 +417,7 @@ gconstpointer b, gpointer self); static void collection_tests_finalize (GObject * obj); +static GType collection_tests_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -688,16 +689,16 @@ GeeIterator* _tmp20_; gboolean _tmp21_; gboolean _tmp22_; - GeeIterator* _tmp44_; GeeIterator* _tmp45_; - gboolean _tmp46_; + GeeIterator* _tmp46_; gboolean _tmp47_; - GeeIterator* _tmp48_; + gboolean _tmp48_; GeeIterator* _tmp49_; - gboolean _tmp50_; + GeeIterator* _tmp50_; gboolean _tmp51_; - guint* _tmp52_; - gint _tmp52__length1; + gboolean _tmp52_; + guint* _tmp53_; + gint _tmp53__length1; if (!_tmp12_) { guint _tmp13_; _tmp13_ = i; @@ -812,10 +813,12 @@ guint* _tmp42_; gint _tmp42__length1; guint _tmp43_; + guint _tmp44_; _tmp42_ = found_times; _tmp42__length1 = found_times_length1; - _tmp43_ = _tmp42_[element_idx]; - _tmp42_[element_idx] = _tmp43_ + 1; + _tmp43_ = element_idx; + _tmp44_ = _tmp42_[_tmp43_]; + _tmp42_[_tmp43_] = _tmp44_ + 1; break; } } @@ -823,28 +826,28 @@ } _g_free0 (element); } - _tmp44_ = iterator; - has_next = gee_iterator_has_next (_tmp44_); - _vala_assert (!has_next, "! has_next"); _tmp45_ = iterator; - _tmp46_ = gee_iterator_get_valid (_tmp45_); - _tmp47_ = _tmp46_; - _vala_assert (_tmp47_, "iterator.valid"); - _tmp48_ = iterator; - _vala_assert (has_next == gee_iterator_next (_tmp48_), "has_next == iterator.next ()"); + has_next = gee_iterator_has_next (_tmp45_); + _vala_assert (!has_next, "! has_next"); + _tmp46_ = iterator; + _tmp47_ = gee_iterator_get_valid (_tmp46_); + _tmp48_ = _tmp47_; + _vala_assert (_tmp48_, "iterator.valid"); _tmp49_ = iterator; - _tmp50_ = gee_iterator_get_valid (_tmp49_); - _tmp51_ = _tmp50_; - _vala_assert (_tmp51_, "iterator.valid"); - _tmp52_ = found_times; - _tmp52__length1 = found_times_length1; + _vala_assert (has_next == gee_iterator_next (_tmp49_), "has_next == iterator.next ()"); + _tmp50_ = iterator; + _tmp51_ = gee_iterator_get_valid (_tmp50_); + _tmp52_ = _tmp51_; + _vala_assert (_tmp52_, "iterator.valid"); + _tmp53_ = found_times; + _tmp53__length1 = found_times_length1; { guint* ft_collection = NULL; gint ft_collection_length1 = 0; gint _ft_collection_size_ = 0; gint ft_it = 0; - ft_collection = _tmp52_; - ft_collection_length1 = _tmp52__length1; + ft_collection = _tmp53_; + ft_collection_length1 = _tmp53__length1; for (ft_it = 0; ft_it < ft_collection_length1; ft_it = ft_it + 1) { guint ft = 0U; ft = ft_collection[ft_it]; @@ -948,14 +951,14 @@ gboolean _tmp24_; gboolean _tmp25_; gboolean last_removed = FALSE; - GeeIterator* _tmp53_; GeeIterator* _tmp54_; - gboolean _tmp55_; + GeeIterator* _tmp55_; gboolean _tmp56_; - GeeIterator* _tmp57_; + gboolean _tmp57_; GeeIterator* _tmp58_; - gboolean _tmp59_; + GeeIterator* _tmp59_; gboolean _tmp60_; + gboolean _tmp61_; if (!_tmp14_) { guint _tmp15_; _tmp15_ = i; @@ -1060,6 +1063,7 @@ guint* _tmp51_; gint _tmp51__length1; guint _tmp52_; + guint _tmp53_; _tmp40_ = idx; _tmp40__length1 = idx_length1; if (i != ((guint) _tmp40__length1)) { @@ -1102,8 +1106,9 @@ } _tmp51_ = found_times; _tmp51__length1 = found_times_length1; - _tmp52_ = _tmp51_[element_idx]; - _tmp51_[element_idx] = _tmp52_ + 1; + _tmp52_ = element_idx; + _tmp53_ = _tmp51_[_tmp52_]; + _tmp51_[_tmp52_] = _tmp53_ + 1; break; } } @@ -1111,42 +1116,42 @@ } _g_free0 (element); } - _tmp53_ = iterator; - has_next = gee_iterator_has_next (_tmp53_); - _vala_assert (!has_next, "! has_next"); _tmp54_ = iterator; - _tmp55_ = gee_iterator_get_valid (_tmp54_); - _tmp56_ = _tmp55_; - _vala_assert (_tmp56_ == (!last_removed), "iterator.valid == !last_removed"); - _tmp57_ = iterator; - _vala_assert (has_next == gee_iterator_next (_tmp57_), "has_next == iterator.next ()"); + has_next = gee_iterator_has_next (_tmp54_); + _vala_assert (!has_next, "! has_next"); + _tmp55_ = iterator; + _tmp56_ = gee_iterator_get_valid (_tmp55_); + _tmp57_ = _tmp56_; + _vala_assert (_tmp57_ == (!last_removed), "iterator.valid == !last_removed"); _tmp58_ = iterator; - _tmp59_ = gee_iterator_get_valid (_tmp58_); - _tmp60_ = _tmp59_; - _vala_assert (_tmp60_ == (!last_removed), "iterator.valid == !last_removed"); + _vala_assert (has_next == gee_iterator_next (_tmp58_), "has_next == iterator.next ()"); + _tmp59_ = iterator; + _tmp60_ = gee_iterator_get_valid (_tmp59_); + _tmp61_ = _tmp60_; + _vala_assert (_tmp61_ == (!last_removed), "iterator.valid == !last_removed"); { guint j = 0U; j = (guint) 0; { - gboolean _tmp61_ = FALSE; - _tmp61_ = TRUE; + gboolean _tmp62_ = FALSE; + _tmp62_ = TRUE; while (TRUE) { - guint* _tmp63_; - gint _tmp63__length1; + guint* _tmp64_; + gint _tmp64__length1; gboolean removed = FALSE; - gint _tmp68_ = 0; - guint* _tmp69_; - gint _tmp69__length1; - guint _tmp70_; - if (!_tmp61_) { - guint _tmp62_; - _tmp62_ = j; - j = _tmp62_ + 1; + gint _tmp69_ = 0; + guint* _tmp70_; + gint _tmp70__length1; + guint _tmp71_; + if (!_tmp62_) { + guint _tmp63_; + _tmp63_ = j; + j = _tmp63_ + 1; } - _tmp61_ = FALSE; - _tmp63_ = found_times; - _tmp63__length1 = found_times_length1; - if (!(j < ((guint) _tmp63__length1))) { + _tmp62_ = FALSE; + _tmp64_ = found_times; + _tmp64__length1 = found_times_length1; + if (!(j < ((guint) _tmp64__length1))) { break; } removed = FALSE; @@ -1154,25 +1159,25 @@ gint k = 0; k = 0; { - gboolean _tmp64_ = FALSE; - _tmp64_ = TRUE; + gboolean _tmp65_ = FALSE; + _tmp65_ = TRUE; while (TRUE) { - guint* _tmp66_; - gint _tmp66__length1; - guint _tmp67_; - if (!_tmp64_) { - gint _tmp65_; - _tmp65_ = k; - k = _tmp65_ + 1; + guint* _tmp67_; + gint _tmp67__length1; + guint _tmp68_; + if (!_tmp65_) { + gint _tmp66_; + _tmp66_ = k; + k = _tmp66_ + 1; } - _tmp64_ = FALSE; + _tmp65_ = FALSE; if (!(((guint) k) < i)) { break; } - _tmp66_ = idx; - _tmp66__length1 = idx_length1; - _tmp67_ = _tmp66_[k]; - if (_tmp67_ == j) { + _tmp67_ = idx; + _tmp67__length1 = idx_length1; + _tmp68_ = _tmp67_[k]; + if (_tmp68_ == j) { removed = TRUE; break; } @@ -1180,14 +1185,14 @@ } } if (removed) { - _tmp68_ = 0; + _tmp69_ = 0; } else { - _tmp68_ = 1; + _tmp69_ = 1; } - _tmp69_ = found_times; - _tmp69__length1 = found_times_length1; - _tmp70_ = _tmp69_[j]; - _vala_assert (_tmp70_ == ((guint) _tmp68_), "found_times[j] == (removed ? 0 : 1)"); + _tmp70_ = found_times; + _tmp70__length1 = found_times_length1; + _tmp71_ = _tmp70_[j]; + _vala_assert (_tmp71_ == ((guint) _tmp69_), "found_times[j] == (removed ? 0 : 1)"); } } } @@ -2600,7 +2605,6 @@ { g_return_val_if_fail (x != NULL, FALSE); g_assert_not_reached (); - _g_free0 (x); } static gboolean @@ -2618,7 +2622,6 @@ { g_return_val_if_fail (x != NULL, FALSE); g_assert_not_reached (); - _g_free0 (x); } static gboolean @@ -2806,6 +2809,7 @@ gpointer _tmp2_; gchar* _tmp3_; gint _tmp4_; + gint _tmp5_; gboolean result = FALSE; _data1_ = _data2_->_data1_; self = _data1_->self; @@ -2819,7 +2823,8 @@ _g_free0 (_tmp3_); _tmp4_ = _data1_->count; _data1_->count = _tmp4_ + 1; - result = _tmp4_ != _data2_->i; + _tmp5_ = _data2_->i; + result = _tmp4_ != _tmp5_; _g_free0 (x); return result; } @@ -2844,6 +2849,7 @@ gpointer _tmp2_; gchar* _tmp3_; gint _tmp4_; + gint _tmp5_; gboolean result = FALSE; _data1_ = _data2_->_data1_; self = _data1_->self; @@ -2857,7 +2863,8 @@ _g_free0 (_tmp3_); _tmp4_ = _data1_->count; _data1_->count = _tmp4_ + 1; - result = _tmp4_ != _data2_->i; + _tmp5_ = _data2_->i; + result = _tmp4_ != _tmp5_; _g_free0 (x); return result; } @@ -2882,6 +2889,7 @@ gpointer _tmp2_; gchar* _tmp3_; gint _tmp4_; + gint _tmp5_; gboolean result = FALSE; _data1_ = _data2_->_data1_; self = _data1_->self; @@ -2895,7 +2903,8 @@ _g_free0 (_tmp3_); _tmp4_ = _data1_->count; _data1_->count = _tmp4_ + 1; - result = _tmp4_ != (_data2_->i + 1); + _tmp5_ = _data2_->i; + result = _tmp4_ != (_tmp5_ + 1); _g_free0 (x); return result; } @@ -2920,6 +2929,7 @@ gpointer _tmp2_; gchar* _tmp3_; gint _tmp4_; + gint _tmp5_; gboolean result = FALSE; _data1_ = _data2_->_data1_; self = _data1_->self; @@ -2933,7 +2943,8 @@ _g_free0 (_tmp3_); _tmp4_ = _data1_->count; _data1_->count = _tmp4_ + 1; - result = _tmp4_ != (_data2_->i + 1); + _tmp5_ = _data2_->i; + result = _tmp4_ != (_tmp5_ + 1); _g_free0 (x); return result; } @@ -3481,7 +3492,6 @@ { g_return_val_if_fail (x != NULL, 0); g_assert_not_reached (); - _g_free0 (x); } static gpointer @@ -3501,7 +3511,6 @@ { g_return_val_if_fail (x != NULL, 0); g_assert_not_reached (); - _g_free0 (x); } static gpointer @@ -3844,7 +3853,6 @@ { g_return_val_if_fail (str != NULL, 0); g_assert_not_reached (); - _g_free0 (str); } static gpointer @@ -3862,7 +3870,6 @@ { g_return_val_if_fail (str != NULL, 0); g_assert_not_reached (); - _g_free0 (str); } static gpointer @@ -3922,6 +3929,8 @@ gboolean _tmp4_; GeeIterator* _tmp5_; gpointer _tmp6_; + gint _tmp7_; + gint _tmp8_; gboolean result = FALSE; self = _data4_->self; g_return_val_if_fail (str != NULL, FALSE); @@ -3939,7 +3948,9 @@ _tmp6_ = gee_iterator_get (_tmp5_); _vala_assert (_data4_->j == ((gint) ((gintptr) _tmp6_)), "j == iter.get ()"); _data4_->j = _data4_->j + 1; - _vala_assert (_data4_->j == _data4_->i, "++j == i"); + _tmp7_ = _data4_->j; + _tmp8_ = _data4_->i; + _vala_assert (_tmp7_ == _tmp8_, "++j == i"); result = TRUE; _g_free0 (str); return result; @@ -4087,6 +4098,8 @@ gboolean _tmp4_; GeeIterator* _tmp5_; gpointer _tmp6_; + gint _tmp7_; + gint _tmp8_; gboolean result = FALSE; self = _data4_->self; g_return_val_if_fail (str != NULL, FALSE); @@ -4104,7 +4117,9 @@ _tmp6_ = gee_iterator_get (_tmp5_); _vala_assert (_data4_->j == ((gint) ((gintptr) _tmp6_)), "j == iter.get ()"); _data4_->j = _data4_->j + 1; - _vala_assert (_data4_->j == _data4_->i, "++j == i"); + _tmp7_ = _data4_->j; + _tmp8_ = _data4_->i; + _vala_assert (_tmp7_ == _tmp8_, "++j == i"); result = TRUE; _g_free0 (str); return result; @@ -4365,15 +4380,13 @@ GeeIterator* _tmp78_; gboolean _tmp79_; gboolean _tmp80_; - GeeIterator* _tmp92_; - GeeIterator* _tmp93_; - GeeCollection* _tmp94_; + GeeIterator* _tmp94_; GeeIterator* _tmp95_; GeeCollection* _tmp96_; GeeIterator* _tmp97_; GeeCollection* _tmp98_; GeeIterator* _tmp99_; - GeeIterator* _tmp100_; + GeeCollection* _tmp100_; GeeIterator* _tmp101_; GeeIterator* _tmp102_; GeeIterator* _tmp103_; @@ -4381,10 +4394,12 @@ GeeIterator* _tmp105_; GeeIterator* _tmp106_; GeeIterator* _tmp107_; - gboolean _tmp108_; - gboolean _tmp109_; - GeeIterator* _tmp120_; - GeeIterator* _tmp121_; + GeeIterator* _tmp108_; + GeeIterator* _tmp109_; + gboolean _tmp110_; + gboolean _tmp111_; + GeeIterator* _tmp122_; + GeeIterator* _tmp123_; g_return_if_fail (self != NULL); _data4_ = g_slice_new0 (Block4Data); _data4_->_ref_count_ = 1; @@ -4565,11 +4580,13 @@ GeeIterator* _tmp84_; GeeIterator* _tmp85_; gpointer _tmp86_; - GeeIterator* _tmp87_; - GeeIterator* _tmp88_; + gint _tmp87_; + gint _tmp88_; GeeIterator* _tmp89_; - gboolean _tmp90_; - gboolean _tmp91_; + GeeIterator* _tmp90_; + GeeIterator* _tmp91_; + gboolean _tmp92_; + gboolean _tmp93_; if (!_tmp81_) { GeeIterator* _tmp82_; _tmp82_ = outer_iter2; @@ -4587,92 +4604,94 @@ _tmp86_ = gee_iterator_get (_tmp85_); _vala_assert (_data4_->j == ((gint) ((gintptr) _tmp86_)), "j == iter.get ()"); _data4_->j = _data4_->j + 1; - _vala_assert (_data4_->j == _data4_->i, "++j == i"); - _tmp87_ = outer_iter2; - _tmp88_ = _data4_->iter; - _vala_assert (gee_iterator_has_next (_tmp87_) == gee_iterator_next (_tmp88_), "outer_iter2.has_next () == iter.next ()"); - _tmp89_ = _data4_->iter; - _tmp90_ = gee_iterator_get_valid (_tmp89_); - _tmp91_ = _tmp90_; - _vala_assert (_tmp91_, "iter.valid"); + _tmp87_ = _data4_->j; + _tmp88_ = _data4_->i; + _vala_assert (_tmp87_ == _tmp88_, "++j == i"); + _tmp89_ = outer_iter2; + _tmp90_ = _data4_->iter; + _vala_assert (gee_iterator_has_next (_tmp89_) == gee_iterator_next (_tmp90_), "outer_iter2.has_next () == iter.next ()"); + _tmp91_ = _data4_->iter; + _tmp92_ = gee_iterator_get_valid (_tmp91_); + _tmp93_ = _tmp92_; + _vala_assert (_tmp93_, "iter.valid"); } } - _tmp92_ = _data4_->iter; - _vala_assert (!gee_iterator_has_next (_tmp92_), "!iter.has_next ()"); - _tmp93_ = _data4_->iter; - _vala_assert (!gee_iterator_next (_tmp93_), "!iter.next ()"); + _tmp94_ = _data4_->iter; + _vala_assert (!gee_iterator_has_next (_tmp94_), "!iter.has_next ()"); + _tmp95_ = _data4_->iter; + _vala_assert (!gee_iterator_next (_tmp95_), "!iter.next ()"); _data4_->i = 1; _data4_->j = 1; - _tmp94_ = self->test_collection; - _tmp95_ = gee_iterable_iterator ((GeeIterable*) _tmp94_); - _g_object_unref0 (_data4_->test_iterator); - _data4_->test_iterator = _tmp95_; _tmp96_ = self->test_collection; _tmp97_ = gee_iterable_iterator ((GeeIterable*) _tmp96_); - _g_object_unref0 (outer_iter); - outer_iter = _tmp97_; + _g_object_unref0 (_data4_->test_iterator); + _data4_->test_iterator = _tmp97_; _tmp98_ = self->test_collection; _tmp99_ = gee_iterable_iterator ((GeeIterable*) _tmp98_); + _g_object_unref0 (outer_iter); + outer_iter = _tmp99_; + _tmp100_ = self->test_collection; + _tmp101_ = gee_iterable_iterator ((GeeIterable*) _tmp100_); _g_object_unref0 (outer_iter2); - outer_iter2 = _tmp99_; - _tmp100_ = outer_iter; - _vala_assert (gee_iterator_next (_tmp100_), "outer_iter.next ()"); - _tmp101_ = outer_iter2; - _vala_assert (gee_iterator_next (_tmp101_), "outer_iter2.next ()"); + outer_iter2 = _tmp101_; _tmp102_ = outer_iter; _vala_assert (gee_iterator_next (_tmp102_), "outer_iter.next ()"); _tmp103_ = outer_iter2; _vala_assert (gee_iterator_next (_tmp103_), "outer_iter2.next ()"); - _tmp104_ = _data4_->test_iterator; - _vala_assert (gee_iterator_next (_tmp104_), "test_iterator.next ()"); - _tmp105_ = outer_iter; - _tmp106_ = gee_traversable_map ((GeeTraversable*) _tmp105_, G_TYPE_INT, NULL, NULL, ___lambda32__gee_map_func, _data4_); + _tmp104_ = outer_iter; + _vala_assert (gee_iterator_next (_tmp104_), "outer_iter.next ()"); + _tmp105_ = outer_iter2; + _vala_assert (gee_iterator_next (_tmp105_), "outer_iter2.next ()"); + _tmp106_ = _data4_->test_iterator; + _vala_assert (gee_iterator_next (_tmp106_), "test_iterator.next ()"); + _tmp107_ = outer_iter; + _tmp108_ = gee_traversable_map ((GeeTraversable*) _tmp107_, G_TYPE_INT, NULL, NULL, ___lambda32__gee_map_func, _data4_); _g_object_unref0 (_data4_->iter); - _data4_->iter = _tmp106_; - _tmp107_ = _data4_->iter; - _tmp108_ = gee_iterator_get_valid (_tmp107_); - _tmp109_ = _tmp108_; - _vala_assert (_tmp109_, "iter.valid"); + _data4_->iter = _tmp108_; + _tmp109_ = _data4_->iter; + _tmp110_ = gee_iterator_get_valid (_tmp109_); + _tmp111_ = _tmp110_; + _vala_assert (_tmp111_, "iter.valid"); { - gboolean _tmp110_ = FALSE; - _tmp110_ = TRUE; + gboolean _tmp112_ = FALSE; + _tmp112_ = TRUE; while (TRUE) { - GeeIterator* _tmp112_; - GeeIterator* _tmp113_; GeeIterator* _tmp114_; GeeIterator* _tmp115_; - gint _tmp116_; + GeeIterator* _tmp116_; GeeIterator* _tmp117_; - gboolean _tmp118_; - gboolean _tmp119_; - if (!_tmp110_) { - GeeIterator* _tmp111_; - _tmp111_ = outer_iter2; - if (!gee_iterator_next (_tmp111_)) { + gint _tmp118_; + GeeIterator* _tmp119_; + gboolean _tmp120_; + gboolean _tmp121_; + if (!_tmp112_) { + GeeIterator* _tmp113_; + _tmp113_ = outer_iter2; + if (!gee_iterator_next (_tmp113_)) { break; } } - _tmp110_ = FALSE; - _vala_assert (_data4_->i == _data4_->j, "i == j"); - _tmp112_ = outer_iter2; - _tmp113_ = _data4_->iter; - _vala_assert (gee_iterator_has_next (_tmp112_) == gee_iterator_has_next (_tmp113_), "outer_iter2.has_next () == iter.has_next ()"); + _tmp112_ = FALSE; _vala_assert (_data4_->i == _data4_->j, "i == j"); _tmp114_ = outer_iter2; _tmp115_ = _data4_->iter; - _vala_assert (gee_iterator_has_next (_tmp114_) == gee_iterator_next (_tmp115_), "outer_iter2.has_next () == iter.next ()"); - _tmp116_ = _data4_->j; - _data4_->j = _tmp116_ + 1; + _vala_assert (gee_iterator_has_next (_tmp114_) == gee_iterator_has_next (_tmp115_), "outer_iter2.has_next () == iter.has_next ()"); + _vala_assert (_data4_->i == _data4_->j, "i == j"); + _tmp116_ = outer_iter2; _tmp117_ = _data4_->iter; - _tmp118_ = gee_iterator_get_valid (_tmp117_); - _tmp119_ = _tmp118_; - _vala_assert (_tmp119_, "iter.valid"); + _vala_assert (gee_iterator_has_next (_tmp116_) == gee_iterator_next (_tmp117_), "outer_iter2.has_next () == iter.next ()"); + _tmp118_ = _data4_->j; + _data4_->j = _tmp118_ + 1; + _tmp119_ = _data4_->iter; + _tmp120_ = gee_iterator_get_valid (_tmp119_); + _tmp121_ = _tmp120_; + _vala_assert (_tmp121_, "iter.valid"); } } - _tmp120_ = _data4_->iter; - _vala_assert (!gee_iterator_has_next (_tmp120_), "!iter.has_next ()"); - _tmp121_ = _data4_->iter; - _vala_assert (!gee_iterator_next (_tmp121_), "!iter.next ()"); + _tmp122_ = _data4_->iter; + _vala_assert (!gee_iterator_has_next (_tmp122_), "!iter.has_next ()"); + _tmp123_ = _data4_->iter; + _vala_assert (!gee_iterator_next (_tmp123_), "!iter.next ()"); _g_object_unref0 (outer_iter2); _g_object_unref0 (outer_iter); block4_data_unref (_data4_); @@ -5691,14 +5710,22 @@ G_OBJECT_CLASS (collection_tests_parent_class)->finalize (obj); } +static GType +collection_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (CollectionTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) collection_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CollectionTests), 0, (GInstanceInitFunc) collection_tests_instance_init, NULL }; + GType collection_tests_type_id; + collection_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "CollectionTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + return collection_tests_type_id; +} + GType collection_tests_get_type (void) { static volatile gsize collection_tests_type_id__volatile = 0; if (g_once_init_enter (&collection_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (CollectionTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) collection_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (CollectionTests), 0, (GInstanceInitFunc) collection_tests_instance_init, NULL }; GType collection_tests_type_id; - collection_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "CollectionTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + collection_tests_type_id = collection_tests_get_type_once (); g_once_init_leave (&collection_tests_type_id__volatile, collection_tests_type_id); } return collection_tests_type_id__volatile; @@ -5710,7 +5737,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/tests/testcollection.vala libgee-0.8-0.20.4/tests/testcollection.vala --- libgee-0.8-0.20.3/tests/testcollection.vala 2019-07-14 06:18:01.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testcollection.vala 2021-03-17 11:24:00.000000000 +0000 @@ -454,7 +454,7 @@ // Creating a dummy collection var dummy = new ArrayList (); - // Check when both collection are intially empty + // Check when both collection are initially empty assert (! test_collection.remove_all (dummy)); assert (test_collection.is_empty); diff -Nru libgee-0.8-0.20.3/tests/testconcurrentlist.c libgee-0.8-0.20.4/tests/testconcurrentlist.c --- libgee-0.8-0.20.3/tests/testconcurrentlist.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testconcurrentlist.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testconcurrentlist.c generated by valac 0.46.6, the Vala compiler +/* testconcurrentlist.c generated by valac 0.52.0, the Vala compiler * generated from testconcurrentlist.vala, do not modify */ /* testconcurrentlist.vala @@ -121,20 +121,23 @@ static gpointer concurrent_list_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType list_tests_get_type (void) G_GNUC_CONST; +GType list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ListTests, g_object_unref) -GType concurrent_list_tests_get_type (void) G_GNUC_CONST; +GType concurrent_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConcurrentListTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); ConcurrentListTests* concurrent_list_tests_new (void); ConcurrentListTests* concurrent_list_tests_construct (GType object_type); ListTests* list_tests_construct (GType object_type, const gchar* name); static void concurrent_list_tests_real_set_up (GeeTestCase* base); static void concurrent_list_tests_real_tear_down (GeeTestCase* base); +static GType concurrent_list_tests_get_type_once (void); ConcurrentListTests* concurrent_list_tests_construct (GType object_type) @@ -185,14 +188,22 @@ { } +static GType +concurrent_list_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (ConcurrentListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) concurrent_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConcurrentListTests), 0, (GInstanceInitFunc) concurrent_list_tests_instance_init, NULL }; + GType concurrent_list_tests_type_id; + concurrent_list_tests_type_id = g_type_register_static (TYPE_LIST_TESTS, "ConcurrentListTests", &g_define_type_info, 0); + return concurrent_list_tests_type_id; +} + GType concurrent_list_tests_get_type (void) { static volatile gsize concurrent_list_tests_type_id__volatile = 0; if (g_once_init_enter (&concurrent_list_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (ConcurrentListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) concurrent_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConcurrentListTests), 0, (GInstanceInitFunc) concurrent_list_tests_instance_init, NULL }; GType concurrent_list_tests_type_id; - concurrent_list_tests_type_id = g_type_register_static (TYPE_LIST_TESTS, "ConcurrentListTests", &g_define_type_info, 0); + concurrent_list_tests_type_id = concurrent_list_tests_get_type_once (); g_once_init_leave (&concurrent_list_tests_type_id__volatile, concurrent_list_tests_type_id); } return concurrent_list_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testconcurrentset.c libgee-0.8-0.20.4/tests/testconcurrentset.c --- libgee-0.8-0.20.3/tests/testconcurrentset.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testconcurrentset.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testconcurrentset.c generated by valac 0.46.6, the Vala compiler +/* testconcurrentset.c generated by valac 0.52.0, the Vala compiler * generated from testconcurrentset.vala, do not modify */ /* testconcurrentset.vala @@ -141,16 +141,18 @@ static gpointer concurrent_set_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType set_tests_get_type (void) G_GNUC_CONST; +GType set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (SetTests, g_object_unref) -GType sorted_set_tests_get_type (void) G_GNUC_CONST; +GType sorted_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (SortedSetTests, g_object_unref) -GType concurrent_set_tests_get_type (void) G_GNUC_CONST; +GType concurrent_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConcurrentSetTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); ConcurrentSetTests* concurrent_set_tests_new (void); ConcurrentSetTests* concurrent_set_tests_construct (GType object_type); SortedSetTests* sorted_set_tests_construct (GType object_type, @@ -158,6 +160,7 @@ gboolean strict); static void concurrent_set_tests_real_set_up (GeeTestCase* base); static void concurrent_set_tests_real_tear_down (GeeTestCase* base); +static GType concurrent_set_tests_get_type_once (void); ConcurrentSetTests* concurrent_set_tests_construct (GType object_type) @@ -208,14 +211,22 @@ { } +static GType +concurrent_set_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (ConcurrentSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) concurrent_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConcurrentSetTests), 0, (GInstanceInitFunc) concurrent_set_tests_instance_init, NULL }; + GType concurrent_set_tests_type_id; + concurrent_set_tests_type_id = g_type_register_static (TYPE_SORTED_SET_TESTS, "ConcurrentSetTests", &g_define_type_info, 0); + return concurrent_set_tests_type_id; +} + GType concurrent_set_tests_get_type (void) { static volatile gsize concurrent_set_tests_type_id__volatile = 0; if (g_once_init_enter (&concurrent_set_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (ConcurrentSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) concurrent_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ConcurrentSetTests), 0, (GInstanceInitFunc) concurrent_set_tests_instance_init, NULL }; GType concurrent_set_tests_type_id; - concurrent_set_tests_type_id = g_type_register_static (TYPE_SORTED_SET_TESTS, "ConcurrentSetTests", &g_define_type_info, 0); + concurrent_set_tests_type_id = concurrent_set_tests_get_type_once (); g_once_init_leave (&concurrent_set_tests_type_id__volatile, concurrent_set_tests_type_id); } return concurrent_set_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testdata.c libgee-0.8-0.20.4/tests/testdata.c --- libgee-0.8-0.20.3/tests/testdata.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testdata.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testdata.c generated by valac 0.46.6, the Vala compiler +/* testdata.c generated by valac 0.52.0, the Vala compiler * generated from testdata.vala, do not modify */ /* testcollection.vala @@ -24,9 +24,9 @@ */ #include +#include #include #include -#include #include #define TYPE_TEST_DATA (test_data_get_type ()) @@ -116,8 +116,9 @@ void value_take_test_data (GValue* value, gpointer v_object); gpointer value_get_test_data (const GValue* value); -GType test_data_get_type (void) G_GNUC_CONST; +GType test_data_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (TestData, test_data_unref) +#define TEST_DATA_RND_IDX_SIZE ((guint) 8) static guint test_data_data_size (void); static gchar** test_data_create_data (guint count, gint* result_length1); @@ -125,11 +126,10 @@ gint array_length1, gint* result_length1); static gchar** _vala_array_dup1 (gchar** self, - int length); + gint length); static guint* test_data_draw_numbers (guint n, guint k, gint* result_length1); -#define TEST_DATA_RND_IDX_SIZE ((guint) 8) gchar** test_data_get_data (gint* result_length1); gchar** test_data_get_sorted_data (gint* result_length1); guint* test_data_get_drawn_numbers (gint* result_length1); @@ -147,6 +147,7 @@ TestData* test_data_new (void); TestData* test_data_construct (GType object_type); static void test_data_finalize (TestData * obj); +static GType test_data_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -156,17 +157,20 @@ static gchar** _vala_array_dup1 (gchar** self, - int length) + gint length) { - gchar** result; - int i; - result = g_new0 (gchar*, length + 1); - for (i = 0; i < length; i++) { - gchar* _tmp0_; - _tmp0_ = g_strdup (self[i]); - result[i] = _tmp0_; + if (length >= 0) { + gchar** result; + gint i; + result = g_new0 (gchar*, length + 1); + for (i = 0; i < length; i++) { + gchar* _tmp0_; + _tmp0_ = g_strdup (self[i]); + result[i] = _tmp0_; + } + return result; } - return result; + return NULL; } static guint @@ -1076,16 +1080,24 @@ g_signal_handlers_destroy (self); } +static GType +test_data_get_type_once (void) +{ + static const GTypeValueTable g_define_type_value_table = { value_test_data_init, value_test_data_free_value, value_test_data_copy_value, value_test_data_peek_pointer, "p", value_test_data_collect_value, "p", value_test_data_lcopy_value }; + static const GTypeInfo g_define_type_info = { sizeof (TestDataClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) test_data_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TestData), 0, (GInstanceInitFunc) test_data_instance_init, &g_define_type_value_table }; + static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; + GType test_data_type_id; + test_data_type_id = g_type_register_fundamental (g_type_fundamental_next (), "TestData", &g_define_type_info, &g_define_type_fundamental_info, 0); + return test_data_type_id; +} + GType test_data_get_type (void) { static volatile gsize test_data_type_id__volatile = 0; if (g_once_init_enter (&test_data_type_id__volatile)) { - static const GTypeValueTable g_define_type_value_table = { value_test_data_init, value_test_data_free_value, value_test_data_copy_value, value_test_data_peek_pointer, "p", value_test_data_collect_value, "p", value_test_data_lcopy_value }; - static const GTypeInfo g_define_type_info = { sizeof (TestDataClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) test_data_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TestData), 0, (GInstanceInitFunc) test_data_instance_init, &g_define_type_value_table }; - static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) }; GType test_data_type_id; - test_data_type_id = g_type_register_fundamental (g_type_fundamental_next (), "TestData", &g_define_type_info, &g_define_type_fundamental_info, 0); + test_data_type_id = test_data_get_type_once (); g_once_init_leave (&test_data_type_id__volatile, test_data_type_id); } return test_data_type_id__volatile; @@ -1117,7 +1129,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/tests/testdeque.c libgee-0.8-0.20.4/tests/testdeque.c --- libgee-0.8-0.20.3/tests/testdeque.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testdeque.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testdeque.c generated by valac 0.46.6, the Vala compiler +/* testdeque.c generated by valac 0.52.0, the Vala compiler * generated from testdeque.vala, do not modify */ /* testdeque.vala @@ -126,13 +126,13 @@ static gpointer deque_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType queue_tests_get_type (void) G_GNUC_CONST; +GType queue_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (QueueTests, g_object_unref) -GType deque_tests_get_type (void) G_GNUC_CONST; +GType deque_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (DequeTests, g_object_unref) DequeTests* deque_tests_construct (GType object_type, const gchar* name); @@ -149,6 +149,7 @@ static void _deque_tests_test_stack_use_gee_test_case_test_method (gpointer self); void deque_tests_test_reversed_stack_use (DequeTests* self); static void _deque_tests_test_reversed_stack_use_gee_test_case_test_method (gpointer self); +static GType deque_tests_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -1591,14 +1592,22 @@ { } +static GType +deque_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (DequeTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deque_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DequeTests), 0, (GInstanceInitFunc) deque_tests_instance_init, NULL }; + GType deque_tests_type_id; + deque_tests_type_id = g_type_register_static (TYPE_QUEUE_TESTS, "DequeTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + return deque_tests_type_id; +} + GType deque_tests_get_type (void) { static volatile gsize deque_tests_type_id__volatile = 0; if (g_once_init_enter (&deque_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (DequeTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deque_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DequeTests), 0, (GInstanceInitFunc) deque_tests_instance_init, NULL }; GType deque_tests_type_id; - deque_tests_type_id = g_type_register_static (TYPE_QUEUE_TESTS, "DequeTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + deque_tests_type_id = deque_tests_get_type_once (); g_once_init_leave (&deque_tests_type_id__volatile, deque_tests_type_id); } return deque_tests_type_id__volatile; @@ -1610,7 +1619,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/tests/testfunctions.c libgee-0.8-0.20.4/tests/testfunctions.c --- libgee-0.8-0.20.3/tests/testfunctions.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testfunctions.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testfunctions.c generated by valac 0.46.6, the Vala compiler +/* testfunctions.c generated by valac 0.52.0, the Vala compiler * generated from testfunctions.vala, do not modify */ /* testfunctions.vala @@ -180,9 +180,9 @@ static GeeComparableIface * functions_tests_my_hashable_gee_comparable_parent_iface = NULL; static GeeHashableIface * functions_tests_my_hashable_gee_hashable_parent_iface = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType functions_tests_get_type (void) G_GNUC_CONST; +GType functions_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (FunctionsTests, g_object_unref) FunctionsTests* functions_tests_new (void); FunctionsTests* functions_tests_construct (GType object_type); @@ -205,12 +205,12 @@ static void _functions_tests_test_unfold_gee_test_case_test_method (gpointer self); void functions_tests_test_concat (FunctionsTests* self); static void _functions_tests_test_concat_gee_test_case_test_method (gpointer self); -static GType functions_tests_my_comparable_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; +static GType functions_tests_my_comparable_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (FunctionsTestsMyComparable, g_object_unref) static FunctionsTestsMyComparable* functions_tests_my_comparable_new (gint i); static FunctionsTestsMyComparable* functions_tests_my_comparable_construct (GType object_type, gint i); -static GType functions_tests_my_hashable_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; +static GType functions_tests_my_hashable_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (FunctionsTestsMyHashable, g_object_unref) static FunctionsTestsMyHashable* functions_tests_my_hashable_new (gint i); static FunctionsTestsMyHashable* functions_tests_my_hashable_construct (GType object_type, @@ -234,12 +234,15 @@ static gint functions_tests_my_comparable_real_compare_to (GeeComparable* base, FunctionsTestsMyComparable* cmp); static void functions_tests_my_comparable_finalize (GObject * obj); +static GType functions_tests_my_comparable_get_type_once (void); static gint functions_tests_my_hashable_real_compare_to (GeeComparable* base, FunctionsTestsMyHashable* cmp); static guint functions_tests_my_hashable_real_hash (GeeHashable* base); static gboolean functions_tests_my_hashable_real_equal_to (GeeHashable* base, FunctionsTestsMyHashable* hash); static void functions_tests_my_hashable_finalize (GObject * obj); +static GType functions_tests_my_hashable_get_type_once (void); +static GType functions_tests_get_type_once (void); static void _functions_tests_test_string_func_gee_test_case_test_method (gpointer self) @@ -307,19 +310,19 @@ gchar* two_copy = NULL; gchar* _tmp2_; GeeEqualDataFunc eq = NULL; - void* _tmp3_ = NULL; + gpointer _tmp3_ = NULL; GDestroyNotify _tmp4_ = NULL; GeeEqualDataFunc _tmp5_; gpointer eq_target; GDestroyNotify eq_target_destroy_notify; GCompareDataFunc cmp = NULL; - void* _tmp6_ = NULL; + gpointer _tmp6_ = NULL; GDestroyNotify _tmp7_ = NULL; GCompareDataFunc _tmp8_; gpointer cmp_target; GDestroyNotify cmp_target_destroy_notify; GeeHashDataFunc hash = NULL; - void* _tmp9_ = NULL; + gpointer _tmp9_ = NULL; GDestroyNotify _tmp10_ = NULL; GeeHashDataFunc _tmp11_; gpointer hash_target; @@ -379,19 +382,19 @@ void* one = NULL; void* two = NULL; GeeEqualDataFunc eq = NULL; - void* _tmp0_ = NULL; + gpointer _tmp0_ = NULL; GDestroyNotify _tmp1_ = NULL; GeeEqualDataFunc _tmp2_; gpointer eq_target; GDestroyNotify eq_target_destroy_notify; GCompareDataFunc cmp = NULL; - void* _tmp3_ = NULL; + gpointer _tmp3_ = NULL; GDestroyNotify _tmp4_ = NULL; GCompareDataFunc _tmp5_; gpointer cmp_target; GDestroyNotify cmp_target_destroy_notify; GeeHashDataFunc hash = NULL; - void* _tmp6_ = NULL; + gpointer _tmp6_ = NULL; GDestroyNotify _tmp7_ = NULL; GeeHashDataFunc _tmp8_; gpointer hash_target; @@ -445,13 +448,13 @@ FunctionsTestsMyComparable* two_copy = NULL; FunctionsTestsMyComparable* _tmp2_; GeeEqualDataFunc eq = NULL; - void* _tmp3_ = NULL; + gpointer _tmp3_ = NULL; GDestroyNotify _tmp4_ = NULL; GeeEqualDataFunc _tmp5_; gpointer eq_target; GDestroyNotify eq_target_destroy_notify; GCompareDataFunc cmp = NULL; - void* _tmp6_ = NULL; + gpointer _tmp6_ = NULL; GDestroyNotify _tmp7_ = NULL; GCompareDataFunc _tmp8_; gpointer cmp_target; @@ -508,19 +511,19 @@ FunctionsTestsMyHashable* minus_one2 = NULL; FunctionsTestsMyHashable* _tmp4_; GeeEqualDataFunc eq = NULL; - void* _tmp5_ = NULL; + gpointer _tmp5_ = NULL; GDestroyNotify _tmp6_ = NULL; GeeEqualDataFunc _tmp7_; gpointer eq_target; GDestroyNotify eq_target_destroy_notify; GCompareDataFunc cmp = NULL; - void* _tmp8_ = NULL; + gpointer _tmp8_ = NULL; GDestroyNotify _tmp9_ = NULL; GCompareDataFunc _tmp10_; gpointer cmp_target; GDestroyNotify cmp_target_destroy_notify; GeeHashDataFunc hash = NULL; - void* _tmp11_ = NULL; + gpointer _tmp11_ = NULL; GDestroyNotify _tmp12_ = NULL; GeeHashDataFunc _tmp13_; gpointer hash_target; @@ -964,16 +967,24 @@ } static GType +functions_tests_my_comparable_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (FunctionsTestsMyComparableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) functions_tests_my_comparable_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FunctionsTestsMyComparable), 0, (GInstanceInitFunc) functions_tests_my_comparable_instance_init, NULL }; + static const GInterfaceInfo gee_comparable_info = { (GInterfaceInitFunc) functions_tests_my_comparable_gee_comparable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType functions_tests_my_comparable_type_id; + functions_tests_my_comparable_type_id = g_type_register_static (G_TYPE_OBJECT, "FunctionsTestsMyComparable", &g_define_type_info, 0); + g_type_add_interface_static (functions_tests_my_comparable_type_id, GEE_TYPE_COMPARABLE, &gee_comparable_info); + FunctionsTestsMyComparable_private_offset = g_type_add_instance_private (functions_tests_my_comparable_type_id, sizeof (FunctionsTestsMyComparablePrivate)); + return functions_tests_my_comparable_type_id; +} + +static GType functions_tests_my_comparable_get_type (void) { static volatile gsize functions_tests_my_comparable_type_id__volatile = 0; if (g_once_init_enter (&functions_tests_my_comparable_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (FunctionsTestsMyComparableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) functions_tests_my_comparable_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FunctionsTestsMyComparable), 0, (GInstanceInitFunc) functions_tests_my_comparable_instance_init, NULL }; - static const GInterfaceInfo gee_comparable_info = { (GInterfaceInitFunc) functions_tests_my_comparable_gee_comparable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType functions_tests_my_comparable_type_id; - functions_tests_my_comparable_type_id = g_type_register_static (G_TYPE_OBJECT, "FunctionsTestsMyComparable", &g_define_type_info, 0); - g_type_add_interface_static (functions_tests_my_comparable_type_id, GEE_TYPE_COMPARABLE, &gee_comparable_info); - FunctionsTestsMyComparable_private_offset = g_type_add_instance_private (functions_tests_my_comparable_type_id, sizeof (FunctionsTestsMyComparablePrivate)); + functions_tests_my_comparable_type_id = functions_tests_my_comparable_get_type_once (); g_once_init_leave (&functions_tests_my_comparable_type_id__volatile, functions_tests_my_comparable_type_id); } return functions_tests_my_comparable_type_id__volatile; @@ -1093,18 +1104,26 @@ } static GType +functions_tests_my_hashable_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (FunctionsTestsMyHashableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) functions_tests_my_hashable_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FunctionsTestsMyHashable), 0, (GInstanceInitFunc) functions_tests_my_hashable_instance_init, NULL }; + static const GInterfaceInfo gee_comparable_info = { (GInterfaceInitFunc) functions_tests_my_hashable_gee_comparable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + static const GInterfaceInfo gee_hashable_info = { (GInterfaceInitFunc) functions_tests_my_hashable_gee_hashable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; + GType functions_tests_my_hashable_type_id; + functions_tests_my_hashable_type_id = g_type_register_static (G_TYPE_OBJECT, "FunctionsTestsMyHashable", &g_define_type_info, 0); + g_type_add_interface_static (functions_tests_my_hashable_type_id, GEE_TYPE_COMPARABLE, &gee_comparable_info); + g_type_add_interface_static (functions_tests_my_hashable_type_id, GEE_TYPE_HASHABLE, &gee_hashable_info); + FunctionsTestsMyHashable_private_offset = g_type_add_instance_private (functions_tests_my_hashable_type_id, sizeof (FunctionsTestsMyHashablePrivate)); + return functions_tests_my_hashable_type_id; +} + +static GType functions_tests_my_hashable_get_type (void) { static volatile gsize functions_tests_my_hashable_type_id__volatile = 0; if (g_once_init_enter (&functions_tests_my_hashable_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (FunctionsTestsMyHashableClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) functions_tests_my_hashable_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FunctionsTestsMyHashable), 0, (GInstanceInitFunc) functions_tests_my_hashable_instance_init, NULL }; - static const GInterfaceInfo gee_comparable_info = { (GInterfaceInitFunc) functions_tests_my_hashable_gee_comparable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; - static const GInterfaceInfo gee_hashable_info = { (GInterfaceInitFunc) functions_tests_my_hashable_gee_hashable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL}; GType functions_tests_my_hashable_type_id; - functions_tests_my_hashable_type_id = g_type_register_static (G_TYPE_OBJECT, "FunctionsTestsMyHashable", &g_define_type_info, 0); - g_type_add_interface_static (functions_tests_my_hashable_type_id, GEE_TYPE_COMPARABLE, &gee_comparable_info); - g_type_add_interface_static (functions_tests_my_hashable_type_id, GEE_TYPE_HASHABLE, &gee_hashable_info); - FunctionsTestsMyHashable_private_offset = g_type_add_instance_private (functions_tests_my_hashable_type_id, sizeof (FunctionsTestsMyHashablePrivate)); + functions_tests_my_hashable_type_id = functions_tests_my_hashable_get_type_once (); g_once_init_leave (&functions_tests_my_hashable_type_id__volatile, functions_tests_my_hashable_type_id); } return functions_tests_my_hashable_type_id__volatile; @@ -1123,14 +1142,22 @@ { } +static GType +functions_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (FunctionsTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) functions_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FunctionsTests), 0, (GInstanceInitFunc) functions_tests_instance_init, NULL }; + GType functions_tests_type_id; + functions_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "FunctionsTests", &g_define_type_info, 0); + return functions_tests_type_id; +} + GType functions_tests_get_type (void) { static volatile gsize functions_tests_type_id__volatile = 0; if (g_once_init_enter (&functions_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (FunctionsTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) functions_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FunctionsTests), 0, (GInstanceInitFunc) functions_tests_instance_init, NULL }; GType functions_tests_type_id; - functions_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "FunctionsTests", &g_define_type_info, 0); + functions_tests_type_id = functions_tests_get_type_once (); g_once_init_leave (&functions_tests_type_id__volatile, functions_tests_type_id); } return functions_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testhashmap.c libgee-0.8-0.20.4/tests/testhashmap.c --- libgee-0.8-0.20.3/tests/testhashmap.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testhashmap.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testhashmap.c generated by valac 0.46.6, the Vala compiler +/* testhashmap.c generated by valac 0.52.0, the Vala compiler * generated from testhashmap.vala, do not modify */ /* testhashmap.vala @@ -101,18 +101,21 @@ static gpointer hash_map_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType map_tests_get_type (void) G_GNUC_CONST; +GType map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MapTests, g_object_unref) -GType hash_map_tests_get_type (void) G_GNUC_CONST; +GType hash_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (HashMapTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); HashMapTests* hash_map_tests_new (void); HashMapTests* hash_map_tests_construct (GType object_type); MapTests* map_tests_construct (GType object_type, const gchar* name); static void hash_map_tests_real_set_up (GeeTestCase* base); static void hash_map_tests_real_tear_down (GeeTestCase* base); +static GType hash_map_tests_get_type_once (void); HashMapTests* hash_map_tests_construct (GType object_type) @@ -163,14 +166,22 @@ { } +static GType +hash_map_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (HashMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hash_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HashMapTests), 0, (GInstanceInitFunc) hash_map_tests_instance_init, NULL }; + GType hash_map_tests_type_id; + hash_map_tests_type_id = g_type_register_static (TYPE_MAP_TESTS, "HashMapTests", &g_define_type_info, 0); + return hash_map_tests_type_id; +} + GType hash_map_tests_get_type (void) { static volatile gsize hash_map_tests_type_id__volatile = 0; if (g_once_init_enter (&hash_map_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (HashMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hash_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HashMapTests), 0, (GInstanceInitFunc) hash_map_tests_instance_init, NULL }; GType hash_map_tests_type_id; - hash_map_tests_type_id = g_type_register_static (TYPE_MAP_TESTS, "HashMapTests", &g_define_type_info, 0); + hash_map_tests_type_id = hash_map_tests_get_type_once (); g_once_init_leave (&hash_map_tests_type_id__volatile, hash_map_tests_type_id); } return hash_map_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testhashmultimap.c libgee-0.8-0.20.4/tests/testhashmultimap.c --- libgee-0.8-0.20.3/tests/testhashmultimap.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testhashmultimap.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testhashmultimap.c generated by valac 0.46.6, the Vala compiler +/* testhashmultimap.c generated by valac 0.52.0, the Vala compiler * generated from testhashmultimap.vala, do not modify */ /* testhashmultimap.vala @@ -108,12 +108,14 @@ static gpointer hash_multi_map_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType multi_map_tests_get_type (void) G_GNUC_CONST; +GType multi_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MultiMapTests, g_object_unref) -GType hash_multi_map_tests_get_type (void) G_GNUC_CONST; +GType hash_multi_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (HashMultiMapTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); HashMultiMapTests* hash_multi_map_tests_new (void); HashMultiMapTests* hash_multi_map_tests_construct (GType object_type); MultiMapTests* multi_map_tests_construct (GType object_type, @@ -127,6 +129,7 @@ static void _hash_multi_map_tests_test_selected_functions_gee_test_case_test_method (gpointer self); static void hash_multi_map_tests_real_set_up (GeeTestCase* base); static void hash_multi_map_tests_real_tear_down (GeeTestCase* base); +static GType hash_multi_map_tests_get_type_once (void); static void _hash_multi_map_tests_test_selected_functions_gee_test_case_test_method (gpointer self) @@ -204,14 +207,22 @@ { } +static GType +hash_multi_map_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (HashMultiMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hash_multi_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HashMultiMapTests), 0, (GInstanceInitFunc) hash_multi_map_tests_instance_init, NULL }; + GType hash_multi_map_tests_type_id; + hash_multi_map_tests_type_id = g_type_register_static (TYPE_MULTI_MAP_TESTS, "HashMultiMapTests", &g_define_type_info, 0); + return hash_multi_map_tests_type_id; +} + GType hash_multi_map_tests_get_type (void) { static volatile gsize hash_multi_map_tests_type_id__volatile = 0; if (g_once_init_enter (&hash_multi_map_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (HashMultiMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hash_multi_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HashMultiMapTests), 0, (GInstanceInitFunc) hash_multi_map_tests_instance_init, NULL }; GType hash_multi_map_tests_type_id; - hash_multi_map_tests_type_id = g_type_register_static (TYPE_MULTI_MAP_TESTS, "HashMultiMapTests", &g_define_type_info, 0); + hash_multi_map_tests_type_id = hash_multi_map_tests_get_type_once (); g_once_init_leave (&hash_multi_map_tests_type_id__volatile, hash_multi_map_tests_type_id); } return hash_multi_map_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testhashmultiset.c libgee-0.8-0.20.4/tests/testhashmultiset.c --- libgee-0.8-0.20.3/tests/testhashmultiset.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testhashmultiset.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testhashmultiset.c generated by valac 0.46.6, the Vala compiler +/* testhashmultiset.c generated by valac 0.52.0, the Vala compiler * generated from testhashmultiset.vala, do not modify */ /* testhashmultiset.vala @@ -128,14 +128,16 @@ static gpointer hash_multi_set_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType multi_set_tests_get_type (void) G_GNUC_CONST; +GType multi_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MultiSetTests, g_object_unref) -GType hash_multi_set_tests_get_type (void) G_GNUC_CONST; +GType hash_multi_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (HashMultiSetTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); HashMultiSetTests* hash_multi_set_tests_new (void); HashMultiSetTests* hash_multi_set_tests_construct (GType object_type); MultiSetTests* multi_set_tests_construct (GType object_type, @@ -149,6 +151,7 @@ static void _hash_multi_set_tests_test_selected_functions_gee_test_case_test_method (gpointer self); static void hash_multi_set_tests_real_set_up (GeeTestCase* base); static void hash_multi_set_tests_real_tear_down (GeeTestCase* base); +static GType hash_multi_set_tests_get_type_once (void); static void _hash_multi_set_tests_test_selected_functions_gee_test_case_test_method (gpointer self) @@ -226,14 +229,22 @@ { } +static GType +hash_multi_set_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (HashMultiSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hash_multi_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HashMultiSetTests), 0, (GInstanceInitFunc) hash_multi_set_tests_instance_init, NULL }; + GType hash_multi_set_tests_type_id; + hash_multi_set_tests_type_id = g_type_register_static (TYPE_MULTI_SET_TESTS, "HashMultiSetTests", &g_define_type_info, 0); + return hash_multi_set_tests_type_id; +} + GType hash_multi_set_tests_get_type (void) { static volatile gsize hash_multi_set_tests_type_id__volatile = 0; if (g_once_init_enter (&hash_multi_set_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (HashMultiSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hash_multi_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HashMultiSetTests), 0, (GInstanceInitFunc) hash_multi_set_tests_instance_init, NULL }; GType hash_multi_set_tests_type_id; - hash_multi_set_tests_type_id = g_type_register_static (TYPE_MULTI_SET_TESTS, "HashMultiSetTests", &g_define_type_info, 0); + hash_multi_set_tests_type_id = hash_multi_set_tests_get_type_once (); g_once_init_leave (&hash_multi_set_tests_type_id__volatile, hash_multi_set_tests_type_id); } return hash_multi_set_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testhashset.c libgee-0.8-0.20.4/tests/testhashset.c --- libgee-0.8-0.20.3/tests/testhashset.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testhashset.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testhashset.c generated by valac 0.46.6, the Vala compiler +/* testhashset.c generated by valac 0.52.0, the Vala compiler * generated from testhashset.vala, do not modify */ /* testhashset.vala @@ -122,20 +122,23 @@ static gpointer hash_set_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType set_tests_get_type (void) G_GNUC_CONST; +GType set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (SetTests, g_object_unref) -GType hash_set_tests_get_type (void) G_GNUC_CONST; +GType hash_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (HashSetTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); HashSetTests* hash_set_tests_new (void); HashSetTests* hash_set_tests_construct (GType object_type); SetTests* set_tests_construct (GType object_type, const gchar* name); static void hash_set_tests_real_set_up (GeeTestCase* base); static void hash_set_tests_real_tear_down (GeeTestCase* base); +static GType hash_set_tests_get_type_once (void); HashSetTests* hash_set_tests_construct (GType object_type) @@ -186,14 +189,22 @@ { } +static GType +hash_set_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (HashSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hash_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HashSetTests), 0, (GInstanceInitFunc) hash_set_tests_instance_init, NULL }; + GType hash_set_tests_type_id; + hash_set_tests_type_id = g_type_register_static (TYPE_SET_TESTS, "HashSetTests", &g_define_type_info, 0); + return hash_set_tests_type_id; +} + GType hash_set_tests_get_type (void) { static volatile gsize hash_set_tests_type_id__volatile = 0; if (g_once_init_enter (&hash_set_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (HashSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) hash_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (HashSetTests), 0, (GInstanceInitFunc) hash_set_tests_instance_init, NULL }; GType hash_set_tests_type_id; - hash_set_tests_type_id = g_type_register_static (TYPE_SET_TESTS, "HashSetTests", &g_define_type_info, 0); + hash_set_tests_type_id = hash_set_tests_get_type_once (); g_once_init_leave (&hash_set_tests_type_id__volatile, hash_set_tests_type_id); } return hash_set_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testlinkedlistasdeque.c libgee-0.8-0.20.4/tests/testlinkedlistasdeque.c --- libgee-0.8-0.20.3/tests/testlinkedlistasdeque.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testlinkedlistasdeque.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testlinkedlistasdeque.c generated by valac 0.46.6, the Vala compiler +/* testlinkedlistasdeque.c generated by valac 0.52.0, the Vala compiler * generated from testlinkedlistasdeque.vala, do not modify */ /* testlinkedlistasdeque.vala @@ -145,16 +145,18 @@ static gpointer linked_list_as_deque_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType queue_tests_get_type (void) G_GNUC_CONST; +GType queue_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (QueueTests, g_object_unref) -GType deque_tests_get_type (void) G_GNUC_CONST; +GType deque_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (DequeTests, g_object_unref) -GType linked_list_as_deque_tests_get_type (void) G_GNUC_CONST; +GType linked_list_as_deque_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (LinkedListAsDequeTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); LinkedListAsDequeTests* linked_list_as_deque_tests_new (void); LinkedListAsDequeTests* linked_list_as_deque_tests_construct (GType object_type); DequeTests* deque_tests_construct (GType object_type, @@ -168,6 +170,7 @@ static void _linked_list_as_deque_tests_test_selected_functions_gee_test_case_test_method (gpointer self); static void linked_list_as_deque_tests_real_set_up (GeeTestCase* base); static void linked_list_as_deque_tests_real_tear_down (GeeTestCase* base); +static GType linked_list_as_deque_tests_get_type_once (void); static void _linked_list_as_deque_tests_test_selected_functions_gee_test_case_test_method (gpointer self) @@ -245,14 +248,22 @@ { } +static GType +linked_list_as_deque_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LinkedListAsDequeTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) linked_list_as_deque_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LinkedListAsDequeTests), 0, (GInstanceInitFunc) linked_list_as_deque_tests_instance_init, NULL }; + GType linked_list_as_deque_tests_type_id; + linked_list_as_deque_tests_type_id = g_type_register_static (TYPE_DEQUE_TESTS, "LinkedListAsDequeTests", &g_define_type_info, 0); + return linked_list_as_deque_tests_type_id; +} + GType linked_list_as_deque_tests_get_type (void) { static volatile gsize linked_list_as_deque_tests_type_id__volatile = 0; if (g_once_init_enter (&linked_list_as_deque_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (LinkedListAsDequeTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) linked_list_as_deque_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LinkedListAsDequeTests), 0, (GInstanceInitFunc) linked_list_as_deque_tests_instance_init, NULL }; GType linked_list_as_deque_tests_type_id; - linked_list_as_deque_tests_type_id = g_type_register_static (TYPE_DEQUE_TESTS, "LinkedListAsDequeTests", &g_define_type_info, 0); + linked_list_as_deque_tests_type_id = linked_list_as_deque_tests_get_type_once (); g_once_init_leave (&linked_list_as_deque_tests_type_id__volatile, linked_list_as_deque_tests_type_id); } return linked_list_as_deque_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testlinkedlist.c libgee-0.8-0.20.4/tests/testlinkedlist.c --- libgee-0.8-0.20.3/tests/testlinkedlist.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testlinkedlist.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testlinkedlist.c generated by valac 0.46.6, the Vala compiler +/* testlinkedlist.c generated by valac 0.52.0, the Vala compiler * generated from testlinkedlist.vala, do not modify */ /* testlinkedlist.vala @@ -149,16 +149,18 @@ static gpointer linked_list_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType list_tests_get_type (void) G_GNUC_CONST; +GType list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ListTests, g_object_unref) -GType bidir_list_tests_get_type (void) G_GNUC_CONST; +GType bidir_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (BidirListTests, g_object_unref) -GType linked_list_tests_get_type (void) G_GNUC_CONST; +GType linked_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (LinkedListTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); LinkedListTests* linked_list_tests_new (void); LinkedListTests* linked_list_tests_construct (GType object_type); BidirListTests* bidir_list_tests_construct (GType object_type, @@ -172,6 +174,7 @@ static void _linked_list_tests_test_sort_gee_test_case_test_method (gpointer self); static void linked_list_tests_real_set_up (GeeTestCase* base); static void linked_list_tests_real_tear_down (GeeTestCase* base); +static GType linked_list_tests_get_type_once (void); static void _linked_list_tests_test_sort_gee_test_case_test_method (gpointer self) @@ -334,14 +337,22 @@ { } +static GType +linked_list_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (LinkedListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) linked_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LinkedListTests), 0, (GInstanceInitFunc) linked_list_tests_instance_init, NULL }; + GType linked_list_tests_type_id; + linked_list_tests_type_id = g_type_register_static (TYPE_BIDIR_LIST_TESTS, "LinkedListTests", &g_define_type_info, 0); + return linked_list_tests_type_id; +} + GType linked_list_tests_get_type (void) { static volatile gsize linked_list_tests_type_id__volatile = 0; if (g_once_init_enter (&linked_list_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (LinkedListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) linked_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (LinkedListTests), 0, (GInstanceInitFunc) linked_list_tests_instance_init, NULL }; GType linked_list_tests_type_id; - linked_list_tests_type_id = g_type_register_static (TYPE_BIDIR_LIST_TESTS, "LinkedListTests", &g_define_type_info, 0); + linked_list_tests_type_id = linked_list_tests_get_type_once (); g_once_init_leave (&linked_list_tests_type_id__volatile, linked_list_tests_type_id); } return linked_list_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testlist.c libgee-0.8-0.20.4/tests/testlist.c --- libgee-0.8-0.20.3/tests/testlist.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testlist.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testlist.c generated by valac 0.46.6, the Vala compiler +/* testlist.c generated by valac 0.52.0, the Vala compiler * generated from testlist.vala, do not modify */ /* testlist.vala @@ -110,12 +110,13 @@ static gpointer list_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType list_tests_get_type (void) G_GNUC_CONST; +GType list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ListTests, g_object_unref) +void list_tests_test_duplicates_are_retained (ListTests* self); ListTests* list_tests_construct (GType object_type, const gchar* name); CollectionTests* collection_tests_construct (GType object_type, @@ -129,7 +130,6 @@ static void _list_tests_test_iterator_is_ordered_gee_test_case_test_method (gpointer self); void list_tests_test_list_iterator (ListTests* self); static void _list_tests_test_list_iterator_gee_test_case_test_method (gpointer self); -void list_tests_test_duplicates_are_retained (ListTests* self); static void _list_tests_test_duplicates_are_retained_gee_test_case_test_method (gpointer self); void list_tests_test_get (ListTests* self); static void _list_tests_test_get_gee_test_case_test_method (gpointer self); @@ -152,6 +152,7 @@ gchar** test_data_get_data (gint* result_length1); guint* test_data_get_drawn_numbers (gint* result_length1); static void list_tests_real_test_duplicates_are_retained (ListTests* self); +static GType list_tests_get_type_once (void); static void _list_tests_test_iterator_is_ordered_gee_test_case_test_method (gpointer self) @@ -606,8 +607,12 @@ void list_tests_test_duplicates_are_retained (ListTests* self) { + ListTestsClass* _klass_; g_return_if_fail (self != NULL); - LIST_TESTS_GET_CLASS (self)->test_duplicates_are_retained (self); + _klass_ = LIST_TESTS_GET_CLASS (self); + if (_klass_->test_duplicates_are_retained) { + _klass_->test_duplicates_are_retained (self); + } } void @@ -1069,9 +1074,9 @@ gchar** _tmp56_; gint _tmp56__length1; gint current_idx = 0; - GeeList* _tmp105_; - gint _tmp106_; - gint _tmp107_; + GeeList* _tmp107_; + gint _tmp108_; + gint _tmp109_; g_return_if_fail (self != NULL); _tmp0_ = ((CollectionTests*) self)->test_collection; _tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_LIST) ? ((GeeList*) _tmp0_) : NULL); @@ -1275,6 +1280,7 @@ GeeList* _tmp88_; gint _tmp89_; gint _tmp90_; + guint _tmp91_; if (!_tmp57_) { guint _tmp58_; _tmp58_ = i; @@ -1385,7 +1391,8 @@ _tmp89_ = gee_collection_get_size ((GeeCollection*) _tmp88_); _tmp90_ = _tmp89_; expected_size = expected_size - 1; - _vala_assert (((guint) _tmp90_) == expected_size, "test_list.size == --expected_size"); + _tmp91_ = expected_size; + _vala_assert (((guint) _tmp90_) == _tmp91_, "test_list.size == --expected_size"); } } } @@ -1394,28 +1401,29 @@ guint i = 0U; i = (guint) 1; { - gboolean _tmp91_ = FALSE; - _tmp91_ = TRUE; + gboolean _tmp92_ = FALSE; + _tmp92_ = TRUE; while (TRUE) { - gchar** _tmp93_; - gint _tmp93__length1; + gchar** _tmp94_; + gint _tmp94__length1; gboolean skip = FALSE; - GeeList* _tmp99_; - gint _tmp100_; - gpointer _tmp101_; - gchar* _tmp102_; - gchar** _tmp103_; - gint _tmp103__length1; - const gchar* _tmp104_; - if (!_tmp91_) { - guint _tmp92_; - _tmp92_ = i; - i = _tmp92_ + 1; + GeeList* _tmp100_; + gint _tmp101_; + gpointer _tmp102_; + gchar* _tmp103_; + gchar** _tmp104_; + gint _tmp104__length1; + guint _tmp105_; + const gchar* _tmp106_; + if (!_tmp92_) { + guint _tmp93_; + _tmp93_ = i; + i = _tmp93_ + 1; } - _tmp91_ = FALSE; - _tmp93_ = data; - _tmp93__length1 = data_length1; - if (!(i < ((guint) (_tmp93__length1 - 1)))) { + _tmp92_ = FALSE; + _tmp94_ = data; + _tmp94__length1 = data_length1; + if (!(i < ((guint) (_tmp94__length1 - 1)))) { break; } skip = FALSE; @@ -1423,29 +1431,29 @@ gint j = 0; j = 0; { - gboolean _tmp94_ = FALSE; - _tmp94_ = TRUE; + gboolean _tmp95_ = FALSE; + _tmp95_ = TRUE; while (TRUE) { - guint* _tmp96_; - gint _tmp96__length1; guint* _tmp97_; gint _tmp97__length1; - guint _tmp98_; - if (!_tmp94_) { - gint _tmp95_; - _tmp95_ = j; - j = _tmp95_ + 1; - } - _tmp94_ = FALSE; - _tmp96_ = idx; - _tmp96__length1 = idx_length1; - if (!(j < _tmp96__length1)) { - break; + guint* _tmp98_; + gint _tmp98__length1; + guint _tmp99_; + if (!_tmp95_) { + gint _tmp96_; + _tmp96_ = j; + j = _tmp96_ + 1; } + _tmp95_ = FALSE; _tmp97_ = idx; _tmp97__length1 = idx_length1; - _tmp98_ = _tmp97_[j]; - if (i == _tmp98_) { + if (!(j < _tmp97__length1)) { + break; + } + _tmp98_ = idx; + _tmp98__length1 = idx_length1; + _tmp99_ = _tmp98_[j]; + if (i == _tmp99_) { skip = TRUE; break; } @@ -1455,42 +1463,43 @@ if (skip) { continue; } - _tmp99_ = test_list; - _tmp100_ = current_idx; - current_idx = _tmp100_ + 1; - _tmp101_ = gee_list_get (_tmp99_, _tmp100_); - _tmp102_ = (gchar*) _tmp101_; - _tmp103_ = data; - _tmp103__length1 = data_length1; - _tmp104_ = _tmp103_[i]; - _vala_assert (g_strcmp0 (_tmp102_, _tmp104_) == 0, "test_list.get(current_idx++) == data[i]"); - _g_free0 (_tmp102_); + _tmp100_ = test_list; + _tmp101_ = current_idx; + current_idx = _tmp101_ + 1; + _tmp102_ = gee_list_get (_tmp100_, _tmp101_); + _tmp103_ = (gchar*) _tmp102_; + _tmp104_ = data; + _tmp104__length1 = data_length1; + _tmp105_ = i; + _tmp106_ = _tmp104_[_tmp105_]; + _vala_assert (g_strcmp0 (_tmp103_, _tmp106_) == 0, "test_list.get(current_idx++) == data[i]"); + _g_free0 (_tmp103_); } } } - _tmp105_ = test_list; - _tmp106_ = gee_collection_get_size ((GeeCollection*) _tmp105_); - _tmp107_ = _tmp106_; - _vala_assert (_tmp107_ == current_idx, "test_list.size == current_idx"); + _tmp107_ = test_list; + _tmp108_ = gee_collection_get_size ((GeeCollection*) _tmp107_); + _tmp109_ = _tmp108_; + _vala_assert (_tmp109_ == current_idx, "test_list.size == current_idx"); if (g_test_trap_fork ((guint64) 0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR)) { - GeeList* _tmp108_; - gpointer _tmp109_; - gchar* _tmp110_; - _tmp108_ = test_list; - _tmp109_ = gee_list_remove_at (_tmp108_, current_idx); - _tmp110_ = (gchar*) _tmp109_; - _g_free0 (_tmp110_); + GeeList* _tmp110_; + gpointer _tmp111_; + gchar* _tmp112_; + _tmp110_ = test_list; + _tmp111_ = gee_list_remove_at (_tmp110_, current_idx); + _tmp112_ = (gchar*) _tmp111_; + _g_free0 (_tmp112_); exit (0); } g_test_trap_assert_failed (); if (g_test_trap_fork ((guint64) 0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR)) { - GeeList* _tmp111_; - gpointer _tmp112_; - gchar* _tmp113_; - _tmp111_ = test_list; - _tmp112_ = gee_list_remove_at (_tmp111_, -1); - _tmp113_ = (gchar*) _tmp112_; - _g_free0 (_tmp113_); + GeeList* _tmp113_; + gpointer _tmp114_; + gchar* _tmp115_; + _tmp113_ = test_list; + _tmp114_ = gee_list_remove_at (_tmp113_, -1); + _tmp115_ = (gchar*) _tmp114_; + _g_free0 (_tmp115_); exit (0); } g_test_trap_assert_failed (); @@ -2431,14 +2440,22 @@ { } +static GType +list_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (ListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ListTests), 0, (GInstanceInitFunc) list_tests_instance_init, NULL }; + GType list_tests_type_id; + list_tests_type_id = g_type_register_static (TYPE_COLLECTION_TESTS, "ListTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + return list_tests_type_id; +} + GType list_tests_get_type (void) { static volatile gsize list_tests_type_id__volatile = 0; if (g_once_init_enter (&list_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (ListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ListTests), 0, (GInstanceInitFunc) list_tests_instance_init, NULL }; GType list_tests_type_id; - list_tests_type_id = g_type_register_static (TYPE_COLLECTION_TESTS, "ListTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + list_tests_type_id = list_tests_get_type_once (); g_once_init_leave (&list_tests_type_id__volatile, list_tests_type_id); } return list_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testlist.vala libgee-0.8-0.20.4/tests/testlist.vala --- libgee-0.8-0.20.3/tests/testlist.vala 2019-07-14 06:18:01.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testlist.vala 2021-03-17 11:24:00.000000000 +0000 @@ -556,7 +556,7 @@ test_list.clear (); dummy.clear (); - // Insert all in the beginnig + // Insert all in the beginning assert (test_list.add ("three")); assert (test_list.add ("four")); assert (test_list.add ("five")); diff -Nru libgee-0.8-0.20.3/tests/testmain.c libgee-0.8-0.20.4/tests/testmain.c --- libgee-0.8-0.20.3/tests/testmain.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testmain.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testmain.c generated by valac 0.46.6, the Vala compiler +/* testmain.c generated by valac 0.52.0, the Vala compiler * generated from testmain.vala, do not modify */ /* testmain.vala @@ -401,86 +401,86 @@ typedef struct _UnrolledLinkedListAsDequeTests UnrolledLinkedListAsDequeTests; typedef struct _UnrolledLinkedListAsDequeTestsClass UnrolledLinkedListAsDequeTestsClass; -G_GNUC_INTERNAL void _vala_main (gchar** args, + G_GNUC_INTERNAL void _vala_main (gchar** args, gint args_length1); ArrayListTests* array_list_tests_new (void); ArrayListTests* array_list_tests_construct (GType object_type); -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType list_tests_get_type (void) G_GNUC_CONST; +GType list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ListTests, g_object_unref) -GType bidir_list_tests_get_type (void) G_GNUC_CONST; +GType bidir_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (BidirListTests, g_object_unref) -GType array_list_tests_get_type (void) G_GNUC_CONST; +GType array_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ArrayListTests, g_object_unref) GTestSuite* gee_test_case_get_suite (GeeTestCase* self); ArrayQueueTests* array_queue_tests_new (void); ArrayQueueTests* array_queue_tests_construct (GType object_type); -GType queue_tests_get_type (void) G_GNUC_CONST; +GType queue_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (QueueTests, g_object_unref) -GType deque_tests_get_type (void) G_GNUC_CONST; +GType deque_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (DequeTests, g_object_unref) -GType array_queue_tests_get_type (void) G_GNUC_CONST; +GType array_queue_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ArrayQueueTests, g_object_unref) ConcurrentListTests* concurrent_list_tests_new (void); ConcurrentListTests* concurrent_list_tests_construct (GType object_type); -GType concurrent_list_tests_get_type (void) G_GNUC_CONST; +GType concurrent_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConcurrentListTests, g_object_unref) ConcurrentSetTests* concurrent_set_tests_new (void); ConcurrentSetTests* concurrent_set_tests_construct (GType object_type); -GType set_tests_get_type (void) G_GNUC_CONST; +GType set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (SetTests, g_object_unref) -GType sorted_set_tests_get_type (void) G_GNUC_CONST; +GType sorted_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (SortedSetTests, g_object_unref) -GType concurrent_set_tests_get_type (void) G_GNUC_CONST; +GType concurrent_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ConcurrentSetTests, g_object_unref) FunctionsTests* functions_tests_new (void); FunctionsTests* functions_tests_construct (GType object_type); -GType functions_tests_get_type (void) G_GNUC_CONST; +GType functions_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (FunctionsTests, g_object_unref) HashMapTests* hash_map_tests_new (void); HashMapTests* hash_map_tests_construct (GType object_type); -GType map_tests_get_type (void) G_GNUC_CONST; +GType map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MapTests, g_object_unref) -GType hash_map_tests_get_type (void) G_GNUC_CONST; +GType hash_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (HashMapTests, g_object_unref) HashMultiMapTests* hash_multi_map_tests_new (void); HashMultiMapTests* hash_multi_map_tests_construct (GType object_type); -GType multi_map_tests_get_type (void) G_GNUC_CONST; +GType multi_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MultiMapTests, g_object_unref) -GType hash_multi_map_tests_get_type (void) G_GNUC_CONST; +GType hash_multi_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (HashMultiMapTests, g_object_unref) HashMultiSetTests* hash_multi_set_tests_new (void); HashMultiSetTests* hash_multi_set_tests_construct (GType object_type); -GType multi_set_tests_get_type (void) G_GNUC_CONST; +GType multi_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MultiSetTests, g_object_unref) -GType hash_multi_set_tests_get_type (void) G_GNUC_CONST; +GType hash_multi_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (HashMultiSetTests, g_object_unref) HashSetTests* hash_set_tests_new (void); HashSetTests* hash_set_tests_construct (GType object_type); -GType hash_set_tests_get_type (void) G_GNUC_CONST; +GType hash_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (HashSetTests, g_object_unref) LinkedListTests* linked_list_tests_new (void); LinkedListTests* linked_list_tests_construct (GType object_type); -GType linked_list_tests_get_type (void) G_GNUC_CONST; +GType linked_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (LinkedListTests, g_object_unref) LinkedListAsDequeTests* linked_list_as_deque_tests_new (void); LinkedListAsDequeTests* linked_list_as_deque_tests_construct (GType object_type); -GType linked_list_as_deque_tests_get_type (void) G_GNUC_CONST; +GType linked_list_as_deque_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (LinkedListAsDequeTests, g_object_unref) PriorityQueueTests* priority_queue_tests_new (void); PriorityQueueTests* priority_queue_tests_construct (GType object_type); -GType priority_queue_tests_get_type (void) G_GNUC_CONST; +GType priority_queue_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (PriorityQueueTests, g_object_unref) ReadOnlyBidirListTests* read_only_bidir_list_tests_new (void); ReadOnlyBidirListTests* read_only_bidir_list_tests_construct (GType object_type); -GType read_only_collection_tests_get_type (void) G_GNUC_CONST; +GType read_only_collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlyCollectionTests, g_object_unref) -GType read_only_list_tests_get_type (void) G_GNUC_CONST; +GType read_only_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlyListTests, g_object_unref) -GType read_only_bidir_list_tests_get_type (void) G_GNUC_CONST; +GType read_only_bidir_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlyBidirListTests, g_object_unref) ReadOnlyCollectionTests* read_only_collection_tests_new (void); ReadOnlyCollectionTests* read_only_collection_tests_construct (GType object_type); @@ -488,44 +488,44 @@ ReadOnlyListTests* read_only_list_tests_construct (GType object_type); ReadOnlyMapTests* read_only_map_tests_new (void); ReadOnlyMapTests* read_only_map_tests_construct (GType object_type); -GType read_only_map_tests_get_type (void) G_GNUC_CONST; +GType read_only_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlyMapTests, g_object_unref) ReadOnlySetTests* read_only_set_tests_new (void); ReadOnlySetTests* read_only_set_tests_construct (GType object_type); -GType read_only_set_tests_get_type (void) G_GNUC_CONST; +GType read_only_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlySetTests, g_object_unref) TreeMapTests* tree_map_tests_new (void); TreeMapTests* tree_map_tests_construct (GType object_type); -GType gee_sorted_map_tests_get_type (void) G_GNUC_CONST; +GType gee_sorted_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeSortedMapTests, g_object_unref) -GType bidir_sorted_map_tests_get_type (void) G_GNUC_CONST; +GType bidir_sorted_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (BidirSortedMapTests, g_object_unref) -GType tree_map_tests_get_type (void) G_GNUC_CONST; +GType tree_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (TreeMapTests, g_object_unref) TreeMultiMapTests* tree_multi_map_tests_new (void); TreeMultiMapTests* tree_multi_map_tests_construct (GType object_type); -GType tree_multi_map_tests_get_type (void) G_GNUC_CONST; +GType tree_multi_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (TreeMultiMapTests, g_object_unref) TreeMultiSetTests* tree_multi_set_tests_new (void); TreeMultiSetTests* tree_multi_set_tests_construct (GType object_type); -GType tree_multi_set_tests_get_type (void) G_GNUC_CONST; +GType tree_multi_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (TreeMultiSetTests, g_object_unref) TreeSetTests* tree_set_tests_new (void); TreeSetTests* tree_set_tests_construct (GType object_type); -GType bidir_sorted_set_tests_get_type (void) G_GNUC_CONST; +GType bidir_sorted_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (BidirSortedSetTests, g_object_unref) -GType tree_set_tests_get_type (void) G_GNUC_CONST; +GType tree_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (TreeSetTests, g_object_unref) UnrolledLinkedListTests* unrolled_linked_list_tests_new (void); UnrolledLinkedListTests* unrolled_linked_list_tests_construct (GType object_type); -GType unrolled_linked_list_tests_get_type (void) G_GNUC_CONST; +GType unrolled_linked_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (UnrolledLinkedListTests, g_object_unref) UnrolledLinkedListAsDequeTests* unrolled_linked_list_as_deque_tests_new (void); UnrolledLinkedListAsDequeTests* unrolled_linked_list_as_deque_tests_construct (GType object_type); -GType unrolled_linked_list_as_deque_tests_get_type (void) G_GNUC_CONST; +GType unrolled_linked_list_as_deque_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (UnrolledLinkedListAsDequeTests, g_object_unref) -G_GNUC_INTERNAL void + G_GNUC_INTERNAL void _vala_main (gchar** args, gint args_length1) { diff -Nru libgee-0.8-0.20.3/tests/testmap.c libgee-0.8-0.20.4/tests/testmap.c --- libgee-0.8-0.20.3/tests/testmap.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testmap.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testmap.c generated by valac 0.46.6, the Vala compiler +/* testmap.c generated by valac 0.52.0, the Vala compiler * generated from testmap.vala, do not modify */ /* testmap.vala @@ -87,7 +87,6 @@ MAP_TESTS_TEST_ENTRY_NUM_PROPERTIES }; static GParamSpec* map_tests_test_entry_properties[MAP_TESTS_TEST_ENTRY_NUM_PROPERTIES]; -#define _k_destroy_func0(var) (((var == NULL) || (k_destroy_func == NULL)) ? NULL : (var = (k_destroy_func (var), NULL))) #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg); #define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; } #define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; } @@ -144,9 +143,9 @@ static gint MapTestsTestEntry_private_offset; static gpointer map_tests_test_entry_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType map_tests_get_type (void) G_GNUC_CONST; +GType map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MapTests, g_object_unref) MapTests* map_tests_construct (GType object_type, const gchar* name); @@ -198,7 +197,7 @@ GDestroyNotify v_destroy_func, gconstpointer key, gconstpointer value); -static GType map_tests_test_entry_get_type (void) G_GNUC_CONST G_GNUC_UNUSED; +static GType map_tests_test_entry_get_type (void) G_GNUC_CONST G_GNUC_UNUSED ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MapTestsTestEntry, g_object_unref) void map_tests_test_clear (MapTests* self); static gint __lambda50_ (MapTests* self, @@ -240,6 +239,7 @@ const gchar* key, const gchar* value); static void map_tests_test_entry_finalize (GObject * obj); +static GType map_tests_test_entry_get_type_once (void); static void _vala_map_tests_test_entry_get_property (GObject * object, guint property_id, GValue * value, @@ -249,6 +249,7 @@ const GValue * value, GParamSpec * pspec); static void map_tests_finalize (GObject * obj); +static GType map_tests_get_type_once (void); static void _map_tests_test_type_correctness_gee_test_case_test_method (gpointer self) @@ -1289,7 +1290,7 @@ gpointer _tmp9_; GeeMapEntry* _tmp10_; gconstpointer _tmp11_; - const gchar* _tmp12_; + gconstpointer _tmp12_; _tmp7_ = _entry_it; if (!gee_iterator_next (_tmp7_)) { break; @@ -1304,7 +1305,7 @@ GeeMap* _tmp13_; GeeMapEntry* _tmp14_; gconstpointer _tmp15_; - const gchar* _tmp16_; + gconstpointer _tmp16_; _tmp13_ = self->test_map; _tmp14_ = entry; _tmp15_ = gee_map_entry_get_key (_tmp14_); @@ -2071,7 +2072,7 @@ { gboolean _tmp0_ = FALSE; gconstpointer _tmp1_; - const gchar* _tmp2_; + gconstpointer _tmp2_; gboolean result = FALSE; g_return_val_if_fail (e != NULL, FALSE); g_return_val_if_fail (key != NULL, FALSE); @@ -2080,7 +2081,7 @@ _tmp2_ = _tmp1_; if (g_strcmp0 ((const gchar*) _tmp2_, key) == 0) { gconstpointer _tmp3_; - const gchar* _tmp4_; + gconstpointer _tmp4_; _tmp3_ = gee_map_entry_get_value (e); _tmp4_ = _tmp3_; _tmp0_ = g_strcmp0 ((const gchar*) _tmp4_, value) == 0; @@ -2098,9 +2099,9 @@ const gchar* value) { gconstpointer _tmp0_; - const gchar* _tmp1_; + gconstpointer _tmp1_; gconstpointer _tmp2_; - const gchar* _tmp3_; + gconstpointer _tmp3_; g_return_if_fail (e != NULL); g_return_if_fail (key != NULL); g_return_if_fail (value != NULL); @@ -2139,7 +2140,7 @@ self->priv->v_dup_func = v_dup_func; self->priv->v_destroy_func = v_destroy_func; _tmp0_ = ((key != NULL) && (k_dup_func != NULL)) ? k_dup_func ((gpointer) key) : ((gpointer) key); - _k_destroy_func0 (self->priv->_key); + ((self->priv->_key == NULL) || (k_destroy_func == NULL)) ? NULL : (self->priv->_key = (k_destroy_func (self->priv->_key), NULL)); self->priv->_key = _tmp0_; gee_map_entry_set_value ((GeeMapEntry*) self, value); return self; @@ -2187,8 +2188,10 @@ gconstpointer value) { MapTestsTestEntry* self; + gpointer old_value; self = (MapTestsTestEntry*) base; - if (map_tests_test_entry_real_get_value (base) != value) { + old_value = map_tests_test_entry_real_get_value (base); + if (old_value != value) { gpointer _tmp0_; _tmp0_ = ((value != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) value) : ((gpointer) value); ((self->priv->_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (self->priv->_value = (self->priv->v_destroy_func (self->priv->_value), NULL)); @@ -2249,14 +2252,22 @@ } static GType +map_tests_test_entry_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (MapTestsTestEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) map_tests_test_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MapTestsTestEntry), 0, (GInstanceInitFunc) map_tests_test_entry_instance_init, NULL }; + GType map_tests_test_entry_type_id; + map_tests_test_entry_type_id = g_type_register_static (GEE_MAP_TYPE_ENTRY, "MapTestsTestEntry", &g_define_type_info, 0); + MapTestsTestEntry_private_offset = g_type_add_instance_private (map_tests_test_entry_type_id, sizeof (MapTestsTestEntryPrivate)); + return map_tests_test_entry_type_id; +} + +static GType map_tests_test_entry_get_type (void) { static volatile gsize map_tests_test_entry_type_id__volatile = 0; if (g_once_init_enter (&map_tests_test_entry_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (MapTestsTestEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) map_tests_test_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MapTestsTestEntry), 0, (GInstanceInitFunc) map_tests_test_entry_instance_init, NULL }; GType map_tests_test_entry_type_id; - map_tests_test_entry_type_id = g_type_register_static (GEE_MAP_TYPE_ENTRY, "MapTestsTestEntry", &g_define_type_info, 0); - MapTestsTestEntry_private_offset = g_type_add_instance_private (map_tests_test_entry_type_id, sizeof (MapTestsTestEntryPrivate)); + map_tests_test_entry_type_id = map_tests_test_entry_get_type_once (); g_once_init_leave (&map_tests_test_entry_type_id__volatile, map_tests_test_entry_type_id); } return map_tests_test_entry_type_id__volatile; @@ -2363,14 +2374,22 @@ G_OBJECT_CLASS (map_tests_parent_class)->finalize (obj); } +static GType +map_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (MapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MapTests), 0, (GInstanceInitFunc) map_tests_instance_init, NULL }; + GType map_tests_type_id; + map_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "MapTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + return map_tests_type_id; +} + GType map_tests_get_type (void) { static volatile gsize map_tests_type_id__volatile = 0; if (g_once_init_enter (&map_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (MapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MapTests), 0, (GInstanceInitFunc) map_tests_instance_init, NULL }; GType map_tests_type_id; - map_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "MapTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + map_tests_type_id = map_tests_get_type_once (); g_once_init_leave (&map_tests_type_id__volatile, map_tests_type_id); } return map_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testmultimap.c libgee-0.8-0.20.4/tests/testmultimap.c --- libgee-0.8-0.20.3/tests/testmultimap.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testmultimap.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testmultimap.c generated by valac 0.46.6, the Vala compiler +/* testmultimap.c generated by valac 0.52.0, the Vala compiler * generated from testmultimap.vala, do not modify */ /* testmultimap.vala @@ -89,9 +89,9 @@ static gpointer multi_map_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType multi_map_tests_get_type (void) G_GNUC_CONST; +GType multi_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MultiMapTests, g_object_unref) MultiMapTests* multi_map_tests_construct (GType object_type, const gchar* name); @@ -111,6 +111,7 @@ static void multi_map_tests_test_keys_all_keys_values (MultiMapTests* self); static void _multi_map_tests_test_keys_all_keys_values_gee_test_case_test_method (gpointer self); static void multi_map_tests_finalize (GObject * obj); +static GType multi_map_tests_get_type_once (void); static void _multi_map_tests_test_type_correctness_gee_test_case_test_method (gpointer self) @@ -769,14 +770,22 @@ G_OBJECT_CLASS (multi_map_tests_parent_class)->finalize (obj); } +static GType +multi_map_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (MultiMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) multi_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MultiMapTests), 0, (GInstanceInitFunc) multi_map_tests_instance_init, NULL }; + GType multi_map_tests_type_id; + multi_map_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "MultiMapTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + return multi_map_tests_type_id; +} + GType multi_map_tests_get_type (void) { static volatile gsize multi_map_tests_type_id__volatile = 0; if (g_once_init_enter (&multi_map_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (MultiMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) multi_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MultiMapTests), 0, (GInstanceInitFunc) multi_map_tests_instance_init, NULL }; GType multi_map_tests_type_id; - multi_map_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "MultiMapTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + multi_map_tests_type_id = multi_map_tests_get_type_once (); g_once_init_leave (&multi_map_tests_type_id__volatile, multi_map_tests_type_id); } return multi_map_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testmultiset.c libgee-0.8-0.20.4/tests/testmultiset.c --- libgee-0.8-0.20.3/tests/testmultiset.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testmultiset.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testmultiset.c generated by valac 0.46.6, the Vala compiler +/* testmultiset.c generated by valac 0.52.0, the Vala compiler * generated from testmultiset.vala, do not modify */ /* testmultiset.vala @@ -108,11 +108,11 @@ static gpointer multi_set_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType multi_set_tests_get_type (void) G_GNUC_CONST; +GType multi_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MultiSetTests, g_object_unref) MultiSetTests* multi_set_tests_construct (GType object_type, const gchar* name); @@ -125,6 +125,7 @@ GDestroyNotify test_target_destroy_notify); static void multi_set_tests_test_duplicates_are_retained (MultiSetTests* self); static void _multi_set_tests_test_duplicates_are_retained_gee_test_case_test_method (gpointer self); +static GType multi_set_tests_get_type_once (void); static void _multi_set_tests_test_duplicates_are_retained_gee_test_case_test_method (gpointer self) @@ -225,14 +226,22 @@ { } +static GType +multi_set_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (MultiSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) multi_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MultiSetTests), 0, (GInstanceInitFunc) multi_set_tests_instance_init, NULL }; + GType multi_set_tests_type_id; + multi_set_tests_type_id = g_type_register_static (TYPE_COLLECTION_TESTS, "MultiSetTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + return multi_set_tests_type_id; +} + GType multi_set_tests_get_type (void) { static volatile gsize multi_set_tests_type_id__volatile = 0; if (g_once_init_enter (&multi_set_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (MultiSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) multi_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MultiSetTests), 0, (GInstanceInitFunc) multi_set_tests_instance_init, NULL }; GType multi_set_tests_type_id; - multi_set_tests_type_id = g_type_register_static (TYPE_COLLECTION_TESTS, "MultiSetTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + multi_set_tests_type_id = multi_set_tests_get_type_once (); g_once_init_leave (&multi_set_tests_type_id__volatile, multi_set_tests_type_id); } return multi_set_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testpriorityqueue.c libgee-0.8-0.20.4/tests/testpriorityqueue.c --- libgee-0.8-0.20.3/tests/testpriorityqueue.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testpriorityqueue.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testpriorityqueue.c generated by valac 0.46.6, the Vala compiler +/* testpriorityqueue.c generated by valac 0.52.0, the Vala compiler * generated from testpriorityqueue.vala, do not modify */ /* testpriorityqueue.vala @@ -126,14 +126,16 @@ static gpointer priority_queue_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType queue_tests_get_type (void) G_GNUC_CONST; +GType queue_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (QueueTests, g_object_unref) -GType priority_queue_tests_get_type (void) G_GNUC_CONST; +GType priority_queue_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (PriorityQueueTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); PriorityQueueTests* priority_queue_tests_new (void); PriorityQueueTests* priority_queue_tests_construct (GType object_type); QueueTests* queue_tests_construct (GType object_type, @@ -147,6 +149,7 @@ static void _priority_queue_tests_test_poll_gives_minimum_gee_test_case_test_method (gpointer self); static void priority_queue_tests_real_set_up (GeeTestCase* base); static void priority_queue_tests_real_tear_down (GeeTestCase* base); +static GType priority_queue_tests_get_type_once (void); static void _priority_queue_tests_test_poll_gives_minimum_gee_test_case_test_method (gpointer self) @@ -427,14 +430,22 @@ { } +static GType +priority_queue_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (PriorityQueueTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) priority_queue_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PriorityQueueTests), 0, (GInstanceInitFunc) priority_queue_tests_instance_init, NULL }; + GType priority_queue_tests_type_id; + priority_queue_tests_type_id = g_type_register_static (TYPE_QUEUE_TESTS, "PriorityQueueTests", &g_define_type_info, 0); + return priority_queue_tests_type_id; +} + GType priority_queue_tests_get_type (void) { static volatile gsize priority_queue_tests_type_id__volatile = 0; if (g_once_init_enter (&priority_queue_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (PriorityQueueTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) priority_queue_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (PriorityQueueTests), 0, (GInstanceInitFunc) priority_queue_tests_instance_init, NULL }; GType priority_queue_tests_type_id; - priority_queue_tests_type_id = g_type_register_static (TYPE_QUEUE_TESTS, "PriorityQueueTests", &g_define_type_info, 0); + priority_queue_tests_type_id = priority_queue_tests_get_type_once (); g_once_init_leave (&priority_queue_tests_type_id__volatile, priority_queue_tests_type_id); } return priority_queue_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testqueue.c libgee-0.8-0.20.4/tests/testqueue.c --- libgee-0.8-0.20.3/tests/testqueue.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testqueue.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testqueue.c generated by valac 0.46.6, the Vala compiler +/* testqueue.c generated by valac 0.52.0, the Vala compiler * generated from testqueue.vala, do not modify */ /* testqueue.vala @@ -106,11 +106,11 @@ static gpointer queue_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType queue_tests_get_type (void) G_GNUC_CONST; +GType queue_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (QueueTests, g_object_unref) QueueTests* queue_tests_construct (GType object_type, const gchar* name); @@ -127,6 +127,7 @@ static void _queue_tests_test_one_element_operation_gee_test_case_test_method (gpointer self); void queue_tests_test_gobject_properties (QueueTests* self); static void _queue_tests_test_gobject_properties_gee_test_case_test_method (gpointer self); +static GType queue_tests_get_type_once (void); static void _queue_tests_test_capacity_bound_gee_test_case_test_method (gpointer self) @@ -501,14 +502,22 @@ { } +static GType +queue_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (QueueTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) queue_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (QueueTests), 0, (GInstanceInitFunc) queue_tests_instance_init, NULL }; + GType queue_tests_type_id; + queue_tests_type_id = g_type_register_static (TYPE_COLLECTION_TESTS, "QueueTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + return queue_tests_type_id; +} + GType queue_tests_get_type (void) { static volatile gsize queue_tests_type_id__volatile = 0; if (g_once_init_enter (&queue_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (QueueTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) queue_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (QueueTests), 0, (GInstanceInitFunc) queue_tests_instance_init, NULL }; GType queue_tests_type_id; - queue_tests_type_id = g_type_register_static (TYPE_COLLECTION_TESTS, "QueueTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + queue_tests_type_id = queue_tests_get_type_once (); g_once_init_leave (&queue_tests_type_id__volatile, queue_tests_type_id); } return queue_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testreadonlybidirlist.c libgee-0.8-0.20.4/tests/testreadonlybidirlist.c --- libgee-0.8-0.20.3/tests/testreadonlybidirlist.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testreadonlybidirlist.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testreadonlybidirlist.c generated by valac 0.46.6, the Vala compiler +/* testreadonlybidirlist.c generated by valac 0.52.0, the Vala compiler * generated from testreadonlybidirlist.vala, do not modify */ /* testreadonlybidirlist.vala @@ -128,14 +128,16 @@ static gpointer read_only_bidir_list_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType read_only_collection_tests_get_type (void) G_GNUC_CONST; +GType read_only_collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlyCollectionTests, g_object_unref) -GType read_only_list_tests_get_type (void) G_GNUC_CONST; +GType read_only_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlyListTests, g_object_unref) -GType read_only_bidir_list_tests_get_type (void) G_GNUC_CONST; +GType read_only_bidir_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlyBidirListTests, g_object_unref) +GeeCollection* read_only_collection_tests_get_ro_view (ReadOnlyCollectionTests* self, + GeeCollection* collection); ReadOnlyBidirListTests* read_only_bidir_list_tests_new (void); ReadOnlyBidirListTests* read_only_bidir_list_tests_construct (GType object_type); ReadOnlyListTests* read_only_list_tests_new_with_name (const gchar* name); @@ -150,6 +152,7 @@ static void _read_only_bidir_list_tests_test_immutable_iterator_gee_test_case_test_method (gpointer self); static GeeCollection* read_only_bidir_list_tests_real_get_ro_view (ReadOnlyCollectionTests* base, GeeCollection* collection); +static GType read_only_bidir_list_tests_get_type_once (void); static void _read_only_bidir_list_tests_test_immutable_iterator_gee_test_case_test_method (gpointer self) @@ -481,14 +484,22 @@ { } +static GType +read_only_bidir_list_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (ReadOnlyBidirListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) read_only_bidir_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ReadOnlyBidirListTests), 0, (GInstanceInitFunc) read_only_bidir_list_tests_instance_init, NULL }; + GType read_only_bidir_list_tests_type_id; + read_only_bidir_list_tests_type_id = g_type_register_static (TYPE_READ_ONLY_LIST_TESTS, "ReadOnlyBidirListTests", &g_define_type_info, 0); + return read_only_bidir_list_tests_type_id; +} + GType read_only_bidir_list_tests_get_type (void) { static volatile gsize read_only_bidir_list_tests_type_id__volatile = 0; if (g_once_init_enter (&read_only_bidir_list_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (ReadOnlyBidirListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) read_only_bidir_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ReadOnlyBidirListTests), 0, (GInstanceInitFunc) read_only_bidir_list_tests_instance_init, NULL }; GType read_only_bidir_list_tests_type_id; - read_only_bidir_list_tests_type_id = g_type_register_static (TYPE_READ_ONLY_LIST_TESTS, "ReadOnlyBidirListTests", &g_define_type_info, 0); + read_only_bidir_list_tests_type_id = read_only_bidir_list_tests_get_type_once (); g_once_init_leave (&read_only_bidir_list_tests_type_id__volatile, read_only_bidir_list_tests_type_id); } return read_only_bidir_list_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testreadonlycollection.c libgee-0.8-0.20.4/tests/testreadonlycollection.c --- libgee-0.8-0.20.3/tests/testreadonlycollection.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testreadonlycollection.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testreadonlycollection.c generated by valac 0.46.6, the Vala compiler +/* testreadonlycollection.c generated by valac 0.52.0, the Vala compiler * generated from testreadonlycollection.vala, do not modify */ /* testreadonlycollection.vala @@ -89,10 +89,14 @@ static gpointer read_only_collection_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType read_only_collection_tests_get_type (void) G_GNUC_CONST; +GType read_only_collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlyCollectionTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); +GeeCollection* read_only_collection_tests_get_ro_view (ReadOnlyCollectionTests* self, + GeeCollection* collection); ReadOnlyCollectionTests* read_only_collection_tests_new (void); ReadOnlyCollectionTests* read_only_collection_tests_construct (GType object_type); ReadOnlyCollectionTests* read_only_collection_tests_new_with_name (const gchar* name); @@ -114,12 +118,11 @@ void read_only_collection_tests_test_accurate_view (ReadOnlyCollectionTests* self); static void _read_only_collection_tests_test_accurate_view_gee_test_case_test_method (gpointer self); static void read_only_collection_tests_real_set_up (GeeTestCase* base); -GeeCollection* read_only_collection_tests_get_ro_view (ReadOnlyCollectionTests* self, - GeeCollection* collection); static void read_only_collection_tests_real_tear_down (GeeTestCase* base); static GeeCollection* read_only_collection_tests_real_get_ro_view (ReadOnlyCollectionTests* self, GeeCollection* collection); static void read_only_collection_tests_finalize (GObject * obj); +static GType read_only_collection_tests_get_type_once (void); ReadOnlyCollectionTests* read_only_collection_tests_construct (GType object_type) @@ -225,8 +228,13 @@ read_only_collection_tests_get_ro_view (ReadOnlyCollectionTests* self, GeeCollection* collection) { + ReadOnlyCollectionTestsClass* _klass_; g_return_val_if_fail (self != NULL, NULL); - return READ_ONLY_COLLECTION_TESTS_GET_CLASS (self)->get_ro_view (self, collection); + _klass_ = READ_ONLY_COLLECTION_TESTS_GET_CLASS (self); + if (_klass_->get_ro_view) { + return _klass_->get_ro_view (self, collection); + } + return NULL; } void @@ -716,14 +724,22 @@ G_OBJECT_CLASS (read_only_collection_tests_parent_class)->finalize (obj); } +static GType +read_only_collection_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (ReadOnlyCollectionTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) read_only_collection_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ReadOnlyCollectionTests), 0, (GInstanceInitFunc) read_only_collection_tests_instance_init, NULL }; + GType read_only_collection_tests_type_id; + read_only_collection_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "ReadOnlyCollectionTests", &g_define_type_info, 0); + return read_only_collection_tests_type_id; +} + GType read_only_collection_tests_get_type (void) { static volatile gsize read_only_collection_tests_type_id__volatile = 0; if (g_once_init_enter (&read_only_collection_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (ReadOnlyCollectionTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) read_only_collection_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ReadOnlyCollectionTests), 0, (GInstanceInitFunc) read_only_collection_tests_instance_init, NULL }; GType read_only_collection_tests_type_id; - read_only_collection_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "ReadOnlyCollectionTests", &g_define_type_info, 0); + read_only_collection_tests_type_id = read_only_collection_tests_get_type_once (); g_once_init_leave (&read_only_collection_tests_type_id__volatile, read_only_collection_tests_type_id); } return read_only_collection_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testreadonlylist.c libgee-0.8-0.20.4/tests/testreadonlylist.c --- libgee-0.8-0.20.3/tests/testreadonlylist.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testreadonlylist.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testreadonlylist.c generated by valac 0.46.6, the Vala compiler +/* testreadonlylist.c generated by valac 0.52.0, the Vala compiler * generated from testreadonlylist.vala, do not modify */ /* testreadonlylist.vala @@ -111,12 +111,16 @@ static gpointer read_only_list_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType read_only_collection_tests_get_type (void) G_GNUC_CONST; +GType read_only_collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlyCollectionTests, g_object_unref) -GType read_only_list_tests_get_type (void) G_GNUC_CONST; +GType read_only_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlyListTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); +GeeCollection* read_only_collection_tests_get_ro_view (ReadOnlyCollectionTests* self, + GeeCollection* collection); ReadOnlyListTests* read_only_list_tests_new (void); ReadOnlyListTests* read_only_list_tests_construct (GType object_type); ReadOnlyListTests* read_only_list_tests_new_with_name (const gchar* name); @@ -137,11 +141,10 @@ void read_only_list_tests_test_accurate_view (ReadOnlyListTests* self); static void _read_only_list_tests_test_accurate_view_gee_test_case_test_method (gpointer self); static void read_only_list_tests_real_set_up (GeeTestCase* base); -GeeCollection* read_only_collection_tests_get_ro_view (ReadOnlyCollectionTests* self, - GeeCollection* collection); static void read_only_list_tests_real_tear_down (GeeTestCase* base); static GeeCollection* read_only_list_tests_real_get_ro_view (ReadOnlyCollectionTests* base, GeeCollection* collection); +static GType read_only_list_tests_get_type_once (void); ReadOnlyListTests* read_only_list_tests_construct (GType object_type) @@ -782,14 +785,22 @@ { } +static GType +read_only_list_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (ReadOnlyListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) read_only_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ReadOnlyListTests), 0, (GInstanceInitFunc) read_only_list_tests_instance_init, NULL }; + GType read_only_list_tests_type_id; + read_only_list_tests_type_id = g_type_register_static (TYPE_READ_ONLY_COLLECTION_TESTS, "ReadOnlyListTests", &g_define_type_info, 0); + return read_only_list_tests_type_id; +} + GType read_only_list_tests_get_type (void) { static volatile gsize read_only_list_tests_type_id__volatile = 0; if (g_once_init_enter (&read_only_list_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (ReadOnlyListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) read_only_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ReadOnlyListTests), 0, (GInstanceInitFunc) read_only_list_tests_instance_init, NULL }; GType read_only_list_tests_type_id; - read_only_list_tests_type_id = g_type_register_static (TYPE_READ_ONLY_COLLECTION_TESTS, "ReadOnlyListTests", &g_define_type_info, 0); + read_only_list_tests_type_id = read_only_list_tests_get_type_once (); g_once_init_leave (&read_only_list_tests_type_id__volatile, read_only_list_tests_type_id); } return read_only_list_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testreadonlymap.c libgee-0.8-0.20.4/tests/testreadonlymap.c --- libgee-0.8-0.20.3/tests/testreadonlymap.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testreadonlymap.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testreadonlymap.c generated by valac 0.46.6, the Vala compiler +/* testreadonlymap.c generated by valac 0.52.0, the Vala compiler * generated from testreadonlymap.vala, do not modify */ /* testreadonlymap.vala @@ -88,10 +88,12 @@ static gpointer read_only_map_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType read_only_map_tests_get_type (void) G_GNUC_CONST; +GType read_only_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlyMapTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); ReadOnlyMapTests* read_only_map_tests_new (void); ReadOnlyMapTests* read_only_map_tests_construct (GType object_type); GeeTestCase* gee_test_case_construct (GType object_type, @@ -112,6 +114,7 @@ static void read_only_map_tests_real_set_up (GeeTestCase* base); static void read_only_map_tests_real_tear_down (GeeTestCase* base); static void read_only_map_tests_finalize (GObject * obj); +static GType read_only_map_tests_get_type_once (void); static void _read_only_map_tests_test_unique_read_only_view_instance_gee_test_case_test_method (gpointer self) @@ -748,14 +751,22 @@ G_OBJECT_CLASS (read_only_map_tests_parent_class)->finalize (obj); } +static GType +read_only_map_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (ReadOnlyMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) read_only_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ReadOnlyMapTests), 0, (GInstanceInitFunc) read_only_map_tests_instance_init, NULL }; + GType read_only_map_tests_type_id; + read_only_map_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "ReadOnlyMapTests", &g_define_type_info, 0); + return read_only_map_tests_type_id; +} + GType read_only_map_tests_get_type (void) { static volatile gsize read_only_map_tests_type_id__volatile = 0; if (g_once_init_enter (&read_only_map_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (ReadOnlyMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) read_only_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ReadOnlyMapTests), 0, (GInstanceInitFunc) read_only_map_tests_instance_init, NULL }; GType read_only_map_tests_type_id; - read_only_map_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "ReadOnlyMapTests", &g_define_type_info, 0); + read_only_map_tests_type_id = read_only_map_tests_get_type_once (); g_once_init_leave (&read_only_map_tests_type_id__volatile, read_only_map_tests_type_id); } return read_only_map_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testreadonlyset.c libgee-0.8-0.20.4/tests/testreadonlyset.c --- libgee-0.8-0.20.3/tests/testreadonlyset.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testreadonlyset.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testreadonlyset.c generated by valac 0.46.6, the Vala compiler +/* testreadonlyset.c generated by valac 0.52.0, the Vala compiler * generated from testreadonlyset.vala, do not modify */ /* testreadonlyset.vala @@ -104,23 +104,26 @@ static gpointer read_only_set_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType read_only_collection_tests_get_type (void) G_GNUC_CONST; +GType read_only_collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlyCollectionTests, g_object_unref) -GType read_only_set_tests_get_type (void) G_GNUC_CONST; +GType read_only_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ReadOnlySetTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); +GeeCollection* read_only_collection_tests_get_ro_view (ReadOnlyCollectionTests* self, + GeeCollection* collection); ReadOnlySetTests* read_only_set_tests_new (void); ReadOnlySetTests* read_only_set_tests_construct (GType object_type); ReadOnlyCollectionTests* read_only_collection_tests_new_with_name (const gchar* name); ReadOnlyCollectionTests* read_only_collection_tests_construct_with_name (GType object_type, const gchar* name); static void read_only_set_tests_real_set_up (GeeTestCase* base); -GeeCollection* read_only_collection_tests_get_ro_view (ReadOnlyCollectionTests* self, - GeeCollection* collection); static void read_only_set_tests_real_tear_down (GeeTestCase* base); static GeeCollection* read_only_set_tests_real_get_ro_view (ReadOnlyCollectionTests* base, GeeCollection* collection); +static GType read_only_set_tests_get_type_once (void); ReadOnlySetTests* read_only_set_tests_construct (GType object_type) @@ -196,14 +199,22 @@ { } +static GType +read_only_set_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (ReadOnlySetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) read_only_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ReadOnlySetTests), 0, (GInstanceInitFunc) read_only_set_tests_instance_init, NULL }; + GType read_only_set_tests_type_id; + read_only_set_tests_type_id = g_type_register_static (TYPE_READ_ONLY_COLLECTION_TESTS, "ReadOnlySetTests", &g_define_type_info, 0); + return read_only_set_tests_type_id; +} + GType read_only_set_tests_get_type (void) { static volatile gsize read_only_set_tests_type_id__volatile = 0; if (g_once_init_enter (&read_only_set_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (ReadOnlySetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) read_only_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ReadOnlySetTests), 0, (GInstanceInitFunc) read_only_set_tests_instance_init, NULL }; GType read_only_set_tests_type_id; - read_only_set_tests_type_id = g_type_register_static (TYPE_READ_ONLY_COLLECTION_TESTS, "ReadOnlySetTests", &g_define_type_info, 0); + read_only_set_tests_type_id = read_only_set_tests_get_type_once (); g_once_init_leave (&read_only_set_tests_type_id__volatile, read_only_set_tests_type_id); } return read_only_set_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testset.c libgee-0.8-0.20.4/tests/testset.c --- libgee-0.8-0.20.3/tests/testset.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testset.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testset.c generated by valac 0.46.6, the Vala compiler +/* testset.c generated by valac 0.52.0, the Vala compiler * generated from testset.vala, do not modify */ /* testset.vala @@ -109,12 +109,13 @@ static gpointer set_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType set_tests_get_type (void) G_GNUC_CONST; +GType set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (SetTests, g_object_unref) +void set_tests_test_duplicates_are_ignored (SetTests* self); SetTests* set_tests_construct (GType object_type, const gchar* name); CollectionTests* collection_tests_construct (GType object_type, @@ -124,9 +125,9 @@ GeeTestCaseTestMethod test, gpointer test_target, GDestroyNotify test_target_destroy_notify); -void set_tests_test_duplicates_are_ignored (SetTests* self); static void _set_tests_test_duplicates_are_ignored_gee_test_case_test_method (gpointer self); static void set_tests_real_test_duplicates_are_ignored (SetTests* self); +static GType set_tests_get_type_once (void); static void _set_tests_test_duplicates_are_ignored_gee_test_case_test_method (gpointer self) @@ -195,8 +196,12 @@ void set_tests_test_duplicates_are_ignored (SetTests* self) { + SetTestsClass* _klass_; g_return_if_fail (self != NULL); - SET_TESTS_GET_CLASS (self)->test_duplicates_are_ignored (self); + _klass_ = SET_TESTS_GET_CLASS (self); + if (_klass_->test_duplicates_are_ignored) { + _klass_->test_duplicates_are_ignored (self); + } } static void @@ -213,14 +218,22 @@ { } +static GType +set_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (SetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SetTests), 0, (GInstanceInitFunc) set_tests_instance_init, NULL }; + GType set_tests_type_id; + set_tests_type_id = g_type_register_static (TYPE_COLLECTION_TESTS, "SetTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + return set_tests_type_id; +} + GType set_tests_get_type (void) { static volatile gsize set_tests_type_id__volatile = 0; if (g_once_init_enter (&set_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (SetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SetTests), 0, (GInstanceInitFunc) set_tests_instance_init, NULL }; GType set_tests_type_id; - set_tests_type_id = g_type_register_static (TYPE_COLLECTION_TESTS, "SetTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + set_tests_type_id = set_tests_get_type_once (); g_once_init_leave (&set_tests_type_id__volatile, set_tests_type_id); } return set_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testsortedmap.c libgee-0.8-0.20.4/tests/testsortedmap.c --- libgee-0.8-0.20.3/tests/testsortedmap.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testsortedmap.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testsortedmap.c generated by valac 0.46.6, the Vala compiler +/* testsortedmap.c generated by valac 0.52.0, the Vala compiler * generated from testsortedmap.vala, do not modify */ /* sortedset.vala @@ -148,11 +148,11 @@ static gint GeeSortedMapTestsSubMapTests_private_offset; static gpointer gee_sorted_map_tests_sub_map_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType map_tests_get_type (void) G_GNUC_CONST; +GType map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MapTests, g_object_unref) -GType gee_sorted_map_tests_get_type (void) G_GNUC_CONST; +GType gee_sorted_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeSortedMapTests, g_object_unref) GeeSortedMapTests* gee_sorted_map_tests_construct (GType object_type, const gchar* name); @@ -180,19 +180,21 @@ void gee_sorted_map_tests_test_ceil (GeeSortedMapTests* self); static void _gee_sorted_map_tests_test_ceil_gee_test_case_test_method (gpointer self); GTestSuite* gee_test_case_get_suite (GeeTestCase* self); -GType gee_sorted_map_tests_sub_map_tests_type_get_type (void) G_GNUC_CONST; +GType gee_sorted_map_tests_sub_map_tests_type_get_type (void) G_GNUC_CONST ; GeeSortedMapTestsSubMapTests* gee_sorted_map_tests_sub_map_tests_new (GeeSortedMapTests* test, GeeSortedMapTestsSubMapTestsType type); GeeSortedMapTestsSubMapTests* gee_sorted_map_tests_sub_map_tests_construct (GType object_type, GeeSortedMapTests* test, GeeSortedMapTestsSubMapTestsType type); -GType gee_sorted_map_tests_sub_map_tests_get_type (void) G_GNUC_CONST; +GType gee_sorted_map_tests_sub_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeSortedMapTestsSubMapTests, g_object_unref) void map_tests_assert_entry (GeeMapEntry* e, const gchar* key, const gchar* value); GeeMapEntry* map_tests_entry_for (const gchar* key, const gchar* value); +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); const gchar* gee_sorted_map_tests_sub_map_tests_type_to_string (GeeSortedMapTestsSubMapTestsType self); GeeTestCase* gee_test_case_construct (GType object_type, const gchar* name); @@ -229,15 +231,15 @@ void gee_sorted_map_tests_sub_map_tests_test_submap_and_subsets (GeeSortedMapTestsSubMapTests* self); static void _gee_sorted_map_tests_sub_map_tests_test_submap_and_subsets_gee_test_case_test_method (gpointer self); static void gee_sorted_map_tests_sub_map_tests_real_set_up (GeeTestCase* base); -void gee_test_case_set_up (GeeTestCase* self); static void gee_sorted_map_tests_sub_map_tests_real_tear_down (GeeTestCase* base); -void gee_test_case_tear_down (GeeTestCase* self); void gee_sorted_map_tests_sub_map_tests_set_default_values (GeeSortedMapTestsSubMapTests* self, gchar*** contains, gint* contains_length1, gchar*** not_contains, gint* not_contains_length1); static void gee_sorted_map_tests_sub_map_tests_finalize (GObject * obj); +static GType gee_sorted_map_tests_sub_map_tests_get_type_once (void); +static GType gee_sorted_map_tests_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -1728,14 +1730,22 @@ } } +static GType +gee_sorted_map_tests_sub_map_tests_type_get_type_once (void) +{ + static const GEnumValue values[] = {{GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_HEAD, "GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_HEAD", "head"}, {GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_TAIL, "GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_TAIL", "tail"}, {GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_SUB, "GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_SUB", "sub"}, {GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_EMPTY, "GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_EMPTY", "empty"}, {0, NULL, NULL}}; + GType gee_sorted_map_tests_sub_map_tests_type_type_id; + gee_sorted_map_tests_sub_map_tests_type_type_id = g_enum_register_static ("GeeSortedMapTestsSubMapTestsType", values); + return gee_sorted_map_tests_sub_map_tests_type_type_id; +} + GType gee_sorted_map_tests_sub_map_tests_type_get_type (void) { static volatile gsize gee_sorted_map_tests_sub_map_tests_type_type_id__volatile = 0; if (g_once_init_enter (&gee_sorted_map_tests_sub_map_tests_type_type_id__volatile)) { - static const GEnumValue values[] = {{GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_HEAD, "GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_HEAD", "head"}, {GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_TAIL, "GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_TAIL", "tail"}, {GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_SUB, "GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_SUB", "sub"}, {GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_EMPTY, "GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_EMPTY", "empty"}, {0, NULL, NULL}}; GType gee_sorted_map_tests_sub_map_tests_type_type_id; - gee_sorted_map_tests_sub_map_tests_type_type_id = g_enum_register_static ("GeeSortedMapTestsSubMapTestsType", values); + gee_sorted_map_tests_sub_map_tests_type_type_id = gee_sorted_map_tests_sub_map_tests_type_get_type_once (); g_once_init_leave (&gee_sorted_map_tests_sub_map_tests_type_type_id__volatile, gee_sorted_map_tests_sub_map_tests_type_type_id); } return gee_sorted_map_tests_sub_map_tests_type_type_id__volatile; @@ -6338,15 +6348,23 @@ G_OBJECT_CLASS (gee_sorted_map_tests_sub_map_tests_parent_class)->finalize (obj); } +static GType +gee_sorted_map_tests_sub_map_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeSortedMapTestsSubMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_sorted_map_tests_sub_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeSortedMapTestsSubMapTests), 0, (GInstanceInitFunc) gee_sorted_map_tests_sub_map_tests_instance_init, NULL }; + GType gee_sorted_map_tests_sub_map_tests_type_id; + gee_sorted_map_tests_sub_map_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "GeeSortedMapTestsSubMapTests", &g_define_type_info, 0); + GeeSortedMapTestsSubMapTests_private_offset = g_type_add_instance_private (gee_sorted_map_tests_sub_map_tests_type_id, sizeof (GeeSortedMapTestsSubMapTestsPrivate)); + return gee_sorted_map_tests_sub_map_tests_type_id; +} + GType gee_sorted_map_tests_sub_map_tests_get_type (void) { static volatile gsize gee_sorted_map_tests_sub_map_tests_type_id__volatile = 0; if (g_once_init_enter (&gee_sorted_map_tests_sub_map_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeSortedMapTestsSubMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_sorted_map_tests_sub_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeSortedMapTestsSubMapTests), 0, (GInstanceInitFunc) gee_sorted_map_tests_sub_map_tests_instance_init, NULL }; GType gee_sorted_map_tests_sub_map_tests_type_id; - gee_sorted_map_tests_sub_map_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "GeeSortedMapTestsSubMapTests", &g_define_type_info, 0); - GeeSortedMapTestsSubMapTests_private_offset = g_type_add_instance_private (gee_sorted_map_tests_sub_map_tests_type_id, sizeof (GeeSortedMapTestsSubMapTestsPrivate)); + gee_sorted_map_tests_sub_map_tests_type_id = gee_sorted_map_tests_sub_map_tests_get_type_once (); g_once_init_leave (&gee_sorted_map_tests_sub_map_tests_type_id__volatile, gee_sorted_map_tests_sub_map_tests_type_id); } return gee_sorted_map_tests_sub_map_tests_type_id__volatile; @@ -6365,14 +6383,22 @@ { } +static GType +gee_sorted_map_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (GeeSortedMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_sorted_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeSortedMapTests), 0, (GInstanceInitFunc) gee_sorted_map_tests_instance_init, NULL }; + GType gee_sorted_map_tests_type_id; + gee_sorted_map_tests_type_id = g_type_register_static (TYPE_MAP_TESTS, "GeeSortedMapTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + return gee_sorted_map_tests_type_id; +} + GType gee_sorted_map_tests_get_type (void) { static volatile gsize gee_sorted_map_tests_type_id__volatile = 0; if (g_once_init_enter (&gee_sorted_map_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (GeeSortedMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gee_sorted_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GeeSortedMapTests), 0, (GInstanceInitFunc) gee_sorted_map_tests_instance_init, NULL }; GType gee_sorted_map_tests_type_id; - gee_sorted_map_tests_type_id = g_type_register_static (TYPE_MAP_TESTS, "GeeSortedMapTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + gee_sorted_map_tests_type_id = gee_sorted_map_tests_get_type_once (); g_once_init_leave (&gee_sorted_map_tests_type_id__volatile, gee_sorted_map_tests_type_id); } return gee_sorted_map_tests_type_id__volatile; @@ -6384,7 +6410,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/tests/testsortedset.c libgee-0.8-0.20.4/tests/testsortedset.c --- libgee-0.8-0.20.3/tests/testsortedset.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testsortedset.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testsortedset.c generated by valac 0.46.6, the Vala compiler +/* testsortedset.c generated by valac 0.52.0, the Vala compiler * generated from testsortedset.vala, do not modify */ /* testsortedset.vala @@ -175,13 +175,13 @@ static gint SortedSetTestsSubSetTests_private_offset; static gpointer sorted_set_tests_sub_set_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType set_tests_get_type (void) G_GNUC_CONST; +GType set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (SetTests, g_object_unref) -GType sorted_set_tests_get_type (void) G_GNUC_CONST; +GType sorted_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (SortedSetTests, g_object_unref) SortedSetTests* sorted_set_tests_construct (GType object_type, const gchar* name, @@ -210,7 +210,7 @@ void sorted_set_tests_test_ceil (SortedSetTests* self); static void _sorted_set_tests_test_ceil_gee_test_case_test_method (gpointer self); GTestSuite* gee_test_case_get_suite (GeeTestCase* self); -GType sorted_set_tests_sub_set_tests_type_get_type (void) G_GNUC_CONST; +GType sorted_set_tests_sub_set_tests_type_get_type (void) G_GNUC_CONST ; SortedSetTestsSubSetTests* sorted_set_tests_sub_set_tests_new (SortedSetTests* test, SortedSetTestsSubSetTestsType type, gboolean strict); @@ -218,8 +218,10 @@ SortedSetTests* test, SortedSetTestsSubSetTestsType type, gboolean strict); -GType sorted_set_tests_sub_set_tests_get_type (void) G_GNUC_CONST; +GType sorted_set_tests_sub_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (SortedSetTestsSubSetTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); const gchar* sorted_set_tests_sub_set_tests_type_to_string (SortedSetTestsSubSetTestsType self); GeeTestCase* gee_test_case_construct (GType object_type, const gchar* name); @@ -250,11 +252,11 @@ void sorted_set_tests_sub_set_tests_test_boundaries (SortedSetTestsSubSetTests* self); static void _sorted_set_tests_sub_set_tests_test_boundaries_gee_test_case_test_method (gpointer self); static void sorted_set_tests_sub_set_tests_real_set_up (GeeTestCase* base); -void gee_test_case_set_up (GeeTestCase* self); static void sorted_set_tests_sub_set_tests_real_tear_down (GeeTestCase* base); -void gee_test_case_tear_down (GeeTestCase* self); static void sorted_set_tests_sub_set_tests_finalize (GObject * obj); +static GType sorted_set_tests_sub_set_tests_get_type_once (void); static void sorted_set_tests_finalize (GObject * obj); +static GType sorted_set_tests_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -1049,14 +1051,22 @@ } } +static GType +sorted_set_tests_sub_set_tests_type_get_type_once (void) +{ + static const GEnumValue values[] = {{SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_HEAD, "SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_HEAD", "head"}, {SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_TAIL, "SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_TAIL", "tail"}, {SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_SUB, "SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_SUB", "sub"}, {SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_EMPTY, "SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_EMPTY", "empty"}, {0, NULL, NULL}}; + GType sorted_set_tests_sub_set_tests_type_type_id; + sorted_set_tests_sub_set_tests_type_type_id = g_enum_register_static ("SortedSetTestsSubSetTestsType", values); + return sorted_set_tests_sub_set_tests_type_type_id; +} + GType sorted_set_tests_sub_set_tests_type_get_type (void) { static volatile gsize sorted_set_tests_sub_set_tests_type_type_id__volatile = 0; if (g_once_init_enter (&sorted_set_tests_sub_set_tests_type_type_id__volatile)) { - static const GEnumValue values[] = {{SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_HEAD, "SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_HEAD", "head"}, {SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_TAIL, "SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_TAIL", "tail"}, {SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_SUB, "SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_SUB", "sub"}, {SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_EMPTY, "SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_EMPTY", "empty"}, {0, NULL, NULL}}; GType sorted_set_tests_sub_set_tests_type_type_id; - sorted_set_tests_sub_set_tests_type_type_id = g_enum_register_static ("SortedSetTestsSubSetTestsType", values); + sorted_set_tests_sub_set_tests_type_type_id = sorted_set_tests_sub_set_tests_type_get_type_once (); g_once_init_leave (&sorted_set_tests_sub_set_tests_type_type_id__volatile, sorted_set_tests_sub_set_tests_type_type_id); } return sorted_set_tests_sub_set_tests_type_type_id__volatile; @@ -3922,15 +3932,23 @@ G_OBJECT_CLASS (sorted_set_tests_sub_set_tests_parent_class)->finalize (obj); } +static GType +sorted_set_tests_sub_set_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (SortedSetTestsSubSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sorted_set_tests_sub_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SortedSetTestsSubSetTests), 0, (GInstanceInitFunc) sorted_set_tests_sub_set_tests_instance_init, NULL }; + GType sorted_set_tests_sub_set_tests_type_id; + sorted_set_tests_sub_set_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "SortedSetTestsSubSetTests", &g_define_type_info, 0); + SortedSetTestsSubSetTests_private_offset = g_type_add_instance_private (sorted_set_tests_sub_set_tests_type_id, sizeof (SortedSetTestsSubSetTestsPrivate)); + return sorted_set_tests_sub_set_tests_type_id; +} + GType sorted_set_tests_sub_set_tests_get_type (void) { static volatile gsize sorted_set_tests_sub_set_tests_type_id__volatile = 0; if (g_once_init_enter (&sorted_set_tests_sub_set_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (SortedSetTestsSubSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sorted_set_tests_sub_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SortedSetTestsSubSetTests), 0, (GInstanceInitFunc) sorted_set_tests_sub_set_tests_instance_init, NULL }; GType sorted_set_tests_sub_set_tests_type_id; - sorted_set_tests_sub_set_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "SortedSetTestsSubSetTests", &g_define_type_info, 0); - SortedSetTestsSubSetTests_private_offset = g_type_add_instance_private (sorted_set_tests_sub_set_tests_type_id, sizeof (SortedSetTestsSubSetTestsPrivate)); + sorted_set_tests_sub_set_tests_type_id = sorted_set_tests_sub_set_tests_get_type_once (); g_once_init_leave (&sorted_set_tests_sub_set_tests_type_id__volatile, sorted_set_tests_sub_set_tests_type_id); } return sorted_set_tests_sub_set_tests_type_id__volatile; @@ -3960,15 +3978,23 @@ G_OBJECT_CLASS (sorted_set_tests_parent_class)->finalize (obj); } +static GType +sorted_set_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (SortedSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sorted_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SortedSetTests), 0, (GInstanceInitFunc) sorted_set_tests_instance_init, NULL }; + GType sorted_set_tests_type_id; + sorted_set_tests_type_id = g_type_register_static (TYPE_SET_TESTS, "SortedSetTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); + SortedSetTests_private_offset = g_type_add_instance_private (sorted_set_tests_type_id, sizeof (SortedSetTestsPrivate)); + return sorted_set_tests_type_id; +} + GType sorted_set_tests_get_type (void) { static volatile gsize sorted_set_tests_type_id__volatile = 0; if (g_once_init_enter (&sorted_set_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (SortedSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) sorted_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (SortedSetTests), 0, (GInstanceInitFunc) sorted_set_tests_instance_init, NULL }; GType sorted_set_tests_type_id; - sorted_set_tests_type_id = g_type_register_static (TYPE_SET_TESTS, "SortedSetTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT); - SortedSetTests_private_offset = g_type_add_instance_private (sorted_set_tests_type_id, sizeof (SortedSetTestsPrivate)); + sorted_set_tests_type_id = sorted_set_tests_get_type_once (); g_once_init_leave (&sorted_set_tests_type_id__volatile, sorted_set_tests_type_id); } return sorted_set_tests_type_id__volatile; @@ -3980,7 +4006,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/tests/testtreemap.c libgee-0.8-0.20.4/tests/testtreemap.c --- libgee-0.8-0.20.3/tests/testtreemap.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testtreemap.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testtreemap.c generated by valac 0.46.6, the Vala compiler +/* testtreemap.c generated by valac 0.52.0, the Vala compiler * generated from testtreemap.vala, do not modify */ /* testtreemap.vala @@ -141,22 +141,25 @@ static gpointer tree_map_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType map_tests_get_type (void) G_GNUC_CONST; +GType map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MapTests, g_object_unref) -GType gee_sorted_map_tests_get_type (void) G_GNUC_CONST; +GType gee_sorted_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeSortedMapTests, g_object_unref) -GType bidir_sorted_map_tests_get_type (void) G_GNUC_CONST; +GType bidir_sorted_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (BidirSortedMapTests, g_object_unref) -GType tree_map_tests_get_type (void) G_GNUC_CONST; +GType tree_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (TreeMapTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); TreeMapTests* tree_map_tests_new (void); TreeMapTests* tree_map_tests_construct (GType object_type); BidirSortedMapTests* bidir_sorted_map_tests_construct (GType object_type, const gchar* name); static void tree_map_tests_real_set_up (GeeTestCase* base); static void tree_map_tests_real_tear_down (GeeTestCase* base); +static GType tree_map_tests_get_type_once (void); TreeMapTests* tree_map_tests_construct (GType object_type) @@ -207,14 +210,22 @@ { } +static GType +tree_map_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (TreeMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tree_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TreeMapTests), 0, (GInstanceInitFunc) tree_map_tests_instance_init, NULL }; + GType tree_map_tests_type_id; + tree_map_tests_type_id = g_type_register_static (TYPE_BIDIR_SORTED_MAP_TESTS, "TreeMapTests", &g_define_type_info, 0); + return tree_map_tests_type_id; +} + GType tree_map_tests_get_type (void) { static volatile gsize tree_map_tests_type_id__volatile = 0; if (g_once_init_enter (&tree_map_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (TreeMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tree_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TreeMapTests), 0, (GInstanceInitFunc) tree_map_tests_instance_init, NULL }; GType tree_map_tests_type_id; - tree_map_tests_type_id = g_type_register_static (TYPE_BIDIR_SORTED_MAP_TESTS, "TreeMapTests", &g_define_type_info, 0); + tree_map_tests_type_id = tree_map_tests_get_type_once (); g_once_init_leave (&tree_map_tests_type_id__volatile, tree_map_tests_type_id); } return tree_map_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testtreemultimap.c libgee-0.8-0.20.4/tests/testtreemultimap.c --- libgee-0.8-0.20.3/tests/testtreemultimap.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testtreemultimap.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testtreemultimap.c generated by valac 0.46.6, the Vala compiler +/* testtreemultimap.c generated by valac 0.52.0, the Vala compiler * generated from testtreemultimap.vala, do not modify */ /* testtreemultimap.vala @@ -103,18 +103,21 @@ static gpointer tree_multi_map_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType multi_map_tests_get_type (void) G_GNUC_CONST; +GType multi_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MultiMapTests, g_object_unref) -GType tree_multi_map_tests_get_type (void) G_GNUC_CONST; +GType tree_multi_map_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (TreeMultiMapTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); TreeMultiMapTests* tree_multi_map_tests_new (void); TreeMultiMapTests* tree_multi_map_tests_construct (GType object_type); MultiMapTests* multi_map_tests_construct (GType object_type, const gchar* name); static void tree_multi_map_tests_real_set_up (GeeTestCase* base); static void tree_multi_map_tests_real_tear_down (GeeTestCase* base); +static GType tree_multi_map_tests_get_type_once (void); TreeMultiMapTests* tree_multi_map_tests_construct (GType object_type) @@ -165,14 +168,22 @@ { } +static GType +tree_multi_map_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (TreeMultiMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tree_multi_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TreeMultiMapTests), 0, (GInstanceInitFunc) tree_multi_map_tests_instance_init, NULL }; + GType tree_multi_map_tests_type_id; + tree_multi_map_tests_type_id = g_type_register_static (TYPE_MULTI_MAP_TESTS, "TreeMultiMapTests", &g_define_type_info, 0); + return tree_multi_map_tests_type_id; +} + GType tree_multi_map_tests_get_type (void) { static volatile gsize tree_multi_map_tests_type_id__volatile = 0; if (g_once_init_enter (&tree_multi_map_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (TreeMultiMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tree_multi_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TreeMultiMapTests), 0, (GInstanceInitFunc) tree_multi_map_tests_instance_init, NULL }; GType tree_multi_map_tests_type_id; - tree_multi_map_tests_type_id = g_type_register_static (TYPE_MULTI_MAP_TESTS, "TreeMultiMapTests", &g_define_type_info, 0); + tree_multi_map_tests_type_id = tree_multi_map_tests_get_type_once (); g_once_init_leave (&tree_multi_map_tests_type_id__volatile, tree_multi_map_tests_type_id); } return tree_multi_map_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testtreemultiset.c libgee-0.8-0.20.4/tests/testtreemultiset.c --- libgee-0.8-0.20.3/tests/testtreemultiset.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testtreemultiset.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testtreemultiset.c generated by valac 0.46.6, the Vala compiler +/* testtreemultiset.c generated by valac 0.52.0, the Vala compiler * generated from testtreemultiset.vala, do not modify */ /* testtreemultiset.vala @@ -120,20 +120,23 @@ static gpointer tree_multi_set_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType multi_set_tests_get_type (void) G_GNUC_CONST; +GType multi_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (MultiSetTests, g_object_unref) -GType tree_multi_set_tests_get_type (void) G_GNUC_CONST; +GType tree_multi_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (TreeMultiSetTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); TreeMultiSetTests* tree_multi_set_tests_new (void); TreeMultiSetTests* tree_multi_set_tests_construct (GType object_type); MultiSetTests* multi_set_tests_construct (GType object_type, const gchar* name); static void tree_multi_set_tests_real_set_up (GeeTestCase* base); static void tree_multi_set_tests_real_tear_down (GeeTestCase* base); +static GType tree_multi_set_tests_get_type_once (void); TreeMultiSetTests* tree_multi_set_tests_construct (GType object_type) @@ -184,14 +187,22 @@ { } +static GType +tree_multi_set_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (TreeMultiSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tree_multi_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TreeMultiSetTests), 0, (GInstanceInitFunc) tree_multi_set_tests_instance_init, NULL }; + GType tree_multi_set_tests_type_id; + tree_multi_set_tests_type_id = g_type_register_static (TYPE_MULTI_SET_TESTS, "TreeMultiSetTests", &g_define_type_info, 0); + return tree_multi_set_tests_type_id; +} + GType tree_multi_set_tests_get_type (void) { static volatile gsize tree_multi_set_tests_type_id__volatile = 0; if (g_once_init_enter (&tree_multi_set_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (TreeMultiSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tree_multi_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TreeMultiSetTests), 0, (GInstanceInitFunc) tree_multi_set_tests_instance_init, NULL }; GType tree_multi_set_tests_type_id; - tree_multi_set_tests_type_id = g_type_register_static (TYPE_MULTI_SET_TESTS, "TreeMultiSetTests", &g_define_type_info, 0); + tree_multi_set_tests_type_id = tree_multi_set_tests_get_type_once (); g_once_init_leave (&tree_multi_set_tests_type_id__volatile, tree_multi_set_tests_type_id); } return tree_multi_set_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testtreeset.c libgee-0.8-0.20.4/tests/testtreeset.c --- libgee-0.8-0.20.3/tests/testtreeset.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testtreeset.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testtreeset.c generated by valac 0.46.6, the Vala compiler +/* testtreeset.c generated by valac 0.52.0, the Vala compiler * generated from testtreeset.vala, do not modify */ /* testtreeset.vala @@ -168,18 +168,20 @@ static gpointer tree_set_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType set_tests_get_type (void) G_GNUC_CONST; +GType set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (SetTests, g_object_unref) -GType sorted_set_tests_get_type (void) G_GNUC_CONST; +GType sorted_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (SortedSetTests, g_object_unref) -GType bidir_sorted_set_tests_get_type (void) G_GNUC_CONST; +GType bidir_sorted_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (BidirSortedSetTests, g_object_unref) -GType tree_set_tests_get_type (void) G_GNUC_CONST; +GType tree_set_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (TreeSetTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); TreeSetTests* tree_set_tests_new (void); TreeSetTests* tree_set_tests_construct (GType object_type); BidirSortedSetTests* bidir_sorted_set_tests_construct (GType object_type, @@ -194,6 +196,7 @@ static void tree_set_tests_real_set_up (GeeTestCase* base); static void tree_set_tests_real_tear_down (GeeTestCase* base); void collection_tests_test_remove_all (CollectionTests* self); +static GType tree_set_tests_get_type_once (void); static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func); @@ -646,14 +649,22 @@ { } +static GType +tree_set_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (TreeSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tree_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TreeSetTests), 0, (GInstanceInitFunc) tree_set_tests_instance_init, NULL }; + GType tree_set_tests_type_id; + tree_set_tests_type_id = g_type_register_static (TYPE_BIDIR_SORTED_SET_TESTS, "TreeSetTests", &g_define_type_info, 0); + return tree_set_tests_type_id; +} + GType tree_set_tests_get_type (void) { static volatile gsize tree_set_tests_type_id__volatile = 0; if (g_once_init_enter (&tree_set_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (TreeSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tree_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TreeSetTests), 0, (GInstanceInitFunc) tree_set_tests_instance_init, NULL }; GType tree_set_tests_type_id; - tree_set_tests_type_id = g_type_register_static (TYPE_BIDIR_SORTED_SET_TESTS, "TreeSetTests", &g_define_type_info, 0); + tree_set_tests_type_id = tree_set_tests_get_type_once (); g_once_init_leave (&tree_set_tests_type_id__volatile, tree_set_tests_type_id); } return tree_set_tests_type_id__volatile; @@ -665,7 +676,7 @@ GDestroyNotify destroy_func) { if ((array != NULL) && (destroy_func != NULL)) { - int i; + gint i; for (i = 0; i < array_length; i = i + 1) { if (((gpointer*) array)[i] != NULL) { destroy_func (((gpointer*) array)[i]); diff -Nru libgee-0.8-0.20.3/tests/testunrolledlinkedlistasdeque.c libgee-0.8-0.20.4/tests/testunrolledlinkedlistasdeque.c --- libgee-0.8-0.20.3/tests/testunrolledlinkedlistasdeque.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testunrolledlinkedlistasdeque.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testunrolledlinkedlistasdeque.c generated by valac 0.46.6, the Vala compiler +/* testunrolledlinkedlistasdeque.c generated by valac 0.52.0, the Vala compiler * generated from testunrolledlinkedlistasdeque.vala, do not modify */ /* testunrolledLinkedListasdeque.vala @@ -145,16 +145,18 @@ static gpointer unrolled_linked_list_as_deque_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType queue_tests_get_type (void) G_GNUC_CONST; +GType queue_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (QueueTests, g_object_unref) -GType deque_tests_get_type (void) G_GNUC_CONST; +GType deque_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (DequeTests, g_object_unref) -GType unrolled_linked_list_as_deque_tests_get_type (void) G_GNUC_CONST; +GType unrolled_linked_list_as_deque_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (UnrolledLinkedListAsDequeTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); UnrolledLinkedListAsDequeTests* unrolled_linked_list_as_deque_tests_new (void); UnrolledLinkedListAsDequeTests* unrolled_linked_list_as_deque_tests_construct (GType object_type); DequeTests* deque_tests_construct (GType object_type, @@ -168,6 +170,7 @@ static void _unrolled_linked_list_as_deque_tests_test_selected_functions_gee_test_case_test_method (gpointer self); static void unrolled_linked_list_as_deque_tests_real_set_up (GeeTestCase* base); static void unrolled_linked_list_as_deque_tests_real_tear_down (GeeTestCase* base); +static GType unrolled_linked_list_as_deque_tests_get_type_once (void); static void _unrolled_linked_list_as_deque_tests_test_selected_functions_gee_test_case_test_method (gpointer self) @@ -245,14 +248,22 @@ { } +static GType +unrolled_linked_list_as_deque_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (UnrolledLinkedListAsDequeTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) unrolled_linked_list_as_deque_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (UnrolledLinkedListAsDequeTests), 0, (GInstanceInitFunc) unrolled_linked_list_as_deque_tests_instance_init, NULL }; + GType unrolled_linked_list_as_deque_tests_type_id; + unrolled_linked_list_as_deque_tests_type_id = g_type_register_static (TYPE_DEQUE_TESTS, "UnrolledLinkedListAsDequeTests", &g_define_type_info, 0); + return unrolled_linked_list_as_deque_tests_type_id; +} + GType unrolled_linked_list_as_deque_tests_get_type (void) { static volatile gsize unrolled_linked_list_as_deque_tests_type_id__volatile = 0; if (g_once_init_enter (&unrolled_linked_list_as_deque_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (UnrolledLinkedListAsDequeTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) unrolled_linked_list_as_deque_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (UnrolledLinkedListAsDequeTests), 0, (GInstanceInitFunc) unrolled_linked_list_as_deque_tests_instance_init, NULL }; GType unrolled_linked_list_as_deque_tests_type_id; - unrolled_linked_list_as_deque_tests_type_id = g_type_register_static (TYPE_DEQUE_TESTS, "UnrolledLinkedListAsDequeTests", &g_define_type_info, 0); + unrolled_linked_list_as_deque_tests_type_id = unrolled_linked_list_as_deque_tests_get_type_once (); g_once_init_leave (&unrolled_linked_list_as_deque_tests_type_id__volatile, unrolled_linked_list_as_deque_tests_type_id); } return unrolled_linked_list_as_deque_tests_type_id__volatile; diff -Nru libgee-0.8-0.20.3/tests/testunrolledlinkedlist.c libgee-0.8-0.20.4/tests/testunrolledlinkedlist.c --- libgee-0.8-0.20.3/tests/testunrolledlinkedlist.c 2020-02-09 19:03:31.000000000 +0000 +++ libgee-0.8-0.20.4/tests/testunrolledlinkedlist.c 2021-03-17 19:58:53.000000000 +0000 @@ -1,4 +1,4 @@ -/* testunrolledlinkedlist.c generated by valac 0.46.6, the Vala compiler +/* testunrolledlinkedlist.c generated by valac 0.52.0, the Vala compiler * generated from testunrolledlinkedlist.vala, do not modify */ /* testunrolledLinkedList.vala @@ -149,16 +149,18 @@ static gpointer unrolled_linked_list_tests_parent_class = NULL; -GType gee_test_case_get_type (void) G_GNUC_CONST; +GType gee_test_case_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref) -GType collection_tests_get_type (void) G_GNUC_CONST; +GType collection_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (CollectionTests, g_object_unref) -GType list_tests_get_type (void) G_GNUC_CONST; +GType list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (ListTests, g_object_unref) -GType bidir_list_tests_get_type (void) G_GNUC_CONST; +GType bidir_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (BidirListTests, g_object_unref) -GType unrolled_linked_list_tests_get_type (void) G_GNUC_CONST; +GType unrolled_linked_list_tests_get_type (void) G_GNUC_CONST ; G_DEFINE_AUTOPTR_CLEANUP_FUNC (UnrolledLinkedListTests, g_object_unref) +void gee_test_case_set_up (GeeTestCase* self); +void gee_test_case_tear_down (GeeTestCase* self); UnrolledLinkedListTests* unrolled_linked_list_tests_new (void); UnrolledLinkedListTests* unrolled_linked_list_tests_construct (GType object_type); BidirListTests* bidir_list_tests_construct (GType object_type, @@ -172,6 +174,7 @@ static void _unrolled_linked_list_tests_test_sort_gee_test_case_test_method (gpointer self); static void unrolled_linked_list_tests_real_set_up (GeeTestCase* base); static void unrolled_linked_list_tests_real_tear_down (GeeTestCase* base); +static GType unrolled_linked_list_tests_get_type_once (void); static void _unrolled_linked_list_tests_test_sort_gee_test_case_test_method (gpointer self) @@ -334,14 +337,22 @@ { } +static GType +unrolled_linked_list_tests_get_type_once (void) +{ + static const GTypeInfo g_define_type_info = { sizeof (UnrolledLinkedListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) unrolled_linked_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (UnrolledLinkedListTests), 0, (GInstanceInitFunc) unrolled_linked_list_tests_instance_init, NULL }; + GType unrolled_linked_list_tests_type_id; + unrolled_linked_list_tests_type_id = g_type_register_static (TYPE_BIDIR_LIST_TESTS, "UnrolledLinkedListTests", &g_define_type_info, 0); + return unrolled_linked_list_tests_type_id; +} + GType unrolled_linked_list_tests_get_type (void) { static volatile gsize unrolled_linked_list_tests_type_id__volatile = 0; if (g_once_init_enter (&unrolled_linked_list_tests_type_id__volatile)) { - static const GTypeInfo g_define_type_info = { sizeof (UnrolledLinkedListTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) unrolled_linked_list_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (UnrolledLinkedListTests), 0, (GInstanceInitFunc) unrolled_linked_list_tests_instance_init, NULL }; GType unrolled_linked_list_tests_type_id; - unrolled_linked_list_tests_type_id = g_type_register_static (TYPE_BIDIR_LIST_TESTS, "UnrolledLinkedListTests", &g_define_type_info, 0); + unrolled_linked_list_tests_type_id = unrolled_linked_list_tests_get_type_once (); g_once_init_leave (&unrolled_linked_list_tests_type_id__volatile, unrolled_linked_list_tests_type_id); } return unrolled_linked_list_tests_type_id__volatile;