1 /* treemap.c generated by valac 0.18.0, the Vala compiler
2 * generated from treemap.vala, do not modify */
6 * Copyright (C) 2009-2011 Maciej Piechotka
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 * Maciej Piechotka <uzytkownik2@gmail.com>
27 #include <glib-object.h>
28 #include <gobject/gvaluecollector.h>
31 #define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ())
32 #define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable))
33 #define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE))
34 #define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface))
36 typedef struct _GeeTraversable GeeTraversable;
37 typedef struct _GeeTraversableIface GeeTraversableIface;
39 #define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ())
41 #define GEE_TYPE_LAZY (gee_lazy_get_type ())
42 #define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy))
43 #define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass))
44 #define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY))
45 #define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY))
46 #define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass))
48 typedef struct _GeeLazy GeeLazy;
49 typedef struct _GeeLazyClass GeeLazyClass;
51 #define GEE_TYPE_ITERATOR (gee_iterator_get_type ())
52 #define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator))
53 #define GEE_IS_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERATOR))
54 #define GEE_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERATOR, GeeIteratorIface))
56 typedef struct _GeeIterator GeeIterator;
57 typedef struct _GeeIteratorIface GeeIteratorIface;
59 #define GEE_TYPE_ITERABLE (gee_iterable_get_type ())
60 #define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable))
61 #define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE))
62 #define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface))
64 typedef struct _GeeIterable GeeIterable;
65 typedef struct _GeeIterableIface GeeIterableIface;
67 #define GEE_TYPE_MAP (gee_map_get_type ())
68 #define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap))
69 #define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP))
70 #define GEE_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP, GeeMapIface))
72 typedef struct _GeeMap GeeMap;
73 typedef struct _GeeMapIface GeeMapIface;
75 #define GEE_TYPE_MAP_ITERATOR (gee_map_iterator_get_type ())
76 #define GEE_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIterator))
77 #define GEE_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP_ITERATOR))
78 #define GEE_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_MAP_ITERATOR, GeeMapIteratorIface))
80 typedef struct _GeeMapIterator GeeMapIterator;
81 typedef struct _GeeMapIteratorIface GeeMapIteratorIface;
83 #define GEE_TYPE_COLLECTION (gee_collection_get_type ())
84 #define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection))
85 #define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION))
86 #define GEE_COLLECTION_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_COLLECTION, GeeCollectionIface))
88 typedef struct _GeeCollection GeeCollection;
89 typedef struct _GeeCollectionIface GeeCollectionIface;
91 #define GEE_TYPE_SET (gee_set_get_type ())
92 #define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet))
93 #define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET))
94 #define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface))
96 typedef struct _GeeSet GeeSet;
97 typedef struct _GeeSetIface GeeSetIface;
99 #define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ())
100 #define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry))
101 #define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass))
102 #define GEE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_MAP_TYPE_ENTRY))
103 #define GEE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_MAP_TYPE_ENTRY))
104 #define GEE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass))
106 typedef struct _GeeMapEntry GeeMapEntry;
107 typedef struct _GeeMapEntryClass GeeMapEntryClass;
109 #define GEE_TYPE_ABSTRACT_MAP (gee_abstract_map_get_type ())
110 #define GEE_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMap))
111 #define GEE_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass))
112 #define GEE_IS_ABSTRACT_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_MAP))
113 #define GEE_IS_ABSTRACT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_MAP))
114 #define GEE_ABSTRACT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_MAP, GeeAbstractMapClass))
116 typedef struct _GeeAbstractMap GeeAbstractMap;
117 typedef struct _GeeAbstractMapClass GeeAbstractMapClass;
118 typedef struct _GeeAbstractMapPrivate GeeAbstractMapPrivate;
120 #define GEE_TYPE_SORTED_MAP (gee_sorted_map_get_type ())
121 #define GEE_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMap))
122 #define GEE_IS_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_MAP))
123 #define GEE_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMapIface))
125 typedef struct _GeeSortedMap GeeSortedMap;
126 typedef struct _GeeSortedMapIface GeeSortedMapIface;
128 #define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ())
129 #define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet))
130 #define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET))
131 #define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface))
133 typedef struct _GeeSortedSet GeeSortedSet;
134 typedef struct _GeeSortedSetIface GeeSortedSetIface;
136 #define GEE_TYPE_ABSTRACT_SORTED_MAP (gee_abstract_sorted_map_get_type ())
137 #define GEE_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMap))
138 #define GEE_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass))
139 #define GEE_IS_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP))
140 #define GEE_IS_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP))
141 #define GEE_ABSTRACT_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass))
143 typedef struct _GeeAbstractSortedMap GeeAbstractSortedMap;
144 typedef struct _GeeAbstractSortedMapClass GeeAbstractSortedMapClass;
145 typedef struct _GeeAbstractSortedMapPrivate GeeAbstractSortedMapPrivate;
147 #define GEE_TYPE_BIDIR_SORTED_MAP (gee_bidir_sorted_map_get_type ())
148 #define GEE_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMap))
149 #define GEE_IS_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_MAP))
150 #define GEE_BIDIR_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMapIface))
152 typedef struct _GeeBidirSortedMap GeeBidirSortedMap;
153 typedef struct _GeeBidirSortedMapIface GeeBidirSortedMapIface;
155 #define GEE_TYPE_BIDIR_MAP_ITERATOR (gee_bidir_map_iterator_get_type ())
156 #define GEE_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIterator))
157 #define GEE_IS_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR))
158 #define GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIteratorIface))
160 typedef struct _GeeBidirMapIterator GeeBidirMapIterator;
161 typedef struct _GeeBidirMapIteratorIface GeeBidirMapIteratorIface;
163 #define GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP (gee_abstract_bidir_sorted_map_get_type ())
164 #define GEE_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMap))
165 #define GEE_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass))
166 #define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP))
167 #define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP))
168 #define GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass))
170 typedef struct _GeeAbstractBidirSortedMap GeeAbstractBidirSortedMap;
171 typedef struct _GeeAbstractBidirSortedMapClass GeeAbstractBidirSortedMapClass;
172 typedef struct _GeeAbstractBidirSortedMapPrivate GeeAbstractBidirSortedMapPrivate;
174 #define GEE_TYPE_TREE_MAP (gee_tree_map_get_type ())
175 #define GEE_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_MAP, GeeTreeMap))
176 #define GEE_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_MAP, GeeTreeMapClass))
177 #define GEE_IS_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TREE_MAP))
178 #define GEE_IS_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TREE_MAP))
179 #define GEE_TREE_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TREE_MAP, GeeTreeMapClass))
181 typedef struct _GeeTreeMap GeeTreeMap;
182 typedef struct _GeeTreeMapClass GeeTreeMapClass;
183 typedef struct _GeeTreeMapPrivate GeeTreeMapPrivate;
184 typedef struct _GeeTreeMapNode GeeTreeMapNode;
186 #define GEE_TREE_MAP_TYPE_RANGE_TYPE (gee_tree_map_range_type_get_type ())
187 #define _gee_tree_map_node_free0(var) ((var == NULL) ? NULL : (var = (gee_tree_map_node_free (var), NULL)))
189 #define GEE_TREE_MAP_NODE_TYPE_COLOR (gee_tree_map_node_color_get_type ())
191 #define GEE_TREE_MAP_TYPE_RANGE (gee_tree_map_range_get_type ())
192 #define GEE_TREE_MAP_RANGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_RANGE, GeeTreeMapRange))
193 #define GEE_TREE_MAP_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_RANGE, GeeTreeMapRangeClass))
194 #define GEE_TREE_MAP_IS_RANGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_RANGE))
195 #define GEE_TREE_MAP_IS_RANGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_RANGE))
196 #define GEE_TREE_MAP_RANGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_RANGE, GeeTreeMapRangeClass))
198 typedef struct _GeeTreeMapRange GeeTreeMapRange;
199 typedef struct _GeeTreeMapRangeClass GeeTreeMapRangeClass;
201 #define GEE_TREE_MAP_TYPE_SUB_MAP (gee_tree_map_sub_map_get_type ())
202 #define GEE_TREE_MAP_SUB_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_SUB_MAP, GeeTreeMapSubMap))
203 #define GEE_TREE_MAP_SUB_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_SUB_MAP, GeeTreeMapSubMapClass))
204 #define GEE_TREE_MAP_IS_SUB_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_SUB_MAP))
205 #define GEE_TREE_MAP_IS_SUB_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_SUB_MAP))
206 #define GEE_TREE_MAP_SUB_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_SUB_MAP, GeeTreeMapSubMapClass))
208 typedef struct _GeeTreeMapSubMap GeeTreeMapSubMap;
209 typedef struct _GeeTreeMapSubMapClass GeeTreeMapSubMapClass;
210 #define _gee_tree_map_range_unref0(var) ((var == NULL) ? NULL : (var = (gee_tree_map_range_unref (var), NULL)))
212 #define GEE_TREE_MAP_TYPE_NODE_ITERATOR (gee_tree_map_node_iterator_get_type ())
213 #define GEE_TREE_MAP_NODE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_NODE_ITERATOR, GeeTreeMapNodeIterator))
214 #define GEE_TREE_MAP_NODE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_NODE_ITERATOR, GeeTreeMapNodeIteratorClass))
215 #define GEE_TREE_MAP_IS_NODE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_NODE_ITERATOR))
216 #define GEE_TREE_MAP_IS_NODE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_NODE_ITERATOR))
217 #define GEE_TREE_MAP_NODE_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_NODE_ITERATOR, GeeTreeMapNodeIteratorClass))
219 typedef struct _GeeTreeMapNodeIterator GeeTreeMapNodeIterator;
220 typedef struct _GeeTreeMapNodeIteratorClass GeeTreeMapNodeIteratorClass;
222 #define GEE_TREE_MAP_TYPE_MAP_ITERATOR (gee_tree_map_map_iterator_get_type ())
223 #define GEE_TREE_MAP_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_MAP_ITERATOR, GeeTreeMapMapIterator))
224 #define GEE_TREE_MAP_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_MAP_ITERATOR, GeeTreeMapMapIteratorClass))
225 #define GEE_TREE_MAP_IS_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_MAP_ITERATOR))
226 #define GEE_TREE_MAP_IS_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_MAP_ITERATOR))
227 #define GEE_TREE_MAP_MAP_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_MAP_ITERATOR, GeeTreeMapMapIteratorClass))
229 typedef struct _GeeTreeMapMapIterator GeeTreeMapMapIterator;
230 typedef struct _GeeTreeMapMapIteratorClass GeeTreeMapMapIteratorClass;
232 #define GEE_TYPE_ABSTRACT_COLLECTION (gee_abstract_collection_get_type ())
233 #define GEE_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollection))
234 #define GEE_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass))
235 #define GEE_IS_ABSTRACT_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_COLLECTION))
236 #define GEE_IS_ABSTRACT_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_COLLECTION))
237 #define GEE_ABSTRACT_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_COLLECTION, GeeAbstractCollectionClass))
239 typedef struct _GeeAbstractCollection GeeAbstractCollection;
240 typedef struct _GeeAbstractCollectionClass GeeAbstractCollectionClass;
242 #define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ())
243 #define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet))
244 #define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass))
245 #define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET))
246 #define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET))
247 #define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass))
249 typedef struct _GeeAbstractSet GeeAbstractSet;
250 typedef struct _GeeAbstractSetClass GeeAbstractSetClass;
252 #define GEE_TYPE_ABSTRACT_SORTED_SET (gee_abstract_sorted_set_get_type ())
253 #define GEE_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet))
254 #define GEE_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass))
255 #define GEE_IS_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_SET))
256 #define GEE_IS_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_SET))
257 #define GEE_ABSTRACT_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass))
259 typedef struct _GeeAbstractSortedSet GeeAbstractSortedSet;
260 typedef struct _GeeAbstractSortedSetClass GeeAbstractSortedSetClass;
262 #define GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET (gee_abstract_bidir_sorted_set_get_type ())
263 #define GEE_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSet))
264 #define GEE_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass))
265 #define GEE_IS_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET))
266 #define GEE_IS_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET))
267 #define GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass))
269 typedef struct _GeeAbstractBidirSortedSet GeeAbstractBidirSortedSet;
270 typedef struct _GeeAbstractBidirSortedSetClass GeeAbstractBidirSortedSetClass;
272 #define GEE_TREE_MAP_TYPE_KEY_SET (gee_tree_map_key_set_get_type ())
273 #define GEE_TREE_MAP_KEY_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_KEY_SET, GeeTreeMapKeySet))
274 #define GEE_TREE_MAP_KEY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_KEY_SET, GeeTreeMapKeySetClass))
275 #define GEE_TREE_MAP_IS_KEY_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_KEY_SET))
276 #define GEE_TREE_MAP_IS_KEY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_KEY_SET))
277 #define GEE_TREE_MAP_KEY_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_KEY_SET, GeeTreeMapKeySetClass))
279 typedef struct _GeeTreeMapKeySet GeeTreeMapKeySet;
280 typedef struct _GeeTreeMapKeySetClass GeeTreeMapKeySetClass;
281 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
283 #define GEE_TREE_MAP_TYPE_VALUE_COLLECTION (gee_tree_map_value_collection_get_type ())
284 #define GEE_TREE_MAP_VALUE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_VALUE_COLLECTION, GeeTreeMapValueCollection))
285 #define GEE_TREE_MAP_VALUE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_VALUE_COLLECTION, GeeTreeMapValueCollectionClass))
286 #define GEE_TREE_MAP_IS_VALUE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_VALUE_COLLECTION))
287 #define GEE_TREE_MAP_IS_VALUE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_VALUE_COLLECTION))
288 #define GEE_TREE_MAP_VALUE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_VALUE_COLLECTION, GeeTreeMapValueCollectionClass))
290 typedef struct _GeeTreeMapValueCollection GeeTreeMapValueCollection;
291 typedef struct _GeeTreeMapValueCollectionClass GeeTreeMapValueCollectionClass;
293 #define GEE_TREE_MAP_TYPE_ENTRY_SET (gee_tree_map_entry_set_get_type ())
294 #define GEE_TREE_MAP_ENTRY_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_ENTRY_SET, GeeTreeMapEntrySet))
295 #define GEE_TREE_MAP_ENTRY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_ENTRY_SET, GeeTreeMapEntrySetClass))
296 #define GEE_TREE_MAP_IS_ENTRY_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_ENTRY_SET))
297 #define GEE_TREE_MAP_IS_ENTRY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_ENTRY_SET))
298 #define GEE_TREE_MAP_ENTRY_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_ENTRY_SET, GeeTreeMapEntrySetClass))
300 typedef struct _GeeTreeMapEntrySet GeeTreeMapEntrySet;
301 typedef struct _GeeTreeMapEntrySetClass GeeTreeMapEntrySetClass;
302 typedef struct _GeeMapEntryPrivate GeeMapEntryPrivate;
304 #define GEE_TREE_MAP_TYPE_ENTRY (gee_tree_map_entry_get_type ())
305 #define GEE_TREE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_ENTRY, GeeTreeMapEntry))
306 #define GEE_TREE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_ENTRY, GeeTreeMapEntryClass))
307 #define GEE_TREE_MAP_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_ENTRY))
308 #define GEE_TREE_MAP_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_ENTRY))
309 #define GEE_TREE_MAP_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_ENTRY, GeeTreeMapEntryClass))
311 typedef struct _GeeTreeMapEntry GeeTreeMapEntry;
312 typedef struct _GeeTreeMapEntryClass GeeTreeMapEntryClass;
313 typedef struct _GeeTreeMapEntryPrivate GeeTreeMapEntryPrivate;
314 typedef struct _GeeTreeMapRangePrivate GeeTreeMapRangePrivate;
315 #define _k_destroy_func0(var) (((var == NULL) || (k_destroy_func == NULL)) ? NULL : (var = (k_destroy_func (var), NULL)))
316 typedef struct _GeeTreeMapParamSpecRange GeeTreeMapParamSpecRange;
317 typedef struct _GeeTreeMapSubMapPrivate GeeTreeMapSubMapPrivate;
319 #define GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR (gee_tree_map_sub_node_iterator_get_type ())
320 #define GEE_TREE_MAP_SUB_NODE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, GeeTreeMapSubNodeIterator))
321 #define GEE_TREE_MAP_SUB_NODE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, GeeTreeMapSubNodeIteratorClass))
322 #define GEE_TREE_MAP_IS_SUB_NODE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR))
323 #define GEE_TREE_MAP_IS_SUB_NODE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR))
324 #define GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, GeeTreeMapSubNodeIteratorClass))
326 typedef struct _GeeTreeMapSubNodeIterator GeeTreeMapSubNodeIterator;
327 typedef struct _GeeTreeMapSubNodeIteratorClass GeeTreeMapSubNodeIteratorClass;
329 #define GEE_TREE_MAP_TYPE_SUB_MAP_ITERATOR (gee_tree_map_sub_map_iterator_get_type ())
330 #define GEE_TREE_MAP_SUB_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_SUB_MAP_ITERATOR, GeeTreeMapSubMapIterator))
331 #define GEE_TREE_MAP_SUB_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_SUB_MAP_ITERATOR, GeeTreeMapSubMapIteratorClass))
332 #define GEE_TREE_MAP_IS_SUB_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_SUB_MAP_ITERATOR))
333 #define GEE_TREE_MAP_IS_SUB_MAP_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_SUB_MAP_ITERATOR))
334 #define GEE_TREE_MAP_SUB_MAP_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_SUB_MAP_ITERATOR, GeeTreeMapSubMapIteratorClass))
336 typedef struct _GeeTreeMapSubMapIterator GeeTreeMapSubMapIterator;
337 typedef struct _GeeTreeMapSubMapIteratorClass GeeTreeMapSubMapIteratorClass;
339 #define GEE_TREE_MAP_TYPE_SUB_KEY_SET (gee_tree_map_sub_key_set_get_type ())
340 #define GEE_TREE_MAP_SUB_KEY_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_SUB_KEY_SET, GeeTreeMapSubKeySet))
341 #define GEE_TREE_MAP_SUB_KEY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_SUB_KEY_SET, GeeTreeMapSubKeySetClass))
342 #define GEE_TREE_MAP_IS_SUB_KEY_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_SUB_KEY_SET))
343 #define GEE_TREE_MAP_IS_SUB_KEY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_SUB_KEY_SET))
344 #define GEE_TREE_MAP_SUB_KEY_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_SUB_KEY_SET, GeeTreeMapSubKeySetClass))
346 typedef struct _GeeTreeMapSubKeySet GeeTreeMapSubKeySet;
347 typedef struct _GeeTreeMapSubKeySetClass GeeTreeMapSubKeySetClass;
349 #define GEE_TREE_MAP_TYPE_SUB_VALUE_COLLECTION (gee_tree_map_sub_value_collection_get_type ())
350 #define GEE_TREE_MAP_SUB_VALUE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_SUB_VALUE_COLLECTION, GeeTreeMapSubValueCollection))
351 #define GEE_TREE_MAP_SUB_VALUE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_SUB_VALUE_COLLECTION, GeeTreeMapSubValueCollectionClass))
352 #define GEE_TREE_MAP_IS_SUB_VALUE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_SUB_VALUE_COLLECTION))
353 #define GEE_TREE_MAP_IS_SUB_VALUE_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_SUB_VALUE_COLLECTION))
354 #define GEE_TREE_MAP_SUB_VALUE_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_SUB_VALUE_COLLECTION, GeeTreeMapSubValueCollectionClass))
356 typedef struct _GeeTreeMapSubValueCollection GeeTreeMapSubValueCollection;
357 typedef struct _GeeTreeMapSubValueCollectionClass GeeTreeMapSubValueCollectionClass;
359 #define GEE_TREE_MAP_TYPE_SUB_ENTRY_SET (gee_tree_map_sub_entry_set_get_type ())
360 #define GEE_TREE_MAP_SUB_ENTRY_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_SUB_ENTRY_SET, GeeTreeMapSubEntrySet))
361 #define GEE_TREE_MAP_SUB_ENTRY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_SUB_ENTRY_SET, GeeTreeMapSubEntrySetClass))
362 #define GEE_TREE_MAP_IS_SUB_ENTRY_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_SUB_ENTRY_SET))
363 #define GEE_TREE_MAP_IS_SUB_ENTRY_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_SUB_ENTRY_SET))
364 #define GEE_TREE_MAP_SUB_ENTRY_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_SUB_ENTRY_SET, GeeTreeMapSubEntrySetClass))
366 typedef struct _GeeTreeMapSubEntrySet GeeTreeMapSubEntrySet;
367 typedef struct _GeeTreeMapSubEntrySetClass GeeTreeMapSubEntrySetClass;
368 typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate;
369 typedef struct _GeeAbstractSetPrivate GeeAbstractSetPrivate;
370 typedef struct _GeeAbstractSortedSetPrivate GeeAbstractSortedSetPrivate;
372 #define GEE_TYPE_BIDIR_SORTED_SET (gee_bidir_sorted_set_get_type ())
373 #define GEE_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSet))
374 #define GEE_IS_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_SET))
375 #define GEE_BIDIR_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSetIface))
377 typedef struct _GeeBidirSortedSet GeeBidirSortedSet;
378 typedef struct _GeeBidirSortedSetIface GeeBidirSortedSetIface;
380 #define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ())
381 #define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator))
382 #define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR))
383 #define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface))
385 typedef struct _GeeBidirIterator GeeBidirIterator;
386 typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface;
387 typedef struct _GeeAbstractBidirSortedSetPrivate GeeAbstractBidirSortedSetPrivate;
388 typedef struct _GeeTreeMapKeySetPrivate GeeTreeMapKeySetPrivate;
390 #define GEE_TREE_MAP_TYPE_KEY_ITERATOR (gee_tree_map_key_iterator_get_type ())
391 #define GEE_TREE_MAP_KEY_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_KEY_ITERATOR, GeeTreeMapKeyIterator))
392 #define GEE_TREE_MAP_KEY_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_KEY_ITERATOR, GeeTreeMapKeyIteratorClass))
393 #define GEE_TREE_MAP_IS_KEY_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_KEY_ITERATOR))
394 #define GEE_TREE_MAP_IS_KEY_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_KEY_ITERATOR))
395 #define GEE_TREE_MAP_KEY_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_KEY_ITERATOR, GeeTreeMapKeyIteratorClass))
397 typedef struct _GeeTreeMapKeyIterator GeeTreeMapKeyIterator;
398 typedef struct _GeeTreeMapKeyIteratorClass GeeTreeMapKeyIteratorClass;
399 typedef struct _GeeTreeMapSubKeySetPrivate GeeTreeMapSubKeySetPrivate;
401 #define GEE_TREE_MAP_TYPE_SUB_KEY_ITERATOR (gee_tree_map_sub_key_iterator_get_type ())
402 #define GEE_TREE_MAP_SUB_KEY_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_SUB_KEY_ITERATOR, GeeTreeMapSubKeyIterator))
403 #define GEE_TREE_MAP_SUB_KEY_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_SUB_KEY_ITERATOR, GeeTreeMapSubKeyIteratorClass))
404 #define GEE_TREE_MAP_IS_SUB_KEY_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_SUB_KEY_ITERATOR))
405 #define GEE_TREE_MAP_IS_SUB_KEY_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_SUB_KEY_ITERATOR))
406 #define GEE_TREE_MAP_SUB_KEY_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_SUB_KEY_ITERATOR, GeeTreeMapSubKeyIteratorClass))
408 typedef struct _GeeTreeMapSubKeyIterator GeeTreeMapSubKeyIterator;
409 typedef struct _GeeTreeMapSubKeyIteratorClass GeeTreeMapSubKeyIteratorClass;
410 typedef struct _GeeTreeMapValueCollectionPrivate GeeTreeMapValueCollectionPrivate;
412 #define GEE_TREE_MAP_TYPE_VALUE_ITERATOR (gee_tree_map_value_iterator_get_type ())
413 #define GEE_TREE_MAP_VALUE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_VALUE_ITERATOR, GeeTreeMapValueIterator))
414 #define GEE_TREE_MAP_VALUE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_VALUE_ITERATOR, GeeTreeMapValueIteratorClass))
415 #define GEE_TREE_MAP_IS_VALUE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_VALUE_ITERATOR))
416 #define GEE_TREE_MAP_IS_VALUE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_VALUE_ITERATOR))
417 #define GEE_TREE_MAP_VALUE_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_VALUE_ITERATOR, GeeTreeMapValueIteratorClass))
419 typedef struct _GeeTreeMapValueIterator GeeTreeMapValueIterator;
420 typedef struct _GeeTreeMapValueIteratorClass GeeTreeMapValueIteratorClass;
421 typedef struct _GeeTreeMapSubValueCollectionPrivate GeeTreeMapSubValueCollectionPrivate;
423 #define GEE_TREE_MAP_TYPE_SUB_VALUE_ITERATOR (gee_tree_map_sub_value_iterator_get_type ())
424 #define GEE_TREE_MAP_SUB_VALUE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_SUB_VALUE_ITERATOR, GeeTreeMapSubValueIterator))
425 #define GEE_TREE_MAP_SUB_VALUE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_SUB_VALUE_ITERATOR, GeeTreeMapSubValueIteratorClass))
426 #define GEE_TREE_MAP_IS_SUB_VALUE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_SUB_VALUE_ITERATOR))
427 #define GEE_TREE_MAP_IS_SUB_VALUE_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_SUB_VALUE_ITERATOR))
428 #define GEE_TREE_MAP_SUB_VALUE_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_SUB_VALUE_ITERATOR, GeeTreeMapSubValueIteratorClass))
430 typedef struct _GeeTreeMapSubValueIterator GeeTreeMapSubValueIterator;
431 typedef struct _GeeTreeMapSubValueIteratorClass GeeTreeMapSubValueIteratorClass;
432 typedef struct _GeeTreeMapEntrySetPrivate GeeTreeMapEntrySetPrivate;
434 #define GEE_TREE_MAP_TYPE_ENTRY_ITERATOR (gee_tree_map_entry_iterator_get_type ())
435 #define GEE_TREE_MAP_ENTRY_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_ENTRY_ITERATOR, GeeTreeMapEntryIterator))
436 #define GEE_TREE_MAP_ENTRY_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_ENTRY_ITERATOR, GeeTreeMapEntryIteratorClass))
437 #define GEE_TREE_MAP_IS_ENTRY_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_ENTRY_ITERATOR))
438 #define GEE_TREE_MAP_IS_ENTRY_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_ENTRY_ITERATOR))
439 #define GEE_TREE_MAP_ENTRY_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_ENTRY_ITERATOR, GeeTreeMapEntryIteratorClass))
441 typedef struct _GeeTreeMapEntryIterator GeeTreeMapEntryIterator;
442 typedef struct _GeeTreeMapEntryIteratorClass GeeTreeMapEntryIteratorClass;
443 typedef struct _GeeTreeMapSubEntrySetPrivate GeeTreeMapSubEntrySetPrivate;
445 #define GEE_TREE_MAP_TYPE_SUB_ENTRY_ITERATOR (gee_tree_map_sub_entry_iterator_get_type ())
446 #define GEE_TREE_MAP_SUB_ENTRY_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TREE_MAP_TYPE_SUB_ENTRY_ITERATOR, GeeTreeMapSubEntryIterator))
447 #define GEE_TREE_MAP_SUB_ENTRY_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TREE_MAP_TYPE_SUB_ENTRY_ITERATOR, GeeTreeMapSubEntryIteratorClass))
448 #define GEE_TREE_MAP_IS_SUB_ENTRY_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TREE_MAP_TYPE_SUB_ENTRY_ITERATOR))
449 #define GEE_TREE_MAP_IS_SUB_ENTRY_ITERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TREE_MAP_TYPE_SUB_ENTRY_ITERATOR))
450 #define GEE_TREE_MAP_SUB_ENTRY_ITERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TREE_MAP_TYPE_SUB_ENTRY_ITERATOR, GeeTreeMapSubEntryIteratorClass))
452 typedef struct _GeeTreeMapSubEntryIterator GeeTreeMapSubEntryIterator;
453 typedef struct _GeeTreeMapSubEntryIteratorClass GeeTreeMapSubEntryIteratorClass;
454 typedef struct _GeeTreeMapNodeIteratorPrivate GeeTreeMapNodeIteratorPrivate;
455 typedef struct _GeeTreeMapSubNodeIteratorPrivate GeeTreeMapSubNodeIteratorPrivate;
456 typedef struct _GeeTreeMapKeyIteratorPrivate GeeTreeMapKeyIteratorPrivate;
457 typedef struct _GeeTreeMapSubKeyIteratorPrivate GeeTreeMapSubKeyIteratorPrivate;
458 typedef struct _GeeTreeMapValueIteratorPrivate GeeTreeMapValueIteratorPrivate;
459 typedef struct _GeeTreeMapSubValueIteratorPrivate GeeTreeMapSubValueIteratorPrivate;
460 typedef struct _GeeTreeMapEntryIteratorPrivate GeeTreeMapEntryIteratorPrivate;
461 typedef struct _GeeTreeMapSubEntryIteratorPrivate GeeTreeMapSubEntryIteratorPrivate;
462 typedef struct _GeeTreeMapMapIteratorPrivate GeeTreeMapMapIteratorPrivate;
463 typedef struct _GeeTreeMapSubMapIteratorPrivate GeeTreeMapSubMapIteratorPrivate;
464 #define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
466 typedef gboolean (*GeeForallFunc) (gpointer g, void* user_data);
468 GEE_TRAVERSABLE_STREAM_YIELD,
469 GEE_TRAVERSABLE_STREAM_CONTINUE,
470 GEE_TRAVERSABLE_STREAM_END
471 } GeeTraversableStream;
473 typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy** lazy, void* user_data);
474 struct _GeeIteratorIface {
475 GTypeInterface parent_iface;
476 gboolean (*next) (GeeIterator* self);
477 gboolean (*has_next) (GeeIterator* self);
478 gpointer (*get) (GeeIterator* self);
479 void (*remove) (GeeIterator* self);
480 gboolean (*get_valid) (GeeIterator* self);
481 gboolean (*get_read_only) (GeeIterator* self);
484 typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, void* user_data);
485 typedef gpointer (*GeeMapFunc) (gpointer g, void* user_data);
486 typedef gboolean (*GeePredicate) (gconstpointer g, void* user_data);
487 struct _GeeTraversableIface {
488 GTypeInterface parent_iface;
489 GType (*get_g_type) (GeeTraversable* self);
490 GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self);
491 GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self);
492 gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, void* f_target);
493 GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify);
494 gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
495 GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, void* f_target);
496 GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
497 GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, void* pred_target, GDestroyNotify pred_target_destroy_notify);
498 GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length);
499 GType (*get_element_type) (GeeTraversable* self);
502 struct _GeeIterableIface {
503 GTypeInterface parent_iface;
504 GType (*get_g_type) (GeeIterable* self);
505 GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self);
506 GDestroyNotify (*get_g_destroy_func) (GeeIterable* self);
507 GeeIterator* (*iterator) (GeeIterable* self);
510 typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, void* user_data);
511 typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, void* user_data);
512 struct _GeeMapIteratorIface {
513 GTypeInterface parent_iface;
514 GType (*get_k_type) (GeeMapIterator* self);
515 GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self);
516 GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self);
517 GType (*get_v_type) (GeeMapIterator* self);
518 GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self);
519 GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self);
520 gboolean (*next) (GeeMapIterator* self);
521 gboolean (*has_next) (GeeMapIterator* self);
522 gpointer (*get_key) (GeeMapIterator* self);
523 gpointer (*get_value) (GeeMapIterator* self);
524 void (*set_value) (GeeMapIterator* self, gconstpointer value);
525 void (*unset) (GeeMapIterator* self);
526 gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, void* f_target, gpointer seed);
527 gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, void* f_target);
528 gboolean (*get_valid) (GeeMapIterator* self);
529 gboolean (*get_mutable) (GeeMapIterator* self);
530 gboolean (*get_read_only) (GeeMapIterator* self);
533 struct _GeeCollectionIface {
534 GTypeInterface parent_iface;
535 GType (*get_g_type) (GeeCollection* self);
536 GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self);
537 GDestroyNotify (*get_g_destroy_func) (GeeCollection* self);
538 gboolean (*contains) (GeeCollection* self, gconstpointer item);
539 gboolean (*add) (GeeCollection* self, gconstpointer item);
540 gboolean (*remove) (GeeCollection* self, gconstpointer item);
541 void (*clear) (GeeCollection* self);
542 gboolean (*add_all) (GeeCollection* self, GeeCollection* collection);
543 gboolean (*contains_all) (GeeCollection* self, GeeCollection* collection);
544 gboolean (*remove_all) (GeeCollection* self, GeeCollection* collection);
545 gboolean (*retain_all) (GeeCollection* self, GeeCollection* collection);
546 gpointer* (*to_array) (GeeCollection* self, int* result_length1);
547 gint (*get_size) (GeeCollection* self);
548 gboolean (*get_is_empty) (GeeCollection* self);
549 gboolean (*get_read_only) (GeeCollection* self);
550 GeeCollection* (*get_read_only_view) (GeeCollection* self);
553 struct _GeeSetIface {
554 GTypeInterface parent_iface;
555 GType (*get_g_type) (GeeSet* self);
556 GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self);
557 GDestroyNotify (*get_g_destroy_func) (GeeSet* self);
558 GeeSet* (*get_read_only_view) (GeeSet* self);
561 struct _GeeMapIface {
562 GTypeInterface parent_iface;
563 GType (*get_k_type) (GeeMap* self);
564 GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self);
565 GDestroyNotify (*get_k_destroy_func) (GeeMap* self);
566 GType (*get_v_type) (GeeMap* self);
567 GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self);
568 GDestroyNotify (*get_v_destroy_func) (GeeMap* self);
569 gboolean (*has_key) (GeeMap* self, gconstpointer key);
570 gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value);
571 gpointer (*get) (GeeMap* self, gconstpointer key);
572 void (*set) (GeeMap* self, gconstpointer key, gconstpointer value);
573 gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value);
574 void (*clear) (GeeMap* self);
575 GeeMapIterator* (*map_iterator) (GeeMap* self);
576 void (*set_all) (GeeMap* self, GeeMap* map);
577 gboolean (*unset_all) (GeeMap* self, GeeMap* map);
578 gboolean (*has_all) (GeeMap* self, GeeMap* map);
579 gint (*get_size) (GeeMap* self);
580 gboolean (*get_is_empty) (GeeMap* self);
581 gboolean (*get_read_only) (GeeMap* self);
582 GeeSet* (*get_keys) (GeeMap* self);
583 GeeCollection* (*get_values) (GeeMap* self);
584 GeeSet* (*get_entries) (GeeMap* self);
585 GeeMap* (*get_read_only_view) (GeeMap* self);
588 struct _GeeAbstractMap {
589 GObject parent_instance;
590 GeeAbstractMapPrivate * priv;
593 struct _GeeAbstractMapClass {
594 GObjectClass parent_class;
595 gboolean (*has_key) (GeeAbstractMap* self, gconstpointer key);
596 gboolean (*has) (GeeAbstractMap* self, gconstpointer key, gconstpointer value);
597 gpointer (*get) (GeeAbstractMap* self, gconstpointer key);
598 void (*set) (GeeAbstractMap* self, gconstpointer key, gconstpointer value);
599 gboolean (*unset) (GeeAbstractMap* self, gconstpointer key, gpointer* value);
600 GeeMapIterator* (*map_iterator) (GeeAbstractMap* self);
601 void (*clear) (GeeAbstractMap* self);
602 gboolean (*foreach) (GeeAbstractMap* self, GeeForallFunc f, void* f_target);
603 GeeIterator* (*stream) (GeeAbstractMap* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify);
604 void (*reserved0) (GeeAbstractMap* self);
605 void (*reserved1) (GeeAbstractMap* self);
606 void (*reserved2) (GeeAbstractMap* self);
607 void (*reserved3) (GeeAbstractMap* self);
608 void (*reserved4) (GeeAbstractMap* self);
609 void (*reserved5) (GeeAbstractMap* self);
610 void (*reserved6) (GeeAbstractMap* self);
611 void (*reserved7) (GeeAbstractMap* self);
612 void (*reserved8) (GeeAbstractMap* self);
613 void (*reserved9) (GeeAbstractMap* self);
614 gint (*get_size) (GeeAbstractMap* self);
615 gboolean (*get_read_only) (GeeAbstractMap* self);
616 GeeSet* (*get_keys) (GeeAbstractMap* self);
617 GeeCollection* (*get_values) (GeeAbstractMap* self);
618 GeeSet* (*get_entries) (GeeAbstractMap* self);
619 GeeMap* (*get_read_only_view) (GeeAbstractMap* self);
622 struct _GeeSortedSetIface {
623 GTypeInterface parent_iface;
624 GType (*get_g_type) (GeeSortedSet* self);
625 GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self);
626 GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self);
627 gpointer (*first) (GeeSortedSet* self);
628 gpointer (*last) (GeeSortedSet* self);
629 GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element);
630 gpointer (*lower) (GeeSortedSet* self, gconstpointer element);
631 gpointer (*higher) (GeeSortedSet* self, gconstpointer element);
632 gpointer (*floor) (GeeSortedSet* self, gconstpointer element);
633 gpointer (*ceil) (GeeSortedSet* self, gconstpointer element);
634 GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before);
635 GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after);
636 GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to);
637 GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self);
640 struct _GeeSortedMapIface {
641 GTypeInterface parent_iface;
642 GeeSortedMap* (*head_map) (GeeSortedMap* self, gconstpointer before);
643 GeeSortedMap* (*tail_map) (GeeSortedMap* self, gconstpointer after);
644 GeeSortedMap* (*sub_map) (GeeSortedMap* self, gconstpointer before, gconstpointer after);
645 GeeSortedSet* (*get_ascending_keys) (GeeSortedMap* self);
646 GeeSortedSet* (*get_ascending_entries) (GeeSortedMap* self);
647 GeeSortedMap* (*get_read_only_view) (GeeSortedMap* self);
650 struct _GeeAbstractSortedMap {
651 GeeAbstractMap parent_instance;
652 GeeAbstractSortedMapPrivate * priv;
655 struct _GeeAbstractSortedMapClass {
656 GeeAbstractMapClass parent_class;
657 GeeSortedMap* (*head_map) (GeeAbstractSortedMap* self, gconstpointer before);
658 GeeSortedMap* (*tail_map) (GeeAbstractSortedMap* self, gconstpointer after);
659 GeeSortedMap* (*sub_map) (GeeAbstractSortedMap* self, gconstpointer before, gconstpointer after);
660 void (*reserved0) (GeeAbstractSortedMap* self);
661 void (*reserved1) (GeeAbstractSortedMap* self);
662 void (*reserved2) (GeeAbstractSortedMap* self);
663 void (*reserved3) (GeeAbstractSortedMap* self);
664 void (*reserved4) (GeeAbstractSortedMap* self);
665 void (*reserved5) (GeeAbstractSortedMap* self);
666 void (*reserved6) (GeeAbstractSortedMap* self);
667 void (*reserved7) (GeeAbstractSortedMap* self);
668 void (*reserved8) (GeeAbstractSortedMap* self);
669 void (*reserved9) (GeeAbstractSortedMap* self);
670 GeeSortedSet* (*get_ascending_keys) (GeeAbstractSortedMap* self);
671 GeeSortedSet* (*get_ascending_entries) (GeeAbstractSortedMap* self);
674 struct _GeeBidirMapIteratorIface {
675 GTypeInterface parent_iface;
676 GType (*get_k_type) (GeeBidirMapIterator* self);
677 GBoxedCopyFunc (*get_k_dup_func) (GeeBidirMapIterator* self);
678 GDestroyNotify (*get_k_destroy_func) (GeeBidirMapIterator* self);
679 GType (*get_v_type) (GeeBidirMapIterator* self);
680 GBoxedCopyFunc (*get_v_dup_func) (GeeBidirMapIterator* self);
681 GDestroyNotify (*get_v_destroy_func) (GeeBidirMapIterator* self);
682 gboolean (*previous) (GeeBidirMapIterator* self);
683 gboolean (*has_previous) (GeeBidirMapIterator* self);
684 gboolean (*first) (GeeBidirMapIterator* self);
685 gboolean (*last) (GeeBidirMapIterator* self);
688 struct _GeeBidirSortedMapIface {
689 GTypeInterface parent_iface;
690 GType (*get_k_type) (GeeBidirSortedMap* self);
691 GBoxedCopyFunc (*get_k_dup_func) (GeeBidirSortedMap* self);
692 GDestroyNotify (*get_k_destroy_func) (GeeBidirSortedMap* self);
693 GType (*get_v_type) (GeeBidirSortedMap* self);
694 GBoxedCopyFunc (*get_v_dup_func) (GeeBidirSortedMap* self);
695 GDestroyNotify (*get_v_destroy_func) (GeeBidirSortedMap* self);
696 GeeBidirMapIterator* (*bidir_map_iterator) (GeeBidirSortedMap* self);
697 GeeBidirSortedMap* (*get_read_only_view) (GeeBidirSortedMap* self);
700 struct _GeeAbstractBidirSortedMap {
701 GeeAbstractSortedMap parent_instance;
702 GeeAbstractBidirSortedMapPrivate * priv;
705 struct _GeeAbstractBidirSortedMapClass {
706 GeeAbstractSortedMapClass parent_class;
707 GeeBidirMapIterator* (*bidir_map_iterator) (GeeAbstractBidirSortedMap* self);
708 void (*reserved0) (GeeAbstractBidirSortedMap* self);
709 void (*reserved1) (GeeAbstractBidirSortedMap* self);
710 void (*reserved2) (GeeAbstractBidirSortedMap* self);
711 void (*reserved3) (GeeAbstractBidirSortedMap* self);
712 void (*reserved4) (GeeAbstractBidirSortedMap* self);
713 void (*reserved5) (GeeAbstractBidirSortedMap* self);
714 void (*reserved6) (GeeAbstractBidirSortedMap* self);
715 void (*reserved7) (GeeAbstractBidirSortedMap* self);
716 void (*reserved8) (GeeAbstractBidirSortedMap* self);
717 void (*reserved9) (GeeAbstractBidirSortedMap* self);
718 GeeBidirSortedMap* (*get_read_only_view) (GeeAbstractBidirSortedMap* self);
722 GeeAbstractBidirSortedMap parent_instance;
723 GeeTreeMapPrivate * priv;
726 struct _GeeTreeMapClass {
727 GeeAbstractBidirSortedMapClass parent_class;
730 typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, void* user_data);
731 struct _GeeTreeMapPrivate {
733 GBoxedCopyFunc k_dup_func;
734 GDestroyNotify k_destroy_func;
736 GBoxedCopyFunc v_dup_func;
737 GDestroyNotify v_destroy_func;
738 GCompareDataFunc _key_compare_func;
739 gpointer _key_compare_func_target;
740 GDestroyNotify _key_compare_func_target_destroy_notify;
741 GeeEqualDataFunc _value_equal_func;
742 gpointer _value_equal_func_target;
743 GDestroyNotify _value_equal_func_target_destroy_notify;
746 GeeCollection* _values;
747 GeeSortedSet* _entries;
748 GeeTreeMapNode* root;
749 GeeTreeMapNode* first;
750 GeeTreeMapNode* last;
755 GEE_TREE_MAP_RANGE_TYPE_HEAD,
756 GEE_TREE_MAP_RANGE_TYPE_TAIL,
757 GEE_TREE_MAP_RANGE_TYPE_EMPTY,
758 GEE_TREE_MAP_RANGE_TYPE_BOUNDED
759 } GeeTreeMapRangeType;
762 GEE_TREE_MAP_NODE_COLOR_RED,
763 GEE_TREE_MAP_NODE_COLOR_BLACK
764 } GeeTreeMapNodeColor;
766 struct _GeeTreeMapNode {
769 GeeTreeMapNodeColor color;
770 GeeTreeMapNode* left;
771 GeeTreeMapNode* right;
772 GeeTreeMapNode* prev;
773 GeeTreeMapNode* next;
777 struct _GeeMapEntry {
778 GObject parent_instance;
779 GeeMapEntryPrivate * priv;
782 struct _GeeMapEntryClass {
783 GObjectClass parent_class;
784 gconstpointer (*get_key) (GeeMapEntry* self);
785 gconstpointer (*get_value) (GeeMapEntry* self);
786 void (*set_value) (GeeMapEntry* self, gconstpointer value);
787 gboolean (*get_read_only) (GeeMapEntry* self);
790 struct _GeeTreeMapEntry {
791 GeeMapEntry parent_instance;
792 GeeTreeMapEntryPrivate * priv;
795 struct _GeeTreeMapEntryClass {
796 GeeMapEntryClass parent_class;
799 struct _GeeTreeMapEntryPrivate {
801 GBoxedCopyFunc k_dup_func;
802 GDestroyNotify k_destroy_func;
804 GBoxedCopyFunc v_dup_func;
805 GDestroyNotify v_destroy_func;
806 GeeTreeMapNode* _node;
809 struct _GeeTreeMapRange {
810 GTypeInstance parent_instance;
811 volatile int ref_count;
812 GeeTreeMapRangePrivate * priv;
815 struct _GeeTreeMapRangeClass {
816 GTypeClass parent_class;
817 void (*finalize) (GeeTreeMapRange *self);
820 struct _GeeTreeMapRangePrivate {
822 GBoxedCopyFunc k_dup_func;
823 GDestroyNotify k_destroy_func;
825 GBoxedCopyFunc v_dup_func;
826 GDestroyNotify v_destroy_func;
830 GeeTreeMapRangeType type;
833 struct _GeeTreeMapParamSpecRange {
834 GParamSpec parent_instance;
837 struct _GeeTreeMapSubMap {
838 GeeAbstractBidirSortedMap parent_instance;
839 GeeTreeMapSubMapPrivate * priv;
842 struct _GeeTreeMapSubMapClass {
843 GeeAbstractBidirSortedMapClass parent_class;
846 struct _GeeTreeMapSubMapPrivate {
848 GBoxedCopyFunc k_dup_func;
849 GDestroyNotify k_destroy_func;
851 GBoxedCopyFunc v_dup_func;
852 GDestroyNotify v_destroy_func;
854 GeeCollection* _values;
855 GeeSortedSet* _entries;
857 GeeTreeMapRange* range;
860 struct _GeeAbstractCollection {
861 GObject parent_instance;
862 GeeAbstractCollectionPrivate * priv;
865 struct _GeeAbstractCollectionClass {
866 GObjectClass parent_class;
867 gboolean (*contains) (GeeAbstractCollection* self, gconstpointer item);
868 gboolean (*add) (GeeAbstractCollection* self, gconstpointer item);
869 gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item);
870 void (*clear) (GeeAbstractCollection* self);
871 GeeIterator* (*iterator) (GeeAbstractCollection* self);
872 gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, void* f_target);
873 void (*reserved0) (GeeAbstractCollection* self);
874 void (*reserved1) (GeeAbstractCollection* self);
875 void (*reserved2) (GeeAbstractCollection* self);
876 void (*reserved3) (GeeAbstractCollection* self);
877 void (*reserved4) (GeeAbstractCollection* self);
878 void (*reserved5) (GeeAbstractCollection* self);
879 void (*reserved6) (GeeAbstractCollection* self);
880 void (*reserved7) (GeeAbstractCollection* self);
881 void (*reserved8) (GeeAbstractCollection* self);
882 void (*reserved9) (GeeAbstractCollection* self);
883 gint (*get_size) (GeeAbstractCollection* self);
884 gboolean (*get_read_only) (GeeAbstractCollection* self);
885 GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self);
888 struct _GeeAbstractSet {
889 GeeAbstractCollection parent_instance;
890 GeeAbstractSetPrivate * priv;
893 struct _GeeAbstractSetClass {
894 GeeAbstractCollectionClass parent_class;
895 void (*reserved0) (GeeAbstractSet* self);
896 void (*reserved1) (GeeAbstractSet* self);
897 void (*reserved2) (GeeAbstractSet* self);
898 void (*reserved3) (GeeAbstractSet* self);
899 void (*reserved4) (GeeAbstractSet* self);
900 void (*reserved5) (GeeAbstractSet* self);
901 void (*reserved6) (GeeAbstractSet* self);
902 void (*reserved7) (GeeAbstractSet* self);
903 void (*reserved8) (GeeAbstractSet* self);
904 void (*reserved9) (GeeAbstractSet* self);
905 GeeSet* (*get_read_only_view) (GeeAbstractSet* self);
908 struct _GeeAbstractSortedSet {
909 GeeAbstractSet parent_instance;
910 GeeAbstractSortedSetPrivate * priv;
913 struct _GeeAbstractSortedSetClass {
914 GeeAbstractSetClass parent_class;
915 gpointer (*first) (GeeAbstractSortedSet* self);
916 gpointer (*last) (GeeAbstractSortedSet* self);
917 GeeIterator* (*iterator_at) (GeeAbstractSortedSet* self, gconstpointer element);
918 gpointer (*lower) (GeeAbstractSortedSet* self, gconstpointer element);
919 gpointer (*higher) (GeeAbstractSortedSet* self, gconstpointer element);
920 gpointer (*floor) (GeeAbstractSortedSet* self, gconstpointer element);
921 gpointer (*ceil) (GeeAbstractSortedSet* self, gconstpointer element);
922 GeeSortedSet* (*head_set) (GeeAbstractSortedSet* self, gconstpointer before);
923 GeeSortedSet* (*tail_set) (GeeAbstractSortedSet* self, gconstpointer after);
924 GeeSortedSet* (*sub_set) (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to);
925 void (*reserved0) (GeeAbstractSortedSet* self);
926 void (*reserved1) (GeeAbstractSortedSet* self);
927 void (*reserved2) (GeeAbstractSortedSet* self);
928 void (*reserved3) (GeeAbstractSortedSet* self);
929 void (*reserved4) (GeeAbstractSortedSet* self);
930 void (*reserved5) (GeeAbstractSortedSet* self);
931 void (*reserved6) (GeeAbstractSortedSet* self);
932 void (*reserved7) (GeeAbstractSortedSet* self);
933 void (*reserved8) (GeeAbstractSortedSet* self);
934 void (*reserved9) (GeeAbstractSortedSet* self);
935 GeeSortedSet* (*get_read_only_view) (GeeAbstractSortedSet* self);
938 struct _GeeBidirIteratorIface {
939 GTypeInterface parent_iface;
940 GType (*get_g_type) (GeeBidirIterator* self);
941 GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self);
942 GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self);
943 gboolean (*previous) (GeeBidirIterator* self);
944 gboolean (*has_previous) (GeeBidirIterator* self);
945 gboolean (*first) (GeeBidirIterator* self);
946 gboolean (*last) (GeeBidirIterator* self);
949 struct _GeeBidirSortedSetIface {
950 GTypeInterface parent_iface;
951 GType (*get_g_type) (GeeBidirSortedSet* self);
952 GBoxedCopyFunc (*get_g_dup_func) (GeeBidirSortedSet* self);
953 GDestroyNotify (*get_g_destroy_func) (GeeBidirSortedSet* self);
954 GeeBidirIterator* (*bidir_iterator) (GeeBidirSortedSet* self);
955 GeeBidirSortedSet* (*get_read_only_view) (GeeBidirSortedSet* self);
958 struct _GeeAbstractBidirSortedSet {
959 GeeAbstractSortedSet parent_instance;
960 GeeAbstractBidirSortedSetPrivate * priv;
963 struct _GeeAbstractBidirSortedSetClass {
964 GeeAbstractSortedSetClass parent_class;
965 GeeBidirIterator* (*bidir_iterator) (GeeAbstractBidirSortedSet* self);
966 void (*reserved0) (GeeAbstractBidirSortedSet* self);
967 void (*reserved1) (GeeAbstractBidirSortedSet* self);
968 void (*reserved2) (GeeAbstractBidirSortedSet* self);
969 void (*reserved3) (GeeAbstractBidirSortedSet* self);
970 void (*reserved4) (GeeAbstractBidirSortedSet* self);
971 void (*reserved5) (GeeAbstractBidirSortedSet* self);
972 void (*reserved6) (GeeAbstractBidirSortedSet* self);
973 void (*reserved7) (GeeAbstractBidirSortedSet* self);
974 void (*reserved8) (GeeAbstractBidirSortedSet* self);
975 void (*reserved9) (GeeAbstractBidirSortedSet* self);
976 GeeBidirSortedSet* (*get_read_only_view) (GeeAbstractBidirSortedSet* self);
979 struct _GeeTreeMapKeySet {
980 GeeAbstractBidirSortedSet parent_instance;
981 GeeTreeMapKeySetPrivate * priv;
984 struct _GeeTreeMapKeySetClass {
985 GeeAbstractBidirSortedSetClass parent_class;
988 struct _GeeTreeMapKeySetPrivate {
990 GBoxedCopyFunc k_dup_func;
991 GDestroyNotify k_destroy_func;
993 GBoxedCopyFunc v_dup_func;
994 GDestroyNotify v_destroy_func;
998 struct _GeeTreeMapSubKeySet {
999 GeeAbstractBidirSortedSet parent_instance;
1000 GeeTreeMapSubKeySetPrivate * priv;
1003 struct _GeeTreeMapSubKeySetClass {
1004 GeeAbstractBidirSortedSetClass parent_class;
1007 struct _GeeTreeMapSubKeySetPrivate {
1009 GBoxedCopyFunc k_dup_func;
1010 GDestroyNotify k_destroy_func;
1012 GBoxedCopyFunc v_dup_func;
1013 GDestroyNotify v_destroy_func;
1015 GeeTreeMapRange* _range;
1018 struct _GeeTreeMapValueCollection {
1019 GeeAbstractCollection parent_instance;
1020 GeeTreeMapValueCollectionPrivate * priv;
1023 struct _GeeTreeMapValueCollectionClass {
1024 GeeAbstractCollectionClass parent_class;
1027 struct _GeeTreeMapValueCollectionPrivate {
1029 GBoxedCopyFunc k_dup_func;
1030 GDestroyNotify k_destroy_func;
1032 GBoxedCopyFunc v_dup_func;
1033 GDestroyNotify v_destroy_func;
1037 struct _GeeTreeMapSubValueCollection {
1038 GeeAbstractCollection parent_instance;
1039 GeeTreeMapSubValueCollectionPrivate * priv;
1042 struct _GeeTreeMapSubValueCollectionClass {
1043 GeeAbstractCollectionClass parent_class;
1046 struct _GeeTreeMapSubValueCollectionPrivate {
1048 GBoxedCopyFunc k_dup_func;
1049 GDestroyNotify k_destroy_func;
1051 GBoxedCopyFunc v_dup_func;
1052 GDestroyNotify v_destroy_func;
1054 GeeTreeMapRange* _range;
1057 struct _GeeTreeMapEntrySet {
1058 GeeAbstractBidirSortedSet parent_instance;
1059 GeeTreeMapEntrySetPrivate * priv;
1062 struct _GeeTreeMapEntrySetClass {
1063 GeeAbstractBidirSortedSetClass parent_class;
1066 struct _GeeTreeMapEntrySetPrivate {
1068 GBoxedCopyFunc k_dup_func;
1069 GDestroyNotify k_destroy_func;
1071 GBoxedCopyFunc v_dup_func;
1072 GDestroyNotify v_destroy_func;
1076 struct _GeeTreeMapSubEntrySet {
1077 GeeAbstractBidirSortedSet parent_instance;
1078 GeeTreeMapSubEntrySetPrivate * priv;
1081 struct _GeeTreeMapSubEntrySetClass {
1082 GeeAbstractBidirSortedSetClass parent_class;
1085 struct _GeeTreeMapSubEntrySetPrivate {
1087 GBoxedCopyFunc k_dup_func;
1088 GDestroyNotify k_destroy_func;
1090 GBoxedCopyFunc v_dup_func;
1091 GDestroyNotify v_destroy_func;
1093 GeeTreeMapRange* _range;
1096 struct _GeeTreeMapNodeIterator {
1097 GObject parent_instance;
1098 GeeTreeMapNodeIteratorPrivate * priv;
1102 GeeTreeMapNode* current;
1103 GeeTreeMapNode* _next;
1104 GeeTreeMapNode* _prev;
1107 struct _GeeTreeMapNodeIteratorClass {
1108 GObjectClass parent_class;
1109 gboolean (*get_read_only) (GeeTreeMapNodeIterator* self);
1112 struct _GeeTreeMapNodeIteratorPrivate {
1114 GBoxedCopyFunc k_dup_func;
1115 GDestroyNotify k_destroy_func;
1117 GBoxedCopyFunc v_dup_func;
1118 GDestroyNotify v_destroy_func;
1121 struct _GeeTreeMapSubNodeIterator {
1122 GObject parent_instance;
1123 GeeTreeMapSubNodeIteratorPrivate * priv;
1125 GeeTreeMapRange* range;
1126 GeeTreeMapNodeIterator* iterator;
1129 struct _GeeTreeMapSubNodeIteratorClass {
1130 GObjectClass parent_class;
1131 gboolean (*first) (GeeTreeMapSubNodeIterator* self);
1132 gboolean (*last) (GeeTreeMapSubNodeIterator* self);
1133 GeeTreeMapNodeIterator* (*iterator_pointing_at) (GeeTreeMapSubNodeIterator* self, GeeTreeMapNode* node);
1134 gboolean (*get_read_only) (GeeTreeMapSubNodeIterator* self);
1137 struct _GeeTreeMapSubNodeIteratorPrivate {
1139 GBoxedCopyFunc k_dup_func;
1140 GDestroyNotify k_destroy_func;
1142 GBoxedCopyFunc v_dup_func;
1143 GDestroyNotify v_destroy_func;
1146 struct _GeeTreeMapKeyIterator {
1147 GeeTreeMapNodeIterator parent_instance;
1148 GeeTreeMapKeyIteratorPrivate * priv;
1151 struct _GeeTreeMapKeyIteratorClass {
1152 GeeTreeMapNodeIteratorClass parent_class;
1155 struct _GeeTreeMapKeyIteratorPrivate {
1157 GBoxedCopyFunc k_dup_func;
1158 GDestroyNotify k_destroy_func;
1160 GBoxedCopyFunc v_dup_func;
1161 GDestroyNotify v_destroy_func;
1164 struct _GeeTreeMapSubKeyIterator {
1165 GeeTreeMapSubNodeIterator parent_instance;
1166 GeeTreeMapSubKeyIteratorPrivate * priv;
1169 struct _GeeTreeMapSubKeyIteratorClass {
1170 GeeTreeMapSubNodeIteratorClass parent_class;
1173 struct _GeeTreeMapSubKeyIteratorPrivate {
1175 GBoxedCopyFunc k_dup_func;
1176 GDestroyNotify k_destroy_func;
1178 GBoxedCopyFunc v_dup_func;
1179 GDestroyNotify v_destroy_func;
1182 struct _GeeTreeMapValueIterator {
1183 GeeTreeMapNodeIterator parent_instance;
1184 GeeTreeMapValueIteratorPrivate * priv;
1187 struct _GeeTreeMapValueIteratorClass {
1188 GeeTreeMapNodeIteratorClass parent_class;
1191 struct _GeeTreeMapValueIteratorPrivate {
1193 GBoxedCopyFunc k_dup_func;
1194 GDestroyNotify k_destroy_func;
1196 GBoxedCopyFunc v_dup_func;
1197 GDestroyNotify v_destroy_func;
1200 struct _GeeTreeMapSubValueIterator {
1201 GeeTreeMapSubNodeIterator parent_instance;
1202 GeeTreeMapSubValueIteratorPrivate * priv;
1205 struct _GeeTreeMapSubValueIteratorClass {
1206 GeeTreeMapSubNodeIteratorClass parent_class;
1209 struct _GeeTreeMapSubValueIteratorPrivate {
1211 GBoxedCopyFunc k_dup_func;
1212 GDestroyNotify k_destroy_func;
1214 GBoxedCopyFunc v_dup_func;
1215 GDestroyNotify v_destroy_func;
1218 struct _GeeTreeMapEntryIterator {
1219 GeeTreeMapNodeIterator parent_instance;
1220 GeeTreeMapEntryIteratorPrivate * priv;
1223 struct _GeeTreeMapEntryIteratorClass {
1224 GeeTreeMapNodeIteratorClass parent_class;
1227 struct _GeeTreeMapEntryIteratorPrivate {
1229 GBoxedCopyFunc k_dup_func;
1230 GDestroyNotify k_destroy_func;
1232 GBoxedCopyFunc v_dup_func;
1233 GDestroyNotify v_destroy_func;
1236 struct _GeeTreeMapSubEntryIterator {
1237 GeeTreeMapSubNodeIterator parent_instance;
1238 GeeTreeMapSubEntryIteratorPrivate * priv;
1241 struct _GeeTreeMapSubEntryIteratorClass {
1242 GeeTreeMapSubNodeIteratorClass parent_class;
1245 struct _GeeTreeMapSubEntryIteratorPrivate {
1247 GBoxedCopyFunc k_dup_func;
1248 GDestroyNotify k_destroy_func;
1250 GBoxedCopyFunc v_dup_func;
1251 GDestroyNotify v_destroy_func;
1254 struct _GeeTreeMapMapIterator {
1255 GeeTreeMapNodeIterator parent_instance;
1256 GeeTreeMapMapIteratorPrivate * priv;
1259 struct _GeeTreeMapMapIteratorClass {
1260 GeeTreeMapNodeIteratorClass parent_class;
1263 struct _GeeTreeMapMapIteratorPrivate {
1265 GBoxedCopyFunc k_dup_func;
1266 GDestroyNotify k_destroy_func;
1268 GBoxedCopyFunc v_dup_func;
1269 GDestroyNotify v_destroy_func;
1272 struct _GeeTreeMapSubMapIterator {
1273 GeeTreeMapSubNodeIterator parent_instance;
1274 GeeTreeMapSubMapIteratorPrivate * priv;
1277 struct _GeeTreeMapSubMapIteratorClass {
1278 GeeTreeMapSubNodeIteratorClass parent_class;
1281 struct _GeeTreeMapSubMapIteratorPrivate {
1283 GBoxedCopyFunc k_dup_func;
1284 GDestroyNotify k_destroy_func;
1286 GBoxedCopyFunc v_dup_func;
1287 GDestroyNotify v_destroy_func;
1291 static gpointer gee_tree_map_parent_class = NULL;
1292 static gpointer gee_tree_map_entry_parent_class = NULL;
1293 static gpointer gee_tree_map_range_parent_class = NULL;
1294 static gpointer gee_tree_map_sub_map_parent_class = NULL;
1295 static gpointer gee_tree_map_key_set_parent_class = NULL;
1296 static gpointer gee_tree_map_sub_key_set_parent_class = NULL;
1297 static gpointer gee_tree_map_value_collection_parent_class = NULL;
1298 static gpointer gee_tree_map_sub_value_collection_parent_class = NULL;
1299 static gpointer gee_tree_map_entry_set_parent_class = NULL;
1300 static gpointer gee_tree_map_sub_entry_set_parent_class = NULL;
1301 static gpointer gee_tree_map_node_iterator_parent_class = NULL;
1302 static gpointer gee_tree_map_sub_node_iterator_parent_class = NULL;
1303 static gpointer gee_tree_map_key_iterator_parent_class = NULL;
1304 static GeeTraversableIface* gee_tree_map_key_iterator_gee_traversable_parent_iface = NULL;
1305 static GeeIteratorIface* gee_tree_map_key_iterator_gee_iterator_parent_iface = NULL;
1306 static GeeBidirIteratorIface* gee_tree_map_key_iterator_gee_bidir_iterator_parent_iface = NULL;
1307 static gpointer gee_tree_map_sub_key_iterator_parent_class = NULL;
1308 static GeeTraversableIface* gee_tree_map_sub_key_iterator_gee_traversable_parent_iface = NULL;
1309 static GeeIteratorIface* gee_tree_map_sub_key_iterator_gee_iterator_parent_iface = NULL;
1310 static GeeBidirIteratorIface* gee_tree_map_sub_key_iterator_gee_bidir_iterator_parent_iface = NULL;
1311 static gpointer gee_tree_map_value_iterator_parent_class = NULL;
1312 static GeeTraversableIface* gee_tree_map_value_iterator_gee_traversable_parent_iface = NULL;
1313 static GeeIteratorIface* gee_tree_map_value_iterator_gee_iterator_parent_iface = NULL;
1314 static GeeBidirIteratorIface* gee_tree_map_value_iterator_gee_bidir_iterator_parent_iface = NULL;
1315 static gpointer gee_tree_map_sub_value_iterator_parent_class = NULL;
1316 static GeeTraversableIface* gee_tree_map_sub_value_iterator_gee_traversable_parent_iface = NULL;
1317 static GeeIteratorIface* gee_tree_map_sub_value_iterator_gee_iterator_parent_iface = NULL;
1318 static GeeBidirIteratorIface* gee_tree_map_sub_value_iterator_gee_bidir_iterator_parent_iface = NULL;
1319 static gpointer gee_tree_map_entry_iterator_parent_class = NULL;
1320 static GeeTraversableIface* gee_tree_map_entry_iterator_gee_traversable_parent_iface = NULL;
1321 static GeeIteratorIface* gee_tree_map_entry_iterator_gee_iterator_parent_iface = NULL;
1322 static GeeBidirIteratorIface* gee_tree_map_entry_iterator_gee_bidir_iterator_parent_iface = NULL;
1323 static gpointer gee_tree_map_sub_entry_iterator_parent_class = NULL;
1324 static GeeTraversableIface* gee_tree_map_sub_entry_iterator_gee_traversable_parent_iface = NULL;
1325 static GeeIteratorIface* gee_tree_map_sub_entry_iterator_gee_iterator_parent_iface = NULL;
1326 static GeeBidirIteratorIface* gee_tree_map_sub_entry_iterator_gee_bidir_iterator_parent_iface = NULL;
1327 static gpointer gee_tree_map_map_iterator_parent_class = NULL;
1328 static GeeMapIteratorIface* gee_tree_map_map_iterator_gee_map_iterator_parent_iface = NULL;
1329 static GeeBidirMapIteratorIface* gee_tree_map_map_iterator_gee_bidir_map_iterator_parent_iface = NULL;
1330 static gpointer gee_tree_map_sub_map_iterator_parent_class = NULL;
1331 static GeeMapIteratorIface* gee_tree_map_sub_map_iterator_gee_map_iterator_parent_iface = NULL;
1332 static GeeBidirMapIteratorIface* gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_parent_iface = NULL;
1334 GType gee_traversable_stream_get_type (void) G_GNUC_CONST;
1335 gpointer gee_lazy_ref (gpointer instance);
1336 void gee_lazy_unref (gpointer instance);
1337 GParamSpec* gee_param_spec_lazy (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
1338 void gee_value_set_lazy (GValue* value, gpointer v_object);
1339 void gee_value_take_lazy (GValue* value, gpointer v_object);
1340 gpointer gee_value_get_lazy (const GValue* value);
1341 GType gee_lazy_get_type (void) G_GNUC_CONST;
1342 GType gee_iterator_get_type (void) G_GNUC_CONST;
1343 GType gee_traversable_get_type (void) G_GNUC_CONST;
1344 GType gee_iterable_get_type (void) G_GNUC_CONST;
1345 GType gee_map_iterator_get_type (void) G_GNUC_CONST;
1346 GType gee_collection_get_type (void) G_GNUC_CONST;
1347 GType gee_set_get_type (void) G_GNUC_CONST;
1348 GType gee_map_entry_get_type (void) G_GNUC_CONST;
1349 GType gee_map_get_type (void) G_GNUC_CONST;
1350 GType gee_abstract_map_get_type (void) G_GNUC_CONST;
1351 GType gee_sorted_set_get_type (void) G_GNUC_CONST;
1352 GType gee_sorted_map_get_type (void) G_GNUC_CONST;
1353 GType gee_abstract_sorted_map_get_type (void) G_GNUC_CONST;
1354 GType gee_bidir_map_iterator_get_type (void) G_GNUC_CONST;
1355 GType gee_bidir_sorted_map_get_type (void) G_GNUC_CONST;
1356 GType gee_abstract_bidir_sorted_map_get_type (void) G_GNUC_CONST;
1357 GType gee_tree_map_get_type (void) G_GNUC_CONST;
1358 static void gee_tree_map_node_free (GeeTreeMapNode* self);
1359 #define GEE_TREE_MAP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TYPE_TREE_MAP, GeeTreeMapPrivate))
1361 GEE_TREE_MAP_DUMMY_PROPERTY,
1362 GEE_TREE_MAP_K_TYPE,
1363 GEE_TREE_MAP_K_DUP_FUNC,
1364 GEE_TREE_MAP_K_DESTROY_FUNC,
1365 GEE_TREE_MAP_V_TYPE,
1366 GEE_TREE_MAP_V_DUP_FUNC,
1367 GEE_TREE_MAP_V_DESTROY_FUNC,
1369 GEE_TREE_MAP_READ_ONLY,
1371 GEE_TREE_MAP_VALUES,
1372 GEE_TREE_MAP_ENTRIES,
1373 GEE_TREE_MAP_ASCENDING_KEYS,
1374 GEE_TREE_MAP_ASCENDING_ENTRIES
1376 void gee_abstract_map_clear (GeeAbstractMap* self);
1377 static GType gee_tree_map_range_type_get_type (void) G_GNUC_UNUSED;
1378 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, void* key_compare_func_target, GDestroyNotify key_compare_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
1379 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, void* key_compare_func_target, GDestroyNotify key_compare_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
1380 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);
1381 GCompareDataFunc gee_functions_get_compare_func_for (GType t, void** result_target, GDestroyNotify* result_target_destroy_notify);
1382 GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, void** result_target, GDestroyNotify* result_target_destroy_notify);
1383 static void gee_tree_map_set_key_compare_func (GeeTreeMap* self, GCompareDataFunc value, gpointer value_target);
1384 static void gee_tree_map_set_value_equal_func (GeeTreeMap* self, GeeEqualDataFunc value, gpointer value_target);
1385 static void gee_tree_map_rotate_right (GeeTreeMap* self, GeeTreeMapNode** root);
1386 GType gee_tree_map_node_color_get_type (void) G_GNUC_CONST;
1387 static void gee_tree_map_rotate_left (GeeTreeMap* self, GeeTreeMapNode** root);
1388 static gboolean gee_tree_map_is_red (GeeTreeMap* self, GeeTreeMapNode* n);
1389 static gboolean gee_tree_map_is_black (GeeTreeMap* self, GeeTreeMapNode* n);
1390 static gboolean gee_tree_map_real_has_key (GeeAbstractMap* base, gconstpointer key);
1391 GCompareDataFunc gee_tree_map_get_key_compare_func (GeeTreeMap* self, gpointer* result_target);
1392 static gboolean gee_tree_map_real_has (GeeAbstractMap* base, gconstpointer key, gconstpointer value);
1393 gpointer gee_abstract_map_get (GeeAbstractMap* self, gconstpointer key);
1394 GeeEqualDataFunc gee_tree_map_get_value_equal_func (GeeTreeMap* self, gpointer* result_target);
1395 static gpointer gee_tree_map_real_get (GeeAbstractMap* base, gconstpointer key);
1396 static gboolean gee_tree_map_set_to_node (GeeTreeMap* self, GeeTreeMapNode** node, gconstpointer key, gconstpointer value, gpointer* old_value, GeeTreeMapNode* prev, GeeTreeMapNode* next);
1397 static GeeTreeMapNode* gee_tree_map_node_new (gpointer key, gpointer value, GeeTreeMapNode* prev, GeeTreeMapNode* next);
1398 static GeeTreeMapNode* gee_tree_map_node_new (gpointer key, gpointer value, GeeTreeMapNode* prev, GeeTreeMapNode* next);
1399 static void gee_tree_map_fix_up (GeeTreeMap* self, GeeTreeMapNode** node);
1400 static void gee_tree_map_real_set (GeeAbstractMap* base, gconstpointer key, gconstpointer value);
1401 static void gee_tree_map_move_red_left (GeeTreeMap* self, GeeTreeMapNode** root);
1402 static void gee_tree_map_node_flip (GeeTreeMapNode* self);
1403 static void gee_tree_map_move_red_right (GeeTreeMap* self, GeeTreeMapNode** root);
1404 static void gee_tree_map_fix_removal (GeeTreeMap* self, GeeTreeMapNode** node, gpointer* key, gpointer* value);
1405 static void gee_tree_map_remove_minimal (GeeTreeMap* self, GeeTreeMapNode** node, gpointer* key, gpointer* value);
1406 static gboolean gee_tree_map_remove_from_node (GeeTreeMap* self, GeeTreeMapNode** node, gconstpointer key, gpointer* value, GeeTreeMapNode** prev, GeeTreeMapNode** next);
1407 static gboolean gee_tree_map_real_unset (GeeAbstractMap* base, gconstpointer key, gpointer* value);
1408 static inline void gee_tree_map_clear_subtree (GeeTreeMap* self, GeeTreeMapNode* node);
1409 static void gee_tree_map_real_clear (GeeAbstractMap* base);
1410 static GeeSortedMap* gee_tree_map_real_head_map (GeeAbstractSortedMap* base, gconstpointer before);
1411 static GeeTreeMapRange* gee_tree_map_range_new_head (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, gconstpointer before);
1412 static GeeTreeMapRange* gee_tree_map_range_construct_head (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, GeeTreeMap* map, gconstpointer before);
1413 static gpointer gee_tree_map_range_ref (gpointer instance);
1414 static void gee_tree_map_range_unref (gpointer instance);
1415 static GParamSpec* gee_tree_map_param_spec_range (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) G_GNUC_UNUSED;
1416 static void gee_tree_map_value_set_range (GValue* value, gpointer v_object) G_GNUC_UNUSED;
1417 static void gee_tree_map_value_take_range (GValue* value, gpointer v_object) G_GNUC_UNUSED;
1418 static gpointer gee_tree_map_value_get_range (const GValue* value) G_GNUC_UNUSED;
1419 static GType gee_tree_map_range_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1420 static GeeTreeMapSubMap* gee_tree_map_sub_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range);
1421 static GeeTreeMapSubMap* gee_tree_map_sub_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, GeeTreeMap* map, GeeTreeMapRange* range);
1422 static GType gee_tree_map_sub_map_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1423 static GeeSortedMap* gee_tree_map_real_tail_map (GeeAbstractSortedMap* base, gconstpointer after);
1424 static GeeTreeMapRange* gee_tree_map_range_new_tail (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, gconstpointer after);
1425 static GeeTreeMapRange* gee_tree_map_range_construct_tail (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, GeeTreeMap* map, gconstpointer after);
1426 static GeeSortedMap* gee_tree_map_real_sub_map (GeeAbstractSortedMap* base, gconstpointer after, gconstpointer before);
1427 static GeeTreeMapRange* gee_tree_map_range_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, gconstpointer after, gconstpointer before);
1428 static GeeTreeMapRange* gee_tree_map_range_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, GeeTreeMap* map, gconstpointer after, gconstpointer before);
1429 static GeeMapIterator* gee_tree_map_real_map_iterator (GeeAbstractMap* base);
1430 static GeeTreeMapMapIterator* gee_tree_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, GeeTreeMap* map);
1431 static GeeTreeMapMapIterator* gee_tree_map_map_iterator_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, GeeTreeMap* map);
1432 static GType gee_tree_map_node_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1433 static GType gee_tree_map_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1434 static GeeBidirMapIterator* gee_tree_map_real_bidir_map_iterator (GeeAbstractBidirSortedMap* base);
1435 static inline gpointer gee_tree_map_min (GeeTreeMap* self, gconstpointer a, gconstpointer b);
1436 static inline gpointer gee_tree_map_max (GeeTreeMap* self, gconstpointer a, gconstpointer b);
1437 static inline GeeTreeMapNode* gee_tree_map_find_node (GeeTreeMap* self, gconstpointer key);
1438 static inline GeeTreeMapNode* gee_tree_map_find_nearest (GeeTreeMap* self, gconstpointer key);
1439 static inline GeeTreeMapNode* gee_tree_map_find_lower (GeeTreeMap* self, gconstpointer key);
1440 static inline GeeTreeMapNode* gee_tree_map_find_higher (GeeTreeMap* self, gconstpointer key);
1441 static inline GeeTreeMapNode* gee_tree_map_find_floor (GeeTreeMap* self, gconstpointer key);
1442 static inline GeeTreeMapNode* gee_tree_map_find_ceil (GeeTreeMap* self, gconstpointer key);
1443 static inline gpointer gee_tree_map_lift_null_key (GeeTreeMap* self, GeeTreeMapNode* node);
1444 static GeeTreeMapKeySet* gee_tree_map_key_set_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map);
1445 static GeeTreeMapKeySet* gee_tree_map_key_set_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, GeeTreeMap* map);
1446 GType gee_abstract_collection_get_type (void) G_GNUC_CONST;
1447 GType gee_abstract_set_get_type (void) G_GNUC_CONST;
1448 GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST;
1449 GType gee_abstract_bidir_sorted_set_get_type (void) G_GNUC_CONST;
1450 static GType gee_tree_map_key_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1451 static GeeTreeMapValueCollection* gee_tree_map_value_collection_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map);
1452 static GeeTreeMapValueCollection* gee_tree_map_value_collection_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, GeeTreeMap* map);
1453 static GType gee_tree_map_value_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1454 static GeeTreeMapEntrySet* gee_tree_map_entry_set_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map);
1455 static GeeTreeMapEntrySet* gee_tree_map_entry_set_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, GeeTreeMap* map);
1456 static GType gee_tree_map_entry_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1457 static void gee_tree_map_node_instance_init (GeeTreeMapNode * self);
1458 static GeeTreeMapNodeColor gee_tree_map_node_color_flip (GeeTreeMapNodeColor self);
1459 static GType gee_tree_map_entry_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1460 #define GEE_TREE_MAP_ENTRY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_ENTRY, GeeTreeMapEntryPrivate))
1462 GEE_TREE_MAP_ENTRY_DUMMY_PROPERTY,
1463 GEE_TREE_MAP_ENTRY_K_TYPE,
1464 GEE_TREE_MAP_ENTRY_K_DUP_FUNC,
1465 GEE_TREE_MAP_ENTRY_K_DESTROY_FUNC,
1466 GEE_TREE_MAP_ENTRY_V_TYPE,
1467 GEE_TREE_MAP_ENTRY_V_DUP_FUNC,
1468 GEE_TREE_MAP_ENTRY_V_DESTROY_FUNC,
1469 GEE_TREE_MAP_ENTRY_KEY,
1470 GEE_TREE_MAP_ENTRY_VALUE,
1471 GEE_TREE_MAP_ENTRY_READ_ONLY
1473 static GeeMapEntry* gee_tree_map_entry_entry_for (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMapNode* node);
1474 static GeeTreeMapEntry* gee_tree_map_entry_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMapNode* node);
1475 static GeeTreeMapEntry* gee_tree_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, GeeTreeMapNode* node);
1476 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);
1477 static void gee_tree_map_entry_finalize (GObject* obj);
1478 gconstpointer gee_map_entry_get_key (GeeMapEntry* self);
1479 gconstpointer gee_map_entry_get_value (GeeMapEntry* self);
1480 gboolean gee_map_entry_get_read_only (GeeMapEntry* self);
1481 static void _vala_gee_tree_map_entry_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1482 void gee_map_entry_set_value (GeeMapEntry* self, gconstpointer value);
1483 static void _vala_gee_tree_map_entry_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1484 #define GEE_TREE_MAP_RANGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_RANGE, GeeTreeMapRangePrivate))
1486 GEE_TREE_MAP_RANGE_DUMMY_PROPERTY
1488 static GeeTreeMapRange* gee_tree_map_range_new_empty (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map);
1489 static GeeTreeMapRange* gee_tree_map_range_construct_empty (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, GeeTreeMap* map);
1490 static GeeTreeMapRange* gee_tree_map_range_cut_head (GeeTreeMapRange* self, gconstpointer after);
1491 static GeeTreeMapRange* gee_tree_map_range_cut_tail (GeeTreeMapRange* self, gconstpointer before);
1492 static GeeTreeMapRange* gee_tree_map_range_cut (GeeTreeMapRange* self, gconstpointer after, gconstpointer before);
1493 static gboolean gee_tree_map_range_in_range (GeeTreeMapRange* self, gconstpointer key);
1494 static gint gee_tree_map_range_compare_range (GeeTreeMapRange* self, gconstpointer key);
1495 static gboolean gee_tree_map_range_empty_submap (GeeTreeMapRange* self);
1496 static GeeTreeMapNode* gee_tree_map_range_first (GeeTreeMapRange* self);
1497 static GeeTreeMapNode* gee_tree_map_range_last (GeeTreeMapRange* self);
1498 static void gee_tree_map_range_finalize (GeeTreeMapRange* obj);
1499 #define GEE_TREE_MAP_SUB_MAP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_SUB_MAP, GeeTreeMapSubMapPrivate))
1501 GEE_TREE_MAP_SUB_MAP_DUMMY_PROPERTY,
1502 GEE_TREE_MAP_SUB_MAP_K_TYPE,
1503 GEE_TREE_MAP_SUB_MAP_K_DUP_FUNC,
1504 GEE_TREE_MAP_SUB_MAP_K_DESTROY_FUNC,
1505 GEE_TREE_MAP_SUB_MAP_V_TYPE,
1506 GEE_TREE_MAP_SUB_MAP_V_DUP_FUNC,
1507 GEE_TREE_MAP_SUB_MAP_V_DESTROY_FUNC,
1508 GEE_TREE_MAP_SUB_MAP_SIZE,
1509 GEE_TREE_MAP_SUB_MAP_IS_EMPTY,
1510 GEE_TREE_MAP_SUB_MAP_KEYS,
1511 GEE_TREE_MAP_SUB_MAP_VALUES,
1512 GEE_TREE_MAP_SUB_MAP_ENTRIES,
1513 GEE_TREE_MAP_SUB_MAP_READ_ONLY,
1514 GEE_TREE_MAP_SUB_MAP_ASCENDING_KEYS,
1515 GEE_TREE_MAP_SUB_MAP_ASCENDING_ENTRIES
1517 static gboolean gee_tree_map_sub_map_real_has_key (GeeAbstractMap* base, gconstpointer key);
1518 gboolean gee_abstract_map_has_key (GeeAbstractMap* self, gconstpointer key);
1519 static gboolean gee_tree_map_sub_map_real_has (GeeAbstractMap* base, gconstpointer key, gconstpointer value);
1520 gboolean gee_abstract_map_has (GeeAbstractMap* self, gconstpointer key, gconstpointer value);
1521 static gpointer gee_tree_map_sub_map_real_get (GeeAbstractMap* base, gconstpointer key);
1522 static void gee_tree_map_sub_map_real_set (GeeAbstractMap* base, gconstpointer key, gconstpointer value);
1523 void gee_abstract_map_set (GeeAbstractMap* self, gconstpointer key, gconstpointer value);
1524 static gboolean gee_tree_map_sub_map_real_unset (GeeAbstractMap* base, gconstpointer key, gpointer* value);
1525 gboolean gee_abstract_map_unset (GeeAbstractMap* self, gconstpointer key, gpointer* value);
1526 static void gee_tree_map_sub_map_real_clear (GeeAbstractMap* base);
1527 GeeMapIterator* gee_abstract_map_map_iterator (GeeAbstractMap* self);
1528 gboolean gee_map_iterator_next (GeeMapIterator* self);
1529 void gee_map_iterator_unset (GeeMapIterator* self);
1530 static GeeMapIterator* gee_tree_map_sub_map_real_map_iterator (GeeAbstractMap* base);
1531 static GeeTreeMapSubMapIterator* gee_tree_map_sub_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, GeeTreeMap* map, GeeTreeMapRange* range);
1532 static GeeTreeMapSubMapIterator* gee_tree_map_sub_map_iterator_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, GeeTreeMap* map, GeeTreeMapRange* range);
1533 static GType gee_tree_map_sub_node_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1534 static GType gee_tree_map_sub_map_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1535 static GeeBidirMapIterator* gee_tree_map_sub_map_real_bidir_map_iterator (GeeAbstractBidirSortedMap* base);
1536 static GeeSortedMap* gee_tree_map_sub_map_real_head_map (GeeAbstractSortedMap* base, gconstpointer before);
1537 static GeeSortedMap* gee_tree_map_sub_map_real_tail_map (GeeAbstractSortedMap* base, gconstpointer after);
1538 static GeeSortedMap* gee_tree_map_sub_map_real_sub_map (GeeAbstractSortedMap* base, gconstpointer after, gconstpointer before);
1539 GeeSet* gee_abstract_map_get_keys (GeeAbstractMap* self);
1540 gint gee_collection_get_size (GeeCollection* self);
1541 static gboolean gee_tree_map_sub_map_get_is_empty (GeeTreeMapSubMap* self);
1542 gboolean gee_collection_get_is_empty (GeeCollection* self);
1543 static GeeTreeMapSubKeySet* gee_tree_map_sub_key_set_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range);
1544 static GeeTreeMapSubKeySet* gee_tree_map_sub_key_set_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, GeeTreeMap* map, GeeTreeMapRange* range);
1545 static GType gee_tree_map_sub_key_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1546 static GeeTreeMapSubValueCollection* gee_tree_map_sub_value_collection_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range);
1547 static GeeTreeMapSubValueCollection* gee_tree_map_sub_value_collection_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, GeeTreeMap* map, GeeTreeMapRange* range);
1548 static GType gee_tree_map_sub_value_collection_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1549 static GeeTreeMapSubEntrySet* gee_tree_map_sub_entry_set_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range);
1550 static GeeTreeMapSubEntrySet* gee_tree_map_sub_entry_set_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, GeeTreeMap* map, GeeTreeMapRange* range);
1551 static GType gee_tree_map_sub_entry_set_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1552 static void gee_tree_map_sub_map_finalize (GObject* obj);
1553 gint gee_abstract_map_get_size (GeeAbstractMap* self);
1554 GeeCollection* gee_abstract_map_get_values (GeeAbstractMap* self);
1555 GeeSet* gee_abstract_map_get_entries (GeeAbstractMap* self);
1556 gboolean gee_abstract_map_get_read_only (GeeAbstractMap* self);
1557 GeeSortedSet* gee_abstract_sorted_map_get_ascending_keys (GeeAbstractSortedMap* self);
1558 GeeSortedSet* gee_abstract_sorted_map_get_ascending_entries (GeeAbstractSortedMap* self);
1559 static void _vala_gee_tree_map_sub_map_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1560 static void _vala_gee_tree_map_sub_map_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1561 GType gee_bidir_iterator_get_type (void) G_GNUC_CONST;
1562 GType gee_bidir_sorted_set_get_type (void) G_GNUC_CONST;
1563 #define GEE_TREE_MAP_KEY_SET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_KEY_SET, GeeTreeMapKeySetPrivate))
1565 GEE_TREE_MAP_KEY_SET_DUMMY_PROPERTY,
1566 GEE_TREE_MAP_KEY_SET_K_TYPE,
1567 GEE_TREE_MAP_KEY_SET_K_DUP_FUNC,
1568 GEE_TREE_MAP_KEY_SET_K_DESTROY_FUNC,
1569 GEE_TREE_MAP_KEY_SET_V_TYPE,
1570 GEE_TREE_MAP_KEY_SET_V_DUP_FUNC,
1571 GEE_TREE_MAP_KEY_SET_V_DESTROY_FUNC,
1572 GEE_TREE_MAP_KEY_SET_SIZE,
1573 GEE_TREE_MAP_KEY_SET_READ_ONLY
1575 GeeAbstractBidirSortedSet* gee_abstract_bidir_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
1576 static GeeIterator* gee_tree_map_key_set_real_iterator (GeeAbstractCollection* base);
1577 static GeeTreeMapKeyIterator* gee_tree_map_key_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map);
1578 static GeeTreeMapKeyIterator* gee_tree_map_key_iterator_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, GeeTreeMap* map);
1579 static GType gee_tree_map_key_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1580 static gboolean gee_tree_map_key_set_real_add (GeeAbstractCollection* base, gconstpointer key);
1581 static void gee_tree_map_key_set_real_clear (GeeAbstractCollection* base);
1582 static gboolean gee_tree_map_key_set_real_remove (GeeAbstractCollection* base, gconstpointer key);
1583 static gboolean gee_tree_map_key_set_real_contains (GeeAbstractCollection* base, gconstpointer key);
1584 static gpointer gee_tree_map_key_set_real_first (GeeAbstractSortedSet* base);
1585 static gpointer gee_tree_map_key_set_real_last (GeeAbstractSortedSet* base);
1586 static GeeBidirIterator* gee_tree_map_key_set_real_bidir_iterator (GeeAbstractBidirSortedSet* base);
1587 static GeeSortedSet* gee_tree_map_key_set_real_head_set (GeeAbstractSortedSet* base, gconstpointer before);
1588 static GeeSortedSet* gee_tree_map_key_set_real_tail_set (GeeAbstractSortedSet* base, gconstpointer after);
1589 static GeeSortedSet* gee_tree_map_key_set_real_sub_set (GeeAbstractSortedSet* base, gconstpointer after, gconstpointer before);
1590 static GeeIterator* gee_tree_map_key_set_real_iterator_at (GeeAbstractSortedSet* base, gconstpointer item);
1591 static GeeTreeMapKeyIterator* gee_tree_map_key_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapNode* current);
1592 static GeeTreeMapKeyIterator* gee_tree_map_key_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapNode* current);
1593 static gpointer gee_tree_map_key_set_real_lower (GeeAbstractSortedSet* base, gconstpointer item);
1594 static gpointer gee_tree_map_key_set_real_higher (GeeAbstractSortedSet* base, gconstpointer item);
1595 static gpointer gee_tree_map_key_set_real_floor (GeeAbstractSortedSet* base, gconstpointer item);
1596 static gpointer gee_tree_map_key_set_real_ceil (GeeAbstractSortedSet* base, gconstpointer item);
1597 static void gee_tree_map_key_set_finalize (GObject* obj);
1598 gint gee_abstract_collection_get_size (GeeAbstractCollection* self);
1599 gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self);
1600 static void _vala_gee_tree_map_key_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1601 static void _vala_gee_tree_map_key_set_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1602 #define GEE_TREE_MAP_SUB_KEY_SET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_SUB_KEY_SET, GeeTreeMapSubKeySetPrivate))
1604 GEE_TREE_MAP_SUB_KEY_SET_DUMMY_PROPERTY,
1605 GEE_TREE_MAP_SUB_KEY_SET_K_TYPE,
1606 GEE_TREE_MAP_SUB_KEY_SET_K_DUP_FUNC,
1607 GEE_TREE_MAP_SUB_KEY_SET_K_DESTROY_FUNC,
1608 GEE_TREE_MAP_SUB_KEY_SET_V_TYPE,
1609 GEE_TREE_MAP_SUB_KEY_SET_V_DUP_FUNC,
1610 GEE_TREE_MAP_SUB_KEY_SET_V_DESTROY_FUNC,
1611 GEE_TREE_MAP_SUB_KEY_SET_MAP,
1612 GEE_TREE_MAP_SUB_KEY_SET_RANGE,
1613 GEE_TREE_MAP_SUB_KEY_SET_SIZE,
1614 GEE_TREE_MAP_SUB_KEY_SET_READ_ONLY,
1615 GEE_TREE_MAP_SUB_KEY_SET_IS_EMPTY
1617 static void gee_tree_map_sub_key_set_set_map (GeeTreeMapSubKeySet* self, GeeTreeMap* value);
1618 static void gee_tree_map_sub_key_set_set_range (GeeTreeMapSubKeySet* self, GeeTreeMapRange* value);
1619 static GeeIterator* gee_tree_map_sub_key_set_real_iterator (GeeAbstractCollection* base);
1620 static GeeTreeMap* gee_tree_map_sub_key_set_get_map (GeeTreeMapSubKeySet* self);
1621 static GeeTreeMapRange* gee_tree_map_sub_key_set_get_range (GeeTreeMapSubKeySet* self);
1622 static GeeTreeMapSubKeyIterator* gee_tree_map_sub_key_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range);
1623 static GeeTreeMapSubKeyIterator* gee_tree_map_sub_key_iterator_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, GeeTreeMap* map, GeeTreeMapRange* range);
1624 static GType gee_tree_map_sub_key_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1625 static gboolean gee_tree_map_sub_key_set_real_add (GeeAbstractCollection* base, gconstpointer key);
1626 static void gee_tree_map_sub_key_set_real_clear (GeeAbstractCollection* base);
1627 static gboolean gee_tree_map_sub_key_set_real_remove (GeeAbstractCollection* base, gconstpointer key);
1628 static gboolean gee_tree_map_sub_key_set_real_contains (GeeAbstractCollection* base, gconstpointer key);
1629 static GeeBidirIterator* gee_tree_map_sub_key_set_real_bidir_iterator (GeeAbstractBidirSortedSet* base);
1630 static gpointer gee_tree_map_sub_key_set_real_first (GeeAbstractSortedSet* base);
1631 static gpointer gee_tree_map_sub_key_set_real_last (GeeAbstractSortedSet* base);
1632 static GeeSortedSet* gee_tree_map_sub_key_set_real_head_set (GeeAbstractSortedSet* base, gconstpointer before);
1633 static GeeSortedSet* gee_tree_map_sub_key_set_real_tail_set (GeeAbstractSortedSet* base, gconstpointer after);
1634 static GeeSortedSet* gee_tree_map_sub_key_set_real_sub_set (GeeAbstractSortedSet* base, gconstpointer after, gconstpointer before);
1635 static GeeIterator* gee_tree_map_sub_key_set_real_iterator_at (GeeAbstractSortedSet* base, gconstpointer key);
1636 static GeeTreeMapSubKeyIterator* gee_tree_map_sub_key_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node);
1637 static GeeTreeMapSubKeyIterator* gee_tree_map_sub_key_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node);
1638 static gpointer gee_tree_map_sub_key_set_real_lower (GeeAbstractSortedSet* base, gconstpointer key);
1639 gpointer gee_abstract_sorted_set_last (GeeAbstractSortedSet* self);
1640 static gpointer gee_tree_map_sub_key_set_real_higher (GeeAbstractSortedSet* base, gconstpointer key);
1641 gpointer gee_abstract_sorted_set_first (GeeAbstractSortedSet* self);
1642 static gpointer gee_tree_map_sub_key_set_real_floor (GeeAbstractSortedSet* base, gconstpointer key);
1643 static gpointer gee_tree_map_sub_key_set_real_ceil (GeeAbstractSortedSet* base, gconstpointer key);
1644 GeeIterator* gee_abstract_collection_iterator (GeeAbstractCollection* self);
1645 gboolean gee_iterator_next (GeeIterator* self);
1646 static gboolean gee_tree_map_sub_key_set_get_is_empty (GeeTreeMapSubKeySet* self);
1647 static void gee_tree_map_sub_key_set_finalize (GObject* obj);
1648 static void _vala_gee_tree_map_sub_key_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1649 static void _vala_gee_tree_map_sub_key_set_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1650 #define GEE_TREE_MAP_VALUE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_VALUE_COLLECTION, GeeTreeMapValueCollectionPrivate))
1652 GEE_TREE_MAP_VALUE_COLLECTION_DUMMY_PROPERTY,
1653 GEE_TREE_MAP_VALUE_COLLECTION_K_TYPE,
1654 GEE_TREE_MAP_VALUE_COLLECTION_K_DUP_FUNC,
1655 GEE_TREE_MAP_VALUE_COLLECTION_K_DESTROY_FUNC,
1656 GEE_TREE_MAP_VALUE_COLLECTION_V_TYPE,
1657 GEE_TREE_MAP_VALUE_COLLECTION_V_DUP_FUNC,
1658 GEE_TREE_MAP_VALUE_COLLECTION_V_DESTROY_FUNC,
1659 GEE_TREE_MAP_VALUE_COLLECTION_SIZE,
1660 GEE_TREE_MAP_VALUE_COLLECTION_READ_ONLY
1662 GeeAbstractCollection* gee_abstract_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
1663 static GeeIterator* gee_tree_map_value_collection_real_iterator (GeeAbstractCollection* base);
1664 static GeeTreeMapValueIterator* gee_tree_map_value_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map);
1665 static GeeTreeMapValueIterator* gee_tree_map_value_iterator_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, GeeTreeMap* map);
1666 static GType gee_tree_map_value_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1667 static gboolean gee_tree_map_value_collection_real_add (GeeAbstractCollection* base, gconstpointer key);
1668 static void gee_tree_map_value_collection_real_clear (GeeAbstractCollection* base);
1669 static gboolean gee_tree_map_value_collection_real_remove (GeeAbstractCollection* base, gconstpointer key);
1670 static gboolean gee_tree_map_value_collection_real_contains (GeeAbstractCollection* base, gconstpointer key);
1671 gpointer gee_iterator_get (GeeIterator* self);
1672 static void gee_tree_map_value_collection_finalize (GObject* obj);
1673 static void _vala_gee_tree_map_value_collection_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1674 static void _vala_gee_tree_map_value_collection_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1675 #define GEE_TREE_MAP_SUB_VALUE_COLLECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_SUB_VALUE_COLLECTION, GeeTreeMapSubValueCollectionPrivate))
1677 GEE_TREE_MAP_SUB_VALUE_COLLECTION_DUMMY_PROPERTY,
1678 GEE_TREE_MAP_SUB_VALUE_COLLECTION_K_TYPE,
1679 GEE_TREE_MAP_SUB_VALUE_COLLECTION_K_DUP_FUNC,
1680 GEE_TREE_MAP_SUB_VALUE_COLLECTION_K_DESTROY_FUNC,
1681 GEE_TREE_MAP_SUB_VALUE_COLLECTION_V_TYPE,
1682 GEE_TREE_MAP_SUB_VALUE_COLLECTION_V_DUP_FUNC,
1683 GEE_TREE_MAP_SUB_VALUE_COLLECTION_V_DESTROY_FUNC,
1684 GEE_TREE_MAP_SUB_VALUE_COLLECTION_MAP,
1685 GEE_TREE_MAP_SUB_VALUE_COLLECTION_RANGE,
1686 GEE_TREE_MAP_SUB_VALUE_COLLECTION_READ_ONLY,
1687 GEE_TREE_MAP_SUB_VALUE_COLLECTION_SIZE,
1688 GEE_TREE_MAP_SUB_VALUE_COLLECTION_IS_EMPTY
1690 static void gee_tree_map_sub_value_collection_set_map (GeeTreeMapSubValueCollection* self, GeeTreeMap* value);
1691 static void gee_tree_map_sub_value_collection_set_range (GeeTreeMapSubValueCollection* self, GeeTreeMapRange* value);
1692 static GeeIterator* gee_tree_map_sub_value_collection_real_iterator (GeeAbstractCollection* base);
1693 static GeeTreeMap* gee_tree_map_sub_value_collection_get_map (GeeTreeMapSubValueCollection* self);
1694 static GeeTreeMapRange* gee_tree_map_sub_value_collection_get_range (GeeTreeMapSubValueCollection* self);
1695 static GeeTreeMapSubValueIterator* gee_tree_map_sub_value_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range);
1696 static GeeTreeMapSubValueIterator* gee_tree_map_sub_value_iterator_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, GeeTreeMap* map, GeeTreeMapRange* range);
1697 static GType gee_tree_map_sub_value_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1698 static gboolean gee_tree_map_sub_value_collection_real_add (GeeAbstractCollection* base, gconstpointer key);
1699 static void gee_tree_map_sub_value_collection_real_clear (GeeAbstractCollection* base);
1700 static gboolean gee_tree_map_sub_value_collection_real_remove (GeeAbstractCollection* base, gconstpointer key);
1701 static gboolean gee_tree_map_sub_value_collection_real_contains (GeeAbstractCollection* base, gconstpointer key);
1702 static gboolean gee_tree_map_sub_value_collection_get_is_empty (GeeTreeMapSubValueCollection* self);
1703 static void gee_tree_map_sub_value_collection_finalize (GObject* obj);
1704 static void _vala_gee_tree_map_sub_value_collection_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1705 static void _vala_gee_tree_map_sub_value_collection_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1706 #define GEE_TREE_MAP_ENTRY_SET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_ENTRY_SET, GeeTreeMapEntrySetPrivate))
1708 GEE_TREE_MAP_ENTRY_SET_DUMMY_PROPERTY,
1709 GEE_TREE_MAP_ENTRY_SET_K_TYPE,
1710 GEE_TREE_MAP_ENTRY_SET_K_DUP_FUNC,
1711 GEE_TREE_MAP_ENTRY_SET_K_DESTROY_FUNC,
1712 GEE_TREE_MAP_ENTRY_SET_V_TYPE,
1713 GEE_TREE_MAP_ENTRY_SET_V_DUP_FUNC,
1714 GEE_TREE_MAP_ENTRY_SET_V_DESTROY_FUNC,
1715 GEE_TREE_MAP_ENTRY_SET_SIZE,
1716 GEE_TREE_MAP_ENTRY_SET_READ_ONLY
1718 static GeeIterator* gee_tree_map_entry_set_real_iterator (GeeAbstractCollection* base);
1719 static GeeTreeMapEntryIterator* gee_tree_map_entry_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map);
1720 static GeeTreeMapEntryIterator* gee_tree_map_entry_iterator_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, GeeTreeMap* map);
1721 static GType gee_tree_map_entry_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1722 static gboolean gee_tree_map_entry_set_real_add (GeeAbstractCollection* base, GeeMapEntry* entry);
1723 static void gee_tree_map_entry_set_real_clear (GeeAbstractCollection* base);
1724 static gboolean gee_tree_map_entry_set_real_remove (GeeAbstractCollection* base, GeeMapEntry* entry);
1725 static gboolean gee_tree_map_entry_set_real_contains (GeeAbstractCollection* base, GeeMapEntry* entry);
1726 static GeeMapEntry* gee_tree_map_entry_set_real_first (GeeAbstractSortedSet* base);
1727 static GeeMapEntry* gee_tree_map_entry_set_real_last (GeeAbstractSortedSet* base);
1728 static GeeBidirIterator* gee_tree_map_entry_set_real_bidir_iterator (GeeAbstractBidirSortedSet* base);
1729 static GeeSortedSet* gee_tree_map_entry_set_real_head_set (GeeAbstractSortedSet* base, GeeMapEntry* before);
1730 static GeeSortedSet* gee_tree_map_entry_set_real_tail_set (GeeAbstractSortedSet* base, GeeMapEntry* after);
1731 static GeeSortedSet* gee_tree_map_entry_set_real_sub_set (GeeAbstractSortedSet* base, GeeMapEntry* after, GeeMapEntry* before);
1732 static GeeIterator* gee_tree_map_entry_set_real_iterator_at (GeeAbstractSortedSet* base, GeeMapEntry* item);
1733 static GeeTreeMapEntryIterator* gee_tree_map_entry_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapNode* node);
1734 static GeeTreeMapEntryIterator* gee_tree_map_entry_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapNode* node);
1735 static GeeMapEntry* gee_tree_map_entry_set_real_lower (GeeAbstractSortedSet* base, GeeMapEntry* item);
1736 static GeeMapEntry* gee_tree_map_entry_set_real_higher (GeeAbstractSortedSet* base, GeeMapEntry* item);
1737 static GeeMapEntry* gee_tree_map_entry_set_real_floor (GeeAbstractSortedSet* base, GeeMapEntry* item);
1738 static GeeMapEntry* gee_tree_map_entry_set_real_ceil (GeeAbstractSortedSet* base, GeeMapEntry* item);
1739 static void gee_tree_map_entry_set_finalize (GObject* obj);
1740 static void _vala_gee_tree_map_entry_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1741 static void _vala_gee_tree_map_entry_set_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1742 #define GEE_TREE_MAP_SUB_ENTRY_SET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_SUB_ENTRY_SET, GeeTreeMapSubEntrySetPrivate))
1744 GEE_TREE_MAP_SUB_ENTRY_SET_DUMMY_PROPERTY,
1745 GEE_TREE_MAP_SUB_ENTRY_SET_K_TYPE,
1746 GEE_TREE_MAP_SUB_ENTRY_SET_K_DUP_FUNC,
1747 GEE_TREE_MAP_SUB_ENTRY_SET_K_DESTROY_FUNC,
1748 GEE_TREE_MAP_SUB_ENTRY_SET_V_TYPE,
1749 GEE_TREE_MAP_SUB_ENTRY_SET_V_DUP_FUNC,
1750 GEE_TREE_MAP_SUB_ENTRY_SET_V_DESTROY_FUNC,
1751 GEE_TREE_MAP_SUB_ENTRY_SET_MAP,
1752 GEE_TREE_MAP_SUB_ENTRY_SET_RANGE,
1753 GEE_TREE_MAP_SUB_ENTRY_SET_SIZE,
1754 GEE_TREE_MAP_SUB_ENTRY_SET_READ_ONLY,
1755 GEE_TREE_MAP_SUB_ENTRY_SET_IS_EMPTY
1757 static void gee_tree_map_sub_entry_set_set_map (GeeTreeMapSubEntrySet* self, GeeTreeMap* value);
1758 static void gee_tree_map_sub_entry_set_set_range (GeeTreeMapSubEntrySet* self, GeeTreeMapRange* value);
1759 static GeeIterator* gee_tree_map_sub_entry_set_real_iterator (GeeAbstractCollection* base);
1760 static GeeTreeMap* gee_tree_map_sub_entry_set_get_map (GeeTreeMapSubEntrySet* self);
1761 static GeeTreeMapRange* gee_tree_map_sub_entry_set_get_range (GeeTreeMapSubEntrySet* self);
1762 static GeeTreeMapSubEntryIterator* gee_tree_map_sub_entry_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range);
1763 static GeeTreeMapSubEntryIterator* gee_tree_map_sub_entry_iterator_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, GeeTreeMap* map, GeeTreeMapRange* range);
1764 static GType gee_tree_map_sub_entry_iterator_get_type (void) G_GNUC_CONST G_GNUC_UNUSED;
1765 static gboolean gee_tree_map_sub_entry_set_real_add (GeeAbstractCollection* base, GeeMapEntry* entry);
1766 static void gee_tree_map_sub_entry_set_real_clear (GeeAbstractCollection* base);
1767 static gboolean gee_tree_map_sub_entry_set_real_remove (GeeAbstractCollection* base, GeeMapEntry* entry);
1768 static gboolean gee_tree_map_sub_entry_set_real_contains (GeeAbstractCollection* base, GeeMapEntry* entry);
1769 static GeeBidirIterator* gee_tree_map_sub_entry_set_real_bidir_iterator (GeeAbstractBidirSortedSet* base);
1770 static GeeMapEntry* gee_tree_map_sub_entry_set_real_first (GeeAbstractSortedSet* base);
1771 static GeeMapEntry* gee_tree_map_sub_entry_set_real_last (GeeAbstractSortedSet* base);
1772 static GeeSortedSet* gee_tree_map_sub_entry_set_real_head_set (GeeAbstractSortedSet* base, GeeMapEntry* before);
1773 static GeeSortedSet* gee_tree_map_sub_entry_set_real_tail_set (GeeAbstractSortedSet* base, GeeMapEntry* after);
1774 static GeeSortedSet* gee_tree_map_sub_entry_set_real_sub_set (GeeAbstractSortedSet* base, GeeMapEntry* after, GeeMapEntry* before);
1775 static GeeIterator* gee_tree_map_sub_entry_set_real_iterator_at (GeeAbstractSortedSet* base, GeeMapEntry* entry);
1776 static GeeTreeMapSubEntryIterator* gee_tree_map_sub_entry_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node);
1777 static GeeTreeMapSubEntryIterator* gee_tree_map_sub_entry_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node);
1778 static GeeMapEntry* gee_tree_map_sub_entry_set_real_lower (GeeAbstractSortedSet* base, GeeMapEntry* entry);
1779 static GeeMapEntry* gee_tree_map_sub_entry_set_real_higher (GeeAbstractSortedSet* base, GeeMapEntry* entry);
1780 static GeeMapEntry* gee_tree_map_sub_entry_set_real_floor (GeeAbstractSortedSet* base, GeeMapEntry* entry);
1781 static GeeMapEntry* gee_tree_map_sub_entry_set_real_ceil (GeeAbstractSortedSet* base, GeeMapEntry* entry);
1782 static gboolean gee_tree_map_sub_entry_set_get_is_empty (GeeTreeMapSubEntrySet* self);
1783 static void gee_tree_map_sub_entry_set_finalize (GObject* obj);
1784 static void _vala_gee_tree_map_sub_entry_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1785 static void _vala_gee_tree_map_sub_entry_set_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1786 #define GEE_TREE_MAP_NODE_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_NODE_ITERATOR, GeeTreeMapNodeIteratorPrivate))
1788 GEE_TREE_MAP_NODE_ITERATOR_DUMMY_PROPERTY,
1789 GEE_TREE_MAP_NODE_ITERATOR_K_TYPE,
1790 GEE_TREE_MAP_NODE_ITERATOR_K_DUP_FUNC,
1791 GEE_TREE_MAP_NODE_ITERATOR_K_DESTROY_FUNC,
1792 GEE_TREE_MAP_NODE_ITERATOR_V_TYPE,
1793 GEE_TREE_MAP_NODE_ITERATOR_V_DUP_FUNC,
1794 GEE_TREE_MAP_NODE_ITERATOR_V_DESTROY_FUNC,
1795 GEE_TREE_MAP_NODE_ITERATOR_READ_ONLY,
1796 GEE_TREE_MAP_NODE_ITERATOR_VALID
1798 static GeeTreeMapNodeIterator* gee_tree_map_node_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map);
1799 static GeeTreeMapNodeIterator* gee_tree_map_node_iterator_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, GeeTreeMap* map);
1800 static GeeTreeMapNodeIterator* gee_tree_map_node_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapNode* current);
1801 static GeeTreeMapNodeIterator* gee_tree_map_node_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapNode* current);
1802 static gboolean gee_tree_map_node_iterator_next (GeeTreeMapNodeIterator* self);
1803 static gboolean gee_tree_map_node_iterator_has_next (GeeTreeMapNodeIterator* self);
1804 static gboolean gee_tree_map_node_iterator_first (GeeTreeMapNodeIterator* self);
1805 static gboolean gee_tree_map_node_iterator_previous (GeeTreeMapNodeIterator* self);
1806 static gboolean gee_tree_map_node_iterator_has_previous (GeeTreeMapNodeIterator* self);
1807 static gboolean gee_tree_map_node_iterator_last (GeeTreeMapNodeIterator* self);
1808 static void gee_tree_map_node_iterator_remove (GeeTreeMapNodeIterator* self);
1809 static void gee_tree_map_node_iterator_unset (GeeTreeMapNodeIterator* self);
1810 static GeeTreeMapNode* gee_tree_map_node_iterator_safe_next_get (GeeTreeMapNodeIterator* self);
1811 static GeeTreeMapNode* gee_tree_map_node_iterator_safe_previous_get (GeeTreeMapNodeIterator* self);
1812 static gboolean gee_tree_map_node_iterator_get_read_only (GeeTreeMapNodeIterator* self);
1813 static gboolean gee_tree_map_node_iterator_get_valid (GeeTreeMapNodeIterator* self);
1814 static void gee_tree_map_node_iterator_finalize (GObject* obj);
1815 static void _vala_gee_tree_map_node_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1816 static void _vala_gee_tree_map_node_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1817 #define GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, GeeTreeMapSubNodeIteratorPrivate))
1819 GEE_TREE_MAP_SUB_NODE_ITERATOR_DUMMY_PROPERTY,
1820 GEE_TREE_MAP_SUB_NODE_ITERATOR_K_TYPE,
1821 GEE_TREE_MAP_SUB_NODE_ITERATOR_K_DUP_FUNC,
1822 GEE_TREE_MAP_SUB_NODE_ITERATOR_K_DESTROY_FUNC,
1823 GEE_TREE_MAP_SUB_NODE_ITERATOR_V_TYPE,
1824 GEE_TREE_MAP_SUB_NODE_ITERATOR_V_DUP_FUNC,
1825 GEE_TREE_MAP_SUB_NODE_ITERATOR_V_DESTROY_FUNC,
1826 GEE_TREE_MAP_SUB_NODE_ITERATOR_READ_ONLY,
1827 GEE_TREE_MAP_SUB_NODE_ITERATOR_VALID
1829 static GeeTreeMapSubNodeIterator* gee_tree_map_sub_node_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range);
1830 static GeeTreeMapSubNodeIterator* gee_tree_map_sub_node_iterator_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, GeeTreeMap* map, GeeTreeMapRange* range);
1831 static GeeTreeMapSubNodeIterator* gee_tree_map_sub_node_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node);
1832 static GeeTreeMapSubNodeIterator* gee_tree_map_sub_node_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node);
1833 static gboolean gee_tree_map_sub_node_iterator_next (GeeTreeMapSubNodeIterator* self);
1834 static gboolean gee_tree_map_sub_node_iterator_first (GeeTreeMapSubNodeIterator* self);
1835 static gboolean gee_tree_map_sub_node_iterator_has_next (GeeTreeMapSubNodeIterator* self);
1836 static gboolean gee_tree_map_sub_node_iterator_real_first (GeeTreeMapSubNodeIterator* self);
1837 static GeeTreeMapNodeIterator* gee_tree_map_sub_node_iterator_iterator_pointing_at (GeeTreeMapSubNodeIterator* self, GeeTreeMapNode* node);
1838 static gboolean gee_tree_map_sub_node_iterator_previous (GeeTreeMapSubNodeIterator* self);
1839 static gboolean gee_tree_map_sub_node_iterator_has_previous (GeeTreeMapSubNodeIterator* self);
1840 static gboolean gee_tree_map_sub_node_iterator_last (GeeTreeMapSubNodeIterator* self);
1841 static gboolean gee_tree_map_sub_node_iterator_real_last (GeeTreeMapSubNodeIterator* self);
1842 static void gee_tree_map_sub_node_iterator_remove (GeeTreeMapSubNodeIterator* self);
1843 static gboolean gee_tree_map_sub_node_iterator_get_valid (GeeTreeMapSubNodeIterator* self);
1844 static void gee_tree_map_sub_node_iterator_unset (GeeTreeMapSubNodeIterator* self);
1845 static GeeTreeMapNodeIterator* gee_tree_map_sub_node_iterator_real_iterator_pointing_at (GeeTreeMapSubNodeIterator* self, GeeTreeMapNode* node);
1846 static gboolean gee_tree_map_sub_node_iterator_get_read_only (GeeTreeMapSubNodeIterator* self);
1847 static void gee_tree_map_sub_node_iterator_finalize (GObject* obj);
1848 static void _vala_gee_tree_map_sub_node_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1849 static void _vala_gee_tree_map_sub_node_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1850 #define GEE_TREE_MAP_KEY_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_KEY_ITERATOR, GeeTreeMapKeyIteratorPrivate))
1852 GEE_TREE_MAP_KEY_ITERATOR_DUMMY_PROPERTY,
1853 GEE_TREE_MAP_KEY_ITERATOR_K_TYPE,
1854 GEE_TREE_MAP_KEY_ITERATOR_K_DUP_FUNC,
1855 GEE_TREE_MAP_KEY_ITERATOR_K_DESTROY_FUNC,
1856 GEE_TREE_MAP_KEY_ITERATOR_V_TYPE,
1857 GEE_TREE_MAP_KEY_ITERATOR_V_DUP_FUNC,
1858 GEE_TREE_MAP_KEY_ITERATOR_V_DESTROY_FUNC
1860 static gpointer gee_tree_map_key_iterator_real_get (GeeIterator* base);
1861 static gboolean gee_tree_map_key_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target);
1862 static void _vala_gee_tree_map_key_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1863 static void _vala_gee_tree_map_key_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1864 #define GEE_TREE_MAP_SUB_KEY_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_SUB_KEY_ITERATOR, GeeTreeMapSubKeyIteratorPrivate))
1866 GEE_TREE_MAP_SUB_KEY_ITERATOR_DUMMY_PROPERTY,
1867 GEE_TREE_MAP_SUB_KEY_ITERATOR_K_TYPE,
1868 GEE_TREE_MAP_SUB_KEY_ITERATOR_K_DUP_FUNC,
1869 GEE_TREE_MAP_SUB_KEY_ITERATOR_K_DESTROY_FUNC,
1870 GEE_TREE_MAP_SUB_KEY_ITERATOR_V_TYPE,
1871 GEE_TREE_MAP_SUB_KEY_ITERATOR_V_DUP_FUNC,
1872 GEE_TREE_MAP_SUB_KEY_ITERATOR_V_DESTROY_FUNC
1874 static gpointer gee_tree_map_sub_key_iterator_real_get (GeeIterator* base);
1875 gboolean gee_iterator_get_valid (GeeIterator* self);
1876 static gboolean gee_tree_map_sub_key_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target);
1877 static void _vala_gee_tree_map_sub_key_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1878 static void _vala_gee_tree_map_sub_key_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1879 #define GEE_TREE_MAP_VALUE_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_VALUE_ITERATOR, GeeTreeMapValueIteratorPrivate))
1881 GEE_TREE_MAP_VALUE_ITERATOR_DUMMY_PROPERTY,
1882 GEE_TREE_MAP_VALUE_ITERATOR_K_TYPE,
1883 GEE_TREE_MAP_VALUE_ITERATOR_K_DUP_FUNC,
1884 GEE_TREE_MAP_VALUE_ITERATOR_K_DESTROY_FUNC,
1885 GEE_TREE_MAP_VALUE_ITERATOR_V_TYPE,
1886 GEE_TREE_MAP_VALUE_ITERATOR_V_DUP_FUNC,
1887 GEE_TREE_MAP_VALUE_ITERATOR_V_DESTROY_FUNC
1889 static GeeTreeMapValueIterator* gee_tree_map_value_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapNode* current);
1890 static GeeTreeMapValueIterator* gee_tree_map_value_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapNode* current);
1891 static gpointer gee_tree_map_value_iterator_real_get (GeeIterator* base);
1892 static gboolean gee_tree_map_value_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target);
1893 static void _vala_gee_tree_map_value_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1894 static void _vala_gee_tree_map_value_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1895 #define GEE_TREE_MAP_SUB_VALUE_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_SUB_VALUE_ITERATOR, GeeTreeMapSubValueIteratorPrivate))
1897 GEE_TREE_MAP_SUB_VALUE_ITERATOR_DUMMY_PROPERTY,
1898 GEE_TREE_MAP_SUB_VALUE_ITERATOR_K_TYPE,
1899 GEE_TREE_MAP_SUB_VALUE_ITERATOR_K_DUP_FUNC,
1900 GEE_TREE_MAP_SUB_VALUE_ITERATOR_K_DESTROY_FUNC,
1901 GEE_TREE_MAP_SUB_VALUE_ITERATOR_V_TYPE,
1902 GEE_TREE_MAP_SUB_VALUE_ITERATOR_V_DUP_FUNC,
1903 GEE_TREE_MAP_SUB_VALUE_ITERATOR_V_DESTROY_FUNC
1905 static GeeTreeMapSubValueIterator* gee_tree_map_sub_value_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node);
1906 static GeeTreeMapSubValueIterator* gee_tree_map_sub_value_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node);
1907 static gpointer gee_tree_map_sub_value_iterator_real_get (GeeIterator* base);
1908 static gboolean gee_tree_map_sub_value_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target);
1909 static void _vala_gee_tree_map_sub_value_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1910 static void _vala_gee_tree_map_sub_value_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1911 #define GEE_TREE_MAP_ENTRY_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_ENTRY_ITERATOR, GeeTreeMapEntryIteratorPrivate))
1913 GEE_TREE_MAP_ENTRY_ITERATOR_DUMMY_PROPERTY,
1914 GEE_TREE_MAP_ENTRY_ITERATOR_K_TYPE,
1915 GEE_TREE_MAP_ENTRY_ITERATOR_K_DUP_FUNC,
1916 GEE_TREE_MAP_ENTRY_ITERATOR_K_DESTROY_FUNC,
1917 GEE_TREE_MAP_ENTRY_ITERATOR_V_TYPE,
1918 GEE_TREE_MAP_ENTRY_ITERATOR_V_DUP_FUNC,
1919 GEE_TREE_MAP_ENTRY_ITERATOR_V_DESTROY_FUNC
1921 static GeeMapEntry* gee_tree_map_entry_iterator_real_get (GeeIterator* base);
1922 static void gee_tree_map_entry_iterator_real_remove (GeeIterator* base);
1923 static gboolean gee_tree_map_entry_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target);
1924 static void _vala_gee_tree_map_entry_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1925 static void _vala_gee_tree_map_entry_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1926 #define GEE_TREE_MAP_SUB_ENTRY_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_SUB_ENTRY_ITERATOR, GeeTreeMapSubEntryIteratorPrivate))
1928 GEE_TREE_MAP_SUB_ENTRY_ITERATOR_DUMMY_PROPERTY,
1929 GEE_TREE_MAP_SUB_ENTRY_ITERATOR_K_TYPE,
1930 GEE_TREE_MAP_SUB_ENTRY_ITERATOR_K_DUP_FUNC,
1931 GEE_TREE_MAP_SUB_ENTRY_ITERATOR_K_DESTROY_FUNC,
1932 GEE_TREE_MAP_SUB_ENTRY_ITERATOR_V_TYPE,
1933 GEE_TREE_MAP_SUB_ENTRY_ITERATOR_V_DUP_FUNC,
1934 GEE_TREE_MAP_SUB_ENTRY_ITERATOR_V_DESTROY_FUNC
1936 static GeeMapEntry* gee_tree_map_sub_entry_iterator_real_get (GeeIterator* base);
1937 static void gee_tree_map_sub_entry_iterator_real_remove (GeeIterator* base);
1938 static gboolean gee_tree_map_sub_entry_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target);
1939 static void _vala_gee_tree_map_sub_entry_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1940 static void _vala_gee_tree_map_sub_entry_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1941 #define GEE_TREE_MAP_MAP_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_MAP_ITERATOR, GeeTreeMapMapIteratorPrivate))
1943 GEE_TREE_MAP_MAP_ITERATOR_DUMMY_PROPERTY,
1944 GEE_TREE_MAP_MAP_ITERATOR_K_TYPE,
1945 GEE_TREE_MAP_MAP_ITERATOR_K_DUP_FUNC,
1946 GEE_TREE_MAP_MAP_ITERATOR_K_DESTROY_FUNC,
1947 GEE_TREE_MAP_MAP_ITERATOR_V_TYPE,
1948 GEE_TREE_MAP_MAP_ITERATOR_V_DUP_FUNC,
1949 GEE_TREE_MAP_MAP_ITERATOR_V_DESTROY_FUNC,
1950 GEE_TREE_MAP_MAP_ITERATOR_READ_ONLY,
1951 GEE_TREE_MAP_MAP_ITERATOR_MUTABLE
1953 static gpointer gee_tree_map_map_iterator_real_get_key (GeeMapIterator* base);
1954 gboolean gee_map_iterator_get_valid (GeeMapIterator* self);
1955 static gpointer gee_tree_map_map_iterator_real_get_value (GeeMapIterator* base);
1956 static void gee_tree_map_map_iterator_real_set_value (GeeMapIterator* base, gconstpointer value);
1957 gboolean gee_map_iterator_get_mutable (GeeMapIterator* self);
1958 static void _vala_gee_tree_map_map_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1959 static void _vala_gee_tree_map_map_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1960 #define GEE_TREE_MAP_SUB_MAP_ITERATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GEE_TREE_MAP_TYPE_SUB_MAP_ITERATOR, GeeTreeMapSubMapIteratorPrivate))
1962 GEE_TREE_MAP_SUB_MAP_ITERATOR_DUMMY_PROPERTY,
1963 GEE_TREE_MAP_SUB_MAP_ITERATOR_K_TYPE,
1964 GEE_TREE_MAP_SUB_MAP_ITERATOR_K_DUP_FUNC,
1965 GEE_TREE_MAP_SUB_MAP_ITERATOR_K_DESTROY_FUNC,
1966 GEE_TREE_MAP_SUB_MAP_ITERATOR_V_TYPE,
1967 GEE_TREE_MAP_SUB_MAP_ITERATOR_V_DUP_FUNC,
1968 GEE_TREE_MAP_SUB_MAP_ITERATOR_V_DESTROY_FUNC,
1969 GEE_TREE_MAP_SUB_MAP_ITERATOR_READ_ONLY,
1970 GEE_TREE_MAP_SUB_MAP_ITERATOR_MUTABLE
1972 static gpointer gee_tree_map_sub_map_iterator_real_get_key (GeeMapIterator* base);
1973 static gpointer gee_tree_map_sub_map_iterator_real_get_value (GeeMapIterator* base);
1974 static void gee_tree_map_sub_map_iterator_real_set_value (GeeMapIterator* base, gconstpointer value);
1975 static void _vala_gee_tree_map_sub_map_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1976 static void _vala_gee_tree_map_sub_map_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1977 static void gee_tree_map_finalize (GObject* obj);
1978 static void _vala_gee_tree_map_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec);
1979 static void _vala_gee_tree_map_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec);
1982 static GType gee_tree_map_range_type_get_type (void) {
1983 static volatile gsize gee_tree_map_range_type_type_id__volatile = 0;
1984 if (g_once_init_enter (&gee_tree_map_range_type_type_id__volatile)) {
1985 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}};
1986 GType gee_tree_map_range_type_type_id;
1987 gee_tree_map_range_type_type_id = g_enum_register_static ("GeeTreeMapRangeType", values);
1988 g_once_init_leave (&gee_tree_map_range_type_type_id__volatile, gee_tree_map_range_type_type_id);
1990 return gee_tree_map_range_type_type_id__volatile;
1995 * Constructs a new, empty tree map sorted according to the specified
1996 * comparator function.
1998 * If not provided, the functions parameters are requested to the
1999 * {@link Functions} function factory methods.
2001 * @param key_compare_func an optional key comparator function
2002 * @param value_equal_func an optional values equality testing function
2004 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, void* key_compare_func_target, GDestroyNotify key_compare_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify) {
2005 GeeTreeMap * self = NULL;
2006 GCompareDataFunc _tmp0_;
2007 void* _tmp0__target;
2008 GeeEqualDataFunc _tmp4_;
2009 void* _tmp4__target;
2010 GCompareDataFunc _tmp8_;
2011 void* _tmp8__target;
2012 GeeEqualDataFunc _tmp9_;
2013 void* _tmp9__target;
2014 self = (GeeTreeMap*) gee_abstract_bidir_sorted_map_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func);
2015 self->priv->k_type = k_type;
2016 self->priv->k_dup_func = k_dup_func;
2017 self->priv->k_destroy_func = k_destroy_func;
2018 self->priv->v_type = v_type;
2019 self->priv->v_dup_func = v_dup_func;
2020 self->priv->v_destroy_func = v_destroy_func;
2021 _tmp0_ = key_compare_func;
2022 _tmp0__target = key_compare_func_target;
2023 if (_tmp0_ == NULL) {
2024 void* _tmp1_ = NULL;
2025 GDestroyNotify _tmp2_ = NULL;
2026 GCompareDataFunc _tmp3_ = NULL;
2027 _tmp3_ = gee_functions_get_compare_func_for (k_type, &_tmp1_, &_tmp2_);
2028 (key_compare_func_target_destroy_notify == NULL) ? NULL : (key_compare_func_target_destroy_notify (key_compare_func_target), NULL);
2029 key_compare_func = NULL;
2030 key_compare_func_target = NULL;
2031 key_compare_func_target_destroy_notify = NULL;
2032 key_compare_func = _tmp3_;
2033 key_compare_func_target = _tmp1_;
2034 key_compare_func_target_destroy_notify = _tmp2_;
2036 _tmp4_ = value_equal_func;
2037 _tmp4__target = value_equal_func_target;
2038 if (_tmp4_ == NULL) {
2039 void* _tmp5_ = NULL;
2040 GDestroyNotify _tmp6_ = NULL;
2041 GeeEqualDataFunc _tmp7_ = NULL;
2042 _tmp7_ = gee_functions_get_equal_func_for (v_type, &_tmp5_, &_tmp6_);
2043 (value_equal_func_target_destroy_notify == NULL) ? NULL : (value_equal_func_target_destroy_notify (value_equal_func_target), NULL);
2044 value_equal_func = NULL;
2045 value_equal_func_target = NULL;
2046 value_equal_func_target_destroy_notify = NULL;
2047 value_equal_func = _tmp7_;
2048 value_equal_func_target = _tmp5_;
2049 value_equal_func_target_destroy_notify = _tmp6_;
2051 _tmp8_ = key_compare_func;
2052 _tmp8__target = key_compare_func_target;
2053 gee_tree_map_set_key_compare_func (self, _tmp8_, _tmp8__target);
2054 _tmp9_ = value_equal_func;
2055 _tmp9__target = value_equal_func_target;
2056 gee_tree_map_set_value_equal_func (self, _tmp9_, _tmp9__target);
2057 (key_compare_func_target_destroy_notify == NULL) ? NULL : (key_compare_func_target_destroy_notify (key_compare_func_target), NULL);
2058 key_compare_func = NULL;
2059 key_compare_func_target = NULL;
2060 key_compare_func_target_destroy_notify = NULL;
2061 (value_equal_func_target_destroy_notify == NULL) ? NULL : (value_equal_func_target_destroy_notify (value_equal_func_target), NULL);
2062 value_equal_func = NULL;
2063 value_equal_func_target = NULL;
2064 value_equal_func_target_destroy_notify = NULL;
2069 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, void* key_compare_func_target, GDestroyNotify key_compare_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify) {
2070 return gee_tree_map_construct (GEE_TYPE_TREE_MAP, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, key_compare_func, key_compare_func_target, key_compare_func_target_destroy_notify, value_equal_func, value_equal_func_target, value_equal_func_target_destroy_notify);
2074 static void gee_tree_map_rotate_right (GeeTreeMap* self, GeeTreeMapNode** root) {
2075 GeeTreeMapNode* _tmp0_;
2076 GeeTreeMapNode* _tmp1_;
2077 GeeTreeMapNode* pivot;
2078 GeeTreeMapNode* _tmp2_;
2079 GeeTreeMapNode* _tmp3_;
2080 GeeTreeMapNodeColor _tmp4_;
2081 GeeTreeMapNode* _tmp5_;
2082 GeeTreeMapNode* _tmp6_;
2083 GeeTreeMapNode* _tmp7_;
2084 GeeTreeMapNode* _tmp8_;
2085 GeeTreeMapNode* _tmp9_;
2086 GeeTreeMapNode* _tmp10_;
2087 GeeTreeMapNode* _tmp11_;
2088 g_return_if_fail (self != NULL);
2089 g_return_if_fail (*root != NULL);
2091 _tmp1_ = _tmp0_->left;
2092 _tmp0_->left = NULL;
2096 _tmp4_ = _tmp3_->color;
2097 _tmp2_->color = _tmp4_;
2099 _tmp5_->color = GEE_TREE_MAP_NODE_COLOR_RED;
2102 _tmp8_ = _tmp7_->right;
2103 _tmp7_->right = NULL;
2104 _gee_tree_map_node_free0 (_tmp6_->left);
2105 _tmp6_->left = _tmp8_;
2109 _gee_tree_map_node_free0 (_tmp9_->right);
2110 _tmp9_->right = _tmp10_;
2113 _gee_tree_map_node_free0 (*root);
2115 _gee_tree_map_node_free0 (pivot);
2119 static void gee_tree_map_rotate_left (GeeTreeMap* self, GeeTreeMapNode** root) {
2120 GeeTreeMapNode* _tmp0_;
2121 GeeTreeMapNode* _tmp1_;
2122 GeeTreeMapNode* pivot;
2123 GeeTreeMapNode* _tmp2_;
2124 GeeTreeMapNode* _tmp3_;
2125 GeeTreeMapNodeColor _tmp4_;
2126 GeeTreeMapNode* _tmp5_;
2127 GeeTreeMapNode* _tmp6_;
2128 GeeTreeMapNode* _tmp7_;
2129 GeeTreeMapNode* _tmp8_;
2130 GeeTreeMapNode* _tmp9_;
2131 GeeTreeMapNode* _tmp10_;
2132 GeeTreeMapNode* _tmp11_;
2133 g_return_if_fail (self != NULL);
2134 g_return_if_fail (*root != NULL);
2136 _tmp1_ = _tmp0_->right;
2137 _tmp0_->right = NULL;
2141 _tmp4_ = _tmp3_->color;
2142 _tmp2_->color = _tmp4_;
2144 _tmp5_->color = GEE_TREE_MAP_NODE_COLOR_RED;
2147 _tmp8_ = _tmp7_->left;
2148 _tmp7_->left = NULL;
2149 _gee_tree_map_node_free0 (_tmp6_->right);
2150 _tmp6_->right = _tmp8_;
2154 _gee_tree_map_node_free0 (_tmp9_->left);
2155 _tmp9_->left = _tmp10_;
2158 _gee_tree_map_node_free0 (*root);
2160 _gee_tree_map_node_free0 (pivot);
2164 static gboolean gee_tree_map_is_red (GeeTreeMap* self, GeeTreeMapNode* n) {
2165 gboolean result = FALSE;
2166 gboolean _tmp0_ = FALSE;
2167 GeeTreeMapNode* _tmp1_;
2169 g_return_val_if_fail (self != NULL, FALSE);
2171 if (_tmp1_ != NULL) {
2172 GeeTreeMapNode* _tmp2_;
2173 GeeTreeMapNodeColor _tmp3_;
2175 _tmp3_ = _tmp2_->color;
2176 _tmp0_ = _tmp3_ == GEE_TREE_MAP_NODE_COLOR_RED;
2186 static gboolean gee_tree_map_is_black (GeeTreeMap* self, GeeTreeMapNode* n) {
2187 gboolean result = FALSE;
2188 gboolean _tmp0_ = FALSE;
2189 GeeTreeMapNode* _tmp1_;
2191 g_return_val_if_fail (self != NULL, FALSE);
2193 if (_tmp1_ == NULL) {
2196 GeeTreeMapNode* _tmp2_;
2197 GeeTreeMapNodeColor _tmp3_;
2199 _tmp3_ = _tmp2_->color;
2200 _tmp0_ = _tmp3_ == GEE_TREE_MAP_NODE_COLOR_BLACK;
2211 static gboolean gee_tree_map_real_has_key (GeeAbstractMap* base, gconstpointer key) {
2213 gboolean result = FALSE;
2214 GeeTreeMapNode* _tmp0_;
2215 GeeTreeMapNode* cur;
2216 self = (GeeTreeMap*) base;
2217 _tmp0_ = self->priv->root;
2220 GeeTreeMapNode* _tmp1_;
2221 GCompareDataFunc _tmp2_;
2222 void* _tmp2__target;
2223 GCompareDataFunc _tmp3_;
2224 void* _tmp3__target;
2225 gconstpointer _tmp4_;
2226 GeeTreeMapNode* _tmp5_;
2227 gconstpointer _tmp6_;
2232 if (!(_tmp1_ != NULL)) {
2235 _tmp2_ = gee_tree_map_get_key_compare_func (self, &_tmp2__target);
2237 _tmp3__target = _tmp2__target;
2240 _tmp6_ = _tmp5_->key;
2241 _tmp7_ = _tmp3_ (_tmp4_, _tmp6_, _tmp3__target);
2251 GeeTreeMapNode* _tmp10_;
2252 GeeTreeMapNode* _tmp11_;
2254 _tmp11_ = _tmp10_->left;
2257 GeeTreeMapNode* _tmp12_;
2258 GeeTreeMapNode* _tmp13_;
2260 _tmp13_ = _tmp12_->right;
2273 static gboolean gee_tree_map_real_has (GeeAbstractMap* base, gconstpointer key, gconstpointer value) {
2275 gboolean result = FALSE;
2276 gconstpointer _tmp0_;
2277 gpointer _tmp1_ = NULL;
2279 gboolean _tmp2_ = FALSE;
2280 gconstpointer _tmp3_;
2282 self = (GeeTreeMap*) base;
2284 _tmp1_ = gee_abstract_map_get ((GeeAbstractMap*) self, _tmp0_);
2287 if (_tmp3_ != NULL) {
2288 GeeEqualDataFunc _tmp4_;
2289 void* _tmp4__target;
2290 GeeEqualDataFunc _tmp5_;
2291 void* _tmp5__target;
2292 gconstpointer _tmp6_;
2293 gconstpointer _tmp7_;
2294 gboolean _tmp8_ = FALSE;
2295 _tmp4_ = gee_tree_map_get_value_equal_func (self, &_tmp4__target);
2297 _tmp5__target = _tmp4__target;
2300 _tmp8_ = _tmp5_ (_tmp6_, _tmp7_, _tmp5__target);
2307 ((own_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (own_value = (self->priv->v_destroy_func (own_value), NULL));
2315 static gpointer gee_tree_map_real_get (GeeAbstractMap* base, gconstpointer key) {
2317 gpointer result = NULL;
2318 GeeTreeMapNode* _tmp0_;
2319 GeeTreeMapNode* cur;
2320 self = (GeeTreeMap*) base;
2321 _tmp0_ = self->priv->root;
2324 GeeTreeMapNode* _tmp1_;
2325 GCompareDataFunc _tmp2_;
2326 void* _tmp2__target;
2327 GCompareDataFunc _tmp3_;
2328 void* _tmp3__target;
2329 gconstpointer _tmp4_;
2330 GeeTreeMapNode* _tmp5_;
2331 gconstpointer _tmp6_;
2336 if (!(_tmp1_ != NULL)) {
2339 _tmp2_ = gee_tree_map_get_key_compare_func (self, &_tmp2__target);
2341 _tmp3__target = _tmp2__target;
2344 _tmp6_ = _tmp5_->key;
2345 _tmp7_ = _tmp3_ (_tmp4_, _tmp6_, _tmp3__target);
2349 GeeTreeMapNode* _tmp9_;
2350 gconstpointer _tmp10_;
2353 _tmp10_ = _tmp9_->value;
2354 _tmp11_ = ((_tmp10_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp10_) : ((gpointer) _tmp10_);
2361 GeeTreeMapNode* _tmp13_;
2362 GeeTreeMapNode* _tmp14_;
2364 _tmp14_ = _tmp13_->left;
2367 GeeTreeMapNode* _tmp15_;
2368 GeeTreeMapNode* _tmp16_;
2370 _tmp16_ = _tmp15_->right;
2380 static gboolean gee_tree_map_set_to_node (GeeTreeMap* self, GeeTreeMapNode** node, gconstpointer key, gconstpointer value, gpointer* old_value, GeeTreeMapNode* prev, GeeTreeMapNode* next) {
2381 gpointer _vala_old_value = NULL;
2382 gboolean result = FALSE;
2383 GeeTreeMapNode* _tmp0_;
2384 GCompareDataFunc _tmp13_;
2385 void* _tmp13__target;
2386 GCompareDataFunc _tmp14_;
2387 void* _tmp14__target;
2388 gconstpointer _tmp15_;
2389 GeeTreeMapNode* _tmp16_;
2390 gconstpointer _tmp17_;
2393 gboolean changed = FALSE;
2395 g_return_val_if_fail (self != NULL, FALSE);
2397 if (_tmp0_ == NULL) {
2398 gconstpointer _tmp1_;
2400 gconstpointer _tmp3_;
2402 GeeTreeMapNode* _tmp5_;
2403 GeeTreeMapNode* _tmp6_;
2404 GeeTreeMapNode* _tmp7_;
2405 GeeTreeMapNode* _tmp8_;
2406 GeeTreeMapNode* _tmp10_;
2408 ((_vala_old_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_old_value = (self->priv->v_destroy_func (_vala_old_value), NULL));
2409 _vala_old_value = NULL;
2411 _tmp2_ = ((_tmp1_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp1_) : ((gpointer) _tmp1_);
2413 _tmp4_ = ((_tmp3_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp3_) : ((gpointer) _tmp3_);
2416 _tmp7_ = gee_tree_map_node_new (_tmp2_, _tmp4_, _tmp5_, _tmp6_);
2417 _gee_tree_map_node_free0 (*node);
2420 if (_tmp8_ == NULL) {
2421 GeeTreeMapNode* _tmp9_;
2423 self->priv->first = _tmp9_;
2426 if (_tmp10_ == NULL) {
2427 GeeTreeMapNode* _tmp11_;
2429 self->priv->last = _tmp11_;
2431 _tmp12_ = self->priv->_size;
2432 self->priv->_size = _tmp12_ + 1;
2435 *old_value = _vala_old_value;
2437 ((_vala_old_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_old_value = (self->priv->v_destroy_func (_vala_old_value), NULL));
2441 _tmp13_ = gee_tree_map_get_key_compare_func (self, &_tmp13__target);
2443 _tmp14__target = _tmp13__target;
2446 _tmp17_ = _tmp16_->key;
2447 _tmp18_ = _tmp14_ (_tmp15_, _tmp17_, _tmp14__target);
2451 GeeEqualDataFunc _tmp20_;
2452 void* _tmp20__target;
2453 GeeEqualDataFunc _tmp21_;
2454 void* _tmp21__target;
2455 gconstpointer _tmp22_;
2456 GeeTreeMapNode* _tmp23_;
2457 gconstpointer _tmp24_;
2458 gboolean _tmp25_ = FALSE;
2459 _tmp20_ = gee_tree_map_get_value_equal_func (self, &_tmp20__target);
2461 _tmp21__target = _tmp20__target;
2464 _tmp24_ = _tmp23_->value;
2465 _tmp25_ = _tmp21_ (_tmp22_, _tmp24_, _tmp21__target);
2467 ((_vala_old_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_old_value = (self->priv->v_destroy_func (_vala_old_value), NULL));
2468 _vala_old_value = NULL;
2471 GeeTreeMapNode* _tmp26_;
2473 GeeTreeMapNode* _tmp28_;
2474 gconstpointer _tmp29_;
2477 _tmp27_ = _tmp26_->value;
2478 _tmp26_->value = NULL;
2479 ((_vala_old_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_old_value = (self->priv->v_destroy_func (_vala_old_value), NULL));
2480 _vala_old_value = _tmp27_;
2483 _tmp30_ = ((_tmp29_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp29_) : ((gpointer) _tmp29_);
2484 ((_tmp28_->value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_tmp28_->value = (self->priv->v_destroy_func (_tmp28_->value), NULL));
2485 _tmp28_->value = _tmp30_;
2492 GeeTreeMapNode* _tmp32_;
2493 gconstpointer _tmp33_;
2494 gconstpointer _tmp34_;
2495 GeeTreeMapNode* _tmp35_;
2496 GeeTreeMapNode* _tmp36_;
2497 GeeTreeMapNode* _tmp37_;
2498 gpointer _tmp38_ = NULL;
2499 gboolean _tmp39_ = FALSE;
2504 _tmp36_ = _tmp35_->prev;
2506 _tmp39_ = gee_tree_map_set_to_node (self, &_tmp32_->left, _tmp33_, _tmp34_, &_tmp38_, _tmp36_, _tmp37_);
2507 ((_vala_old_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_old_value = (self->priv->v_destroy_func (_vala_old_value), NULL));
2508 _vala_old_value = _tmp38_;
2511 GeeTreeMapNode* _tmp40_;
2512 gconstpointer _tmp41_;
2513 gconstpointer _tmp42_;
2514 GeeTreeMapNode* _tmp43_;
2515 GeeTreeMapNode* _tmp44_;
2516 GeeTreeMapNode* _tmp45_;
2517 gpointer _tmp46_ = NULL;
2518 gboolean _tmp47_ = FALSE;
2524 _tmp45_ = _tmp44_->next;
2525 _tmp47_ = gee_tree_map_set_to_node (self, &_tmp40_->right, _tmp41_, _tmp42_, &_tmp46_, _tmp43_, _tmp45_);
2526 ((_vala_old_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_old_value = (self->priv->v_destroy_func (_vala_old_value), NULL));
2527 _vala_old_value = _tmp46_;
2531 gee_tree_map_fix_up (self, node);
2534 *old_value = _vala_old_value;
2536 ((_vala_old_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_old_value = (self->priv->v_destroy_func (_vala_old_value), NULL));
2545 static void gee_tree_map_real_set (GeeAbstractMap* base, gconstpointer key, gconstpointer value) {
2547 gpointer old_value = NULL;
2548 gconstpointer _tmp0_;
2549 gconstpointer _tmp1_;
2550 gpointer _tmp2_ = NULL;
2551 GeeTreeMapNode* _tmp3_;
2553 self = (GeeTreeMap*) base;
2556 gee_tree_map_set_to_node (self, &self->priv->root, _tmp0_, _tmp1_, &_tmp2_, NULL, NULL);
2557 ((old_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (old_value = (self->priv->v_destroy_func (old_value), NULL));
2559 _tmp3_ = self->priv->root;
2560 _tmp3_->color = GEE_TREE_MAP_NODE_COLOR_BLACK;
2561 _tmp4_ = self->priv->stamp;
2562 self->priv->stamp = _tmp4_ + 1;
2563 ((old_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (old_value = (self->priv->v_destroy_func (old_value), NULL));
2567 static void gee_tree_map_move_red_left (GeeTreeMap* self, GeeTreeMapNode** root) {
2568 GeeTreeMapNode* _tmp0_;
2569 GeeTreeMapNode* _tmp1_;
2570 GeeTreeMapNode* _tmp2_;
2571 GeeTreeMapNode* _tmp3_;
2572 gboolean _tmp4_ = FALSE;
2573 g_return_if_fail (self != NULL);
2574 g_return_if_fail (*root != NULL);
2576 gee_tree_map_node_flip (_tmp0_);
2578 _tmp2_ = _tmp1_->right;
2579 _tmp3_ = _tmp2_->left;
2580 _tmp4_ = gee_tree_map_is_red (self, _tmp3_);
2582 GeeTreeMapNode* _tmp5_;
2583 GeeTreeMapNode* _tmp6_;
2585 gee_tree_map_rotate_right (self, &_tmp5_->right);
2586 gee_tree_map_rotate_left (self, root);
2588 gee_tree_map_node_flip (_tmp6_);
2593 static void gee_tree_map_move_red_right (GeeTreeMap* self, GeeTreeMapNode** root) {
2594 GeeTreeMapNode* _tmp0_;
2595 GeeTreeMapNode* _tmp1_;
2596 GeeTreeMapNode* _tmp2_;
2597 GeeTreeMapNode* _tmp3_;
2598 gboolean _tmp4_ = FALSE;
2599 g_return_if_fail (self != NULL);
2600 g_return_if_fail (*root != NULL);
2602 gee_tree_map_node_flip (_tmp0_);
2604 _tmp2_ = _tmp1_->left;
2605 _tmp3_ = _tmp2_->left;
2606 _tmp4_ = gee_tree_map_is_red (self, _tmp3_);
2608 GeeTreeMapNode* _tmp5_;
2609 gee_tree_map_rotate_right (self, root);
2611 gee_tree_map_node_flip (_tmp5_);
2616 static void gee_tree_map_fix_removal (GeeTreeMap* self, GeeTreeMapNode** node, gpointer* key, gpointer* value) {
2617 gpointer _vala_key = NULL;
2618 gpointer _vala_value = NULL;
2619 GeeTreeMapNode* _tmp0_;
2621 GeeTreeMapNode* _tmp1_;
2623 GeeTreeMapNode* _tmp3_;
2625 GeeTreeMapNode* _tmp5_;
2626 GeeTreeMapNode* _tmp6_;
2627 GeeTreeMapNode* _tmp13_;
2628 GeeTreeMapNode* _tmp14_;
2629 GeeTreeMapNode* _tmp21_;
2631 g_return_if_fail (self != NULL);
2632 g_return_if_fail (*node != NULL);
2637 _tmp2_ = _tmp1_->key;
2639 ((_vala_key == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_vala_key = (self->priv->k_destroy_func (_vala_key), NULL));
2642 _tmp4_ = _tmp3_->value;
2643 _tmp3_->value = NULL;
2644 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2645 _vala_value = _tmp4_;
2647 _tmp6_ = _tmp5_->prev;
2648 if (_tmp6_ != NULL) {
2649 GeeTreeMapNode* _tmp7_;
2650 GeeTreeMapNode* _tmp8_;
2651 GeeTreeMapNode* _tmp9_;
2652 GeeTreeMapNode* _tmp10_;
2654 _tmp8_ = _tmp7_->prev;
2656 _tmp10_ = _tmp9_->next;
2657 _tmp8_->next = _tmp10_;
2659 GeeTreeMapNode* _tmp11_;
2660 GeeTreeMapNode* _tmp12_;
2662 _tmp12_ = _tmp11_->next;
2663 self->priv->first = _tmp12_;
2666 _tmp14_ = _tmp13_->next;
2667 if (_tmp14_ != NULL) {
2668 GeeTreeMapNode* _tmp15_;
2669 GeeTreeMapNode* _tmp16_;
2670 GeeTreeMapNode* _tmp17_;
2671 GeeTreeMapNode* _tmp18_;
2673 _tmp16_ = _tmp15_->next;
2675 _tmp18_ = _tmp17_->prev;
2676 _tmp16_->prev = _tmp18_;
2678 GeeTreeMapNode* _tmp19_;
2679 GeeTreeMapNode* _tmp20_;
2681 _tmp20_ = _tmp19_->next;
2682 self->priv->last = _tmp20_;
2685 ((_tmp21_->value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_tmp21_->value = (self->priv->v_destroy_func (_tmp21_->value), NULL));
2686 _tmp21_->value = NULL;
2687 _gee_tree_map_node_free0 (*node);
2689 _tmp22_ = self->priv->_size;
2690 self->priv->_size = _tmp22_ - 1;
2691 _gee_tree_map_node_free0 (n);
2695 ((_vala_key == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_vala_key = (self->priv->k_destroy_func (_vala_key), NULL));
2698 *value = _vala_value;
2700 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2705 static void gee_tree_map_remove_minimal (GeeTreeMap* self, GeeTreeMapNode** node, gpointer* key, gpointer* value) {
2706 gpointer _vala_key = NULL;
2707 gpointer _vala_value = NULL;
2708 GeeTreeMapNode* _tmp0_;
2709 GeeTreeMapNode* _tmp1_;
2710 gboolean _tmp4_ = FALSE;
2711 GeeTreeMapNode* _tmp5_;
2712 GeeTreeMapNode* _tmp6_;
2713 gboolean _tmp7_ = FALSE;
2715 GeeTreeMapNode* _tmp13_;
2716 gpointer _tmp14_ = NULL;
2717 gpointer _tmp15_ = NULL;
2718 g_return_if_fail (self != NULL);
2719 g_return_if_fail (*node != NULL);
2721 _tmp1_ = _tmp0_->left;
2722 if (_tmp1_ == NULL) {
2723 gpointer _tmp2_ = NULL;
2724 gpointer _tmp3_ = NULL;
2725 gee_tree_map_fix_removal (self, node, &_tmp2_, &_tmp3_);
2726 ((_vala_key == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_vala_key = (self->priv->k_destroy_func (_vala_key), NULL));
2728 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2729 _vala_value = _tmp3_;
2733 ((_vala_key == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_vala_key = (self->priv->k_destroy_func (_vala_key), NULL));
2736 *value = _vala_value;
2738 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2743 _tmp6_ = _tmp5_->left;
2744 _tmp7_ = gee_tree_map_is_black (self, _tmp6_);
2746 GeeTreeMapNode* _tmp8_;
2747 GeeTreeMapNode* _tmp9_;
2748 GeeTreeMapNode* _tmp10_;
2749 gboolean _tmp11_ = FALSE;
2751 _tmp9_ = _tmp8_->left;
2752 _tmp10_ = _tmp9_->left;
2753 _tmp11_ = gee_tree_map_is_black (self, _tmp10_);
2760 gee_tree_map_move_red_left (self, node);
2763 gee_tree_map_remove_minimal (self, &_tmp13_->left, &_tmp14_, &_tmp15_);
2764 ((_vala_key == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_vala_key = (self->priv->k_destroy_func (_vala_key), NULL));
2765 _vala_key = _tmp14_;
2766 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2767 _vala_value = _tmp15_;
2768 gee_tree_map_fix_up (self, node);
2772 ((_vala_key == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_vala_key = (self->priv->k_destroy_func (_vala_key), NULL));
2775 *value = _vala_value;
2777 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2782 static gboolean gee_tree_map_remove_from_node (GeeTreeMap* self, GeeTreeMapNode** node, gconstpointer key, gpointer* value, GeeTreeMapNode** prev, GeeTreeMapNode** next) {
2783 gpointer _vala_value = NULL;
2784 GeeTreeMapNode* _vala_prev = NULL;
2785 GeeTreeMapNode* _vala_next = NULL;
2786 gboolean result = FALSE;
2787 GeeTreeMapNode* _tmp0_;
2788 g_return_val_if_fail (self != NULL, FALSE);
2790 if (_tmp0_ == NULL) {
2791 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2797 *value = _vala_value;
2799 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2809 GCompareDataFunc _tmp1_;
2810 void* _tmp1__target;
2811 GCompareDataFunc _tmp2_;
2812 void* _tmp2__target;
2813 gconstpointer _tmp3_;
2814 GeeTreeMapNode* _tmp4_;
2815 gconstpointer _tmp5_;
2817 _tmp1_ = gee_tree_map_get_key_compare_func (self, &_tmp1__target);
2819 _tmp2__target = _tmp1__target;
2822 _tmp5_ = _tmp4_->key;
2823 _tmp6_ = _tmp2_ (_tmp3_, _tmp5_, _tmp2__target);
2825 GeeTreeMapNode* _tmp7_;
2826 GeeTreeMapNode* _tmp8_;
2827 GeeTreeMapNode* left;
2828 GeeTreeMapNode* _tmp9_;
2829 gboolean _tmp10_ = FALSE;
2830 gboolean _tmp11_ = FALSE;
2831 GeeTreeMapNode* _tmp12_;
2832 GeeTreeMapNode* _tmp13_;
2835 GeeTreeMapNode* _tmp21_;
2836 gconstpointer _tmp22_;
2837 gpointer _tmp23_ = NULL;
2838 GeeTreeMapNode* _tmp24_ = NULL;
2839 GeeTreeMapNode* _tmp25_ = NULL;
2840 gboolean _tmp26_ = FALSE;
2843 _tmp8_ = _tmp7_->left;
2846 if (_tmp9_ == NULL) {
2847 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2853 *value = _vala_value;
2855 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2866 _tmp13_ = _tmp12_->left;
2867 if (_tmp13_ != NULL) {
2868 GeeTreeMapNode* _tmp14_;
2869 gboolean _tmp15_ = FALSE;
2871 _tmp15_ = gee_tree_map_is_black (self, _tmp14_);
2878 GeeTreeMapNode* _tmp17_;
2879 GeeTreeMapNode* _tmp18_;
2880 gboolean _tmp19_ = FALSE;
2882 _tmp18_ = _tmp17_->left;
2883 _tmp19_ = gee_tree_map_is_black (self, _tmp18_);
2890 gee_tree_map_move_red_left (self, node);
2894 _tmp26_ = gee_tree_map_remove_from_node (self, &_tmp21_->left, _tmp22_, &_tmp23_, &_tmp24_, &_tmp25_);
2895 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2896 _vala_value = _tmp23_;
2897 _vala_prev = _tmp24_;
2898 _vala_next = _tmp25_;
2900 gee_tree_map_fix_up (self, node);
2903 *value = _vala_value;
2905 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2915 GeeTreeMapNode* _tmp27_;
2916 GeeTreeMapNode* _tmp28_;
2917 gboolean _tmp29_ = FALSE;
2918 GeeTreeMapNode* _tmp30_;
2919 GeeTreeMapNode* _tmp31_;
2921 gboolean _tmp32_ = FALSE;
2922 GCompareDataFunc _tmp33_;
2923 void* _tmp33__target;
2924 GCompareDataFunc _tmp34_;
2925 void* _tmp34__target;
2926 gconstpointer _tmp35_;
2927 GeeTreeMapNode* _tmp36_;
2928 gconstpointer _tmp37_;
2931 gboolean _tmp46_ = FALSE;
2932 gboolean _tmp47_ = FALSE;
2933 GeeTreeMapNode* _tmp48_;
2934 gboolean _tmp49_ = FALSE;
2937 GCompareDataFunc _tmp56_;
2938 void* _tmp56__target;
2939 GCompareDataFunc _tmp57_;
2940 void* _tmp57__target;
2941 gconstpointer _tmp58_;
2942 GeeTreeMapNode* _tmp59_;
2943 gconstpointer _tmp60_;
2946 _tmp28_ = _tmp27_->left;
2947 _tmp29_ = gee_tree_map_is_red (self, _tmp28_);
2949 gee_tree_map_rotate_right (self, node);
2952 _tmp31_ = _tmp30_->right;
2954 _tmp33_ = gee_tree_map_get_key_compare_func (self, &_tmp33__target);
2956 _tmp34__target = _tmp33__target;
2959 _tmp37_ = _tmp36_->key;
2960 _tmp38_ = _tmp34_ (_tmp35_, _tmp37_, _tmp34__target);
2962 GeeTreeMapNode* _tmp39_;
2964 _tmp32_ = _tmp39_ == NULL;
2970 GeeTreeMapNode* _tmp41_;
2971 GeeTreeMapNode* _tmp42_;
2972 GeeTreeMapNode* _tmp43_;
2973 GeeTreeMapNode* _tmp44_;
2974 gpointer _tmp45_ = NULL;
2976 _tmp42_ = _tmp41_->prev;
2977 _vala_prev = _tmp42_;
2979 _tmp44_ = _tmp43_->next;
2980 _vala_next = _tmp44_;
2981 gee_tree_map_fix_removal (self, node, NULL, &_tmp45_);
2982 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2983 _vala_value = _tmp45_;
2986 *value = _vala_value;
2988 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
2999 _tmp49_ = gee_tree_map_is_black (self, _tmp48_);
3001 GeeTreeMapNode* _tmp50_;
3003 _tmp47_ = _tmp50_ != NULL;
3009 GeeTreeMapNode* _tmp52_;
3010 GeeTreeMapNode* _tmp53_;
3011 gboolean _tmp54_ = FALSE;
3013 _tmp53_ = _tmp52_->left;
3014 _tmp54_ = gee_tree_map_is_black (self, _tmp53_);
3021 gee_tree_map_move_red_right (self, node);
3023 _tmp56_ = gee_tree_map_get_key_compare_func (self, &_tmp56__target);
3025 _tmp57__target = _tmp56__target;
3028 _tmp60_ = _tmp59_->key;
3029 _tmp61_ = _tmp57_ (_tmp58_, _tmp60_, _tmp57__target);
3031 GeeTreeMapNode* _tmp62_;
3033 GeeTreeMapNode* _tmp64_;
3034 GeeTreeMapNode* _tmp65_;
3035 GeeTreeMapNode* _tmp66_;
3036 GeeTreeMapNode* _tmp67_;
3037 GeeTreeMapNode* _tmp68_;
3038 GeeTreeMapNode* _tmp69_;
3039 gpointer _tmp70_ = NULL;
3040 gpointer _tmp71_ = NULL;
3042 _tmp63_ = _tmp62_->value;
3043 _tmp62_->value = NULL;
3044 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
3045 _vala_value = _tmp63_;
3047 _tmp65_ = _tmp64_->prev;
3048 _vala_prev = _tmp65_;
3050 _vala_next = _tmp66_;
3054 gee_tree_map_remove_minimal (self, &_tmp67_->right, &_tmp70_, &_tmp71_);
3055 ((_tmp68_->key == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_tmp68_->key = (self->priv->k_destroy_func (_tmp68_->key), NULL));
3056 _tmp68_->key = _tmp70_;
3057 ((_tmp69_->value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_tmp69_->value = (self->priv->v_destroy_func (_tmp69_->value), NULL));
3058 _tmp69_->value = _tmp71_;
3059 gee_tree_map_fix_up (self, node);
3062 *value = _vala_value;
3064 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
3074 GeeTreeMapNode* _tmp72_;
3075 gconstpointer _tmp73_;
3076 gpointer _tmp74_ = NULL;
3077 GeeTreeMapNode* _tmp75_ = NULL;
3078 GeeTreeMapNode* _tmp76_ = NULL;
3079 gboolean _tmp77_ = FALSE;
3083 _tmp77_ = gee_tree_map_remove_from_node (self, &_tmp72_->right, _tmp73_, &_tmp74_, &_tmp75_, &_tmp76_);
3084 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
3085 _vala_value = _tmp74_;
3086 _vala_prev = _tmp75_;
3087 _vala_next = _tmp76_;
3089 gee_tree_map_fix_up (self, node);
3092 *value = _vala_value;
3094 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
3107 *value = _vala_value;
3109 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
3120 static void gee_tree_map_fix_up (GeeTreeMap* self, GeeTreeMapNode** node) {
3121 gboolean _tmp0_ = FALSE;
3122 GeeTreeMapNode* _tmp1_;
3123 GeeTreeMapNode* _tmp2_;
3124 gboolean _tmp3_ = FALSE;
3126 gboolean _tmp8_ = FALSE;
3127 GeeTreeMapNode* _tmp9_;
3128 GeeTreeMapNode* _tmp10_;
3129 gboolean _tmp11_ = FALSE;
3131 gboolean _tmp17_ = FALSE;
3132 GeeTreeMapNode* _tmp18_;
3133 GeeTreeMapNode* _tmp19_;
3134 gboolean _tmp20_ = FALSE;
3136 g_return_if_fail (self != NULL);
3137 g_return_if_fail (*node != NULL);
3139 _tmp2_ = _tmp1_->left;
3140 _tmp3_ = gee_tree_map_is_black (self, _tmp2_);
3142 GeeTreeMapNode* _tmp4_;
3143 GeeTreeMapNode* _tmp5_;
3144 gboolean _tmp6_ = FALSE;
3146 _tmp5_ = _tmp4_->right;
3147 _tmp6_ = gee_tree_map_is_red (self, _tmp5_);
3154 gee_tree_map_rotate_left (self, node);
3157 _tmp10_ = _tmp9_->left;
3158 _tmp11_ = gee_tree_map_is_red (self, _tmp10_);
3160 GeeTreeMapNode* _tmp12_;
3161 GeeTreeMapNode* _tmp13_;
3162 GeeTreeMapNode* _tmp14_;
3163 gboolean _tmp15_ = FALSE;
3165 _tmp13_ = _tmp12_->left;
3166 _tmp14_ = _tmp13_->left;
3167 _tmp15_ = gee_tree_map_is_red (self, _tmp14_);
3174 gee_tree_map_rotate_right (self, node);
3177 _tmp19_ = _tmp18_->left;
3178 _tmp20_ = gee_tree_map_is_red (self, _tmp19_);
3180 GeeTreeMapNode* _tmp21_;
3181 GeeTreeMapNode* _tmp22_;
3182 gboolean _tmp23_ = FALSE;
3184 _tmp22_ = _tmp21_->right;
3185 _tmp23_ = gee_tree_map_is_red (self, _tmp22_);
3192 GeeTreeMapNode* _tmp25_;
3194 gee_tree_map_node_flip (_tmp25_);
3202 static gboolean gee_tree_map_real_unset (GeeAbstractMap* base, gconstpointer key, gpointer* value) {
3204 gpointer _vala_value = NULL;
3205 gboolean result = FALSE;
3206 gconstpointer _tmp0_;
3207 gpointer _tmp1_ = NULL;
3208 gboolean _tmp2_ = FALSE;
3210 GeeTreeMapNode* _tmp3_;
3212 self = (GeeTreeMap*) base;
3214 _tmp2_ = gee_tree_map_remove_from_node (self, &self->priv->root, _tmp0_, &_tmp1_, NULL, NULL);
3215 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
3216 _vala_value = _tmp1_;
3218 _tmp3_ = self->priv->root;
3219 if (_tmp3_ != NULL) {
3220 GeeTreeMapNode* _tmp4_;
3221 _tmp4_ = self->priv->root;
3222 _tmp4_->color = GEE_TREE_MAP_NODE_COLOR_BLACK;
3224 _tmp5_ = self->priv->stamp;
3225 self->priv->stamp = _tmp5_ + 1;
3228 *value = _vala_value;
3230 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
3236 static inline void gee_tree_map_clear_subtree (GeeTreeMap* self, GeeTreeMapNode* node) {
3237 GeeTreeMapNode* _tmp0_;
3238 GeeTreeMapNode* _tmp1_;
3239 GeeTreeMapNode* _tmp2_;
3240 GeeTreeMapNode* _tmp3_;
3241 GeeTreeMapNode* _tmp6_;
3242 GeeTreeMapNode* _tmp7_;
3243 g_return_if_fail (self != NULL);
3244 g_return_if_fail (node != NULL);
3246 ((_tmp0_->key == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_tmp0_->key = (self->priv->k_destroy_func (_tmp0_->key), NULL));
3249 ((_tmp1_->value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_tmp1_->value = (self->priv->v_destroy_func (_tmp1_->value), NULL));
3250 _tmp1_->value = NULL;
3252 _tmp3_ = _tmp2_->left;
3253 if (_tmp3_ != NULL) {
3254 GeeTreeMapNode* _tmp4_;
3255 GeeTreeMapNode* _tmp5_;
3257 _tmp5_ = _tmp4_->left;
3258 _tmp4_->left = NULL;
3259 gee_tree_map_clear_subtree (self, _tmp5_);
3262 _tmp7_ = _tmp6_->right;
3263 if (_tmp7_ != NULL) {
3264 GeeTreeMapNode* _tmp8_;
3265 GeeTreeMapNode* _tmp9_;
3267 _tmp9_ = _tmp8_->right;
3268 _tmp8_->right = NULL;
3269 gee_tree_map_clear_subtree (self, _tmp9_);
3271 _gee_tree_map_node_free0 (node);
3278 static void gee_tree_map_real_clear (GeeAbstractMap* base) {
3280 GeeTreeMapNode* _tmp0_;
3282 self = (GeeTreeMap*) base;
3283 _tmp0_ = self->priv->root;
3284 if (_tmp0_ != NULL) {
3285 GeeTreeMapNode* _tmp1_;
3286 GeeTreeMapNode* _tmp2_;
3287 _tmp1_ = self->priv->root;
3288 self->priv->root = NULL;
3289 gee_tree_map_clear_subtree (self, _tmp1_);
3290 self->priv->last = NULL;
3291 _tmp2_ = self->priv->last;
3292 self->priv->first = _tmp2_;
3294 self->priv->_size = 0;
3295 _tmp3_ = self->priv->stamp;
3296 self->priv->stamp = _tmp3_ + 1;
3303 static GeeSortedMap* gee_tree_map_real_head_map (GeeAbstractSortedMap* base, gconstpointer before) {
3305 GeeSortedMap* result = NULL;
3306 gconstpointer _tmp0_;
3307 GeeTreeMapRange* _tmp1_;
3308 GeeTreeMapRange* _tmp2_;
3309 GeeTreeMapSubMap* _tmp3_;
3310 GeeSortedMap* _tmp4_;
3311 self = (GeeTreeMap*) base;
3313 _tmp1_ = gee_tree_map_range_new_head (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, self, _tmp0_);
3315 _tmp3_ = gee_tree_map_sub_map_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, self, _tmp2_);
3316 _tmp4_ = (GeeSortedMap*) _tmp3_;
3317 _gee_tree_map_range_unref0 (_tmp2_);
3326 static GeeSortedMap* gee_tree_map_real_tail_map (GeeAbstractSortedMap* base, gconstpointer after) {
3328 GeeSortedMap* result = NULL;
3329 gconstpointer _tmp0_;
3330 GeeTreeMapRange* _tmp1_;
3331 GeeTreeMapRange* _tmp2_;
3332 GeeTreeMapSubMap* _tmp3_;
3333 GeeSortedMap* _tmp4_;
3334 self = (GeeTreeMap*) base;
3336 _tmp1_ = gee_tree_map_range_new_tail (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, self, _tmp0_);
3338 _tmp3_ = gee_tree_map_sub_map_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, self, _tmp2_);
3339 _tmp4_ = (GeeSortedMap*) _tmp3_;
3340 _gee_tree_map_range_unref0 (_tmp2_);
3349 static GeeSortedMap* gee_tree_map_real_sub_map (GeeAbstractSortedMap* base, gconstpointer after, gconstpointer before) {
3351 GeeSortedMap* result = NULL;
3352 gconstpointer _tmp0_;
3353 gconstpointer _tmp1_;
3354 GeeTreeMapRange* _tmp2_;
3355 GeeTreeMapRange* _tmp3_;
3356 GeeTreeMapSubMap* _tmp4_;
3357 GeeSortedMap* _tmp5_;
3358 self = (GeeTreeMap*) base;
3361 _tmp2_ = gee_tree_map_range_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, self, _tmp0_, _tmp1_);
3363 _tmp4_ = gee_tree_map_sub_map_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, self, _tmp3_);
3364 _tmp5_ = (GeeSortedMap*) _tmp4_;
3365 _gee_tree_map_range_unref0 (_tmp3_);
3374 static GeeMapIterator* gee_tree_map_real_map_iterator (GeeAbstractMap* base) {
3376 GeeMapIterator* result = NULL;
3377 GeeTreeMapMapIterator* _tmp0_;
3378 self = (GeeTreeMap*) base;
3379 _tmp0_ = gee_tree_map_map_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, self);
3380 result = (GeeMapIterator*) _tmp0_;
3388 static GeeBidirMapIterator* gee_tree_map_real_bidir_map_iterator (GeeAbstractBidirSortedMap* base) {
3390 GeeBidirMapIterator* result = NULL;
3391 GeeTreeMapMapIterator* _tmp0_;
3392 self = (GeeTreeMap*) base;
3393 _tmp0_ = gee_tree_map_map_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, self);
3394 result = (GeeBidirMapIterator*) _tmp0_;
3399 static inline gpointer gee_tree_map_min (GeeTreeMap* self, gconstpointer a, gconstpointer b) {
3400 gpointer result = NULL;
3401 gconstpointer _tmp0_ = NULL;
3402 GCompareDataFunc _tmp1_;
3403 void* _tmp1__target;
3404 GCompareDataFunc _tmp2_;
3405 void* _tmp2__target;
3406 gconstpointer _tmp3_;
3407 gconstpointer _tmp4_;
3409 gconstpointer _tmp8_;
3411 g_return_val_if_fail (self != NULL, NULL);
3412 _tmp1_ = gee_tree_map_get_key_compare_func (self, &_tmp1__target);
3414 _tmp2__target = _tmp1__target;
3417 _tmp5_ = _tmp2_ (_tmp3_, _tmp4_, _tmp2__target);
3419 gconstpointer _tmp6_;
3423 gconstpointer _tmp7_;
3428 _tmp9_ = ((_tmp8_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp8_) : ((gpointer) _tmp8_);
3434 static inline gpointer gee_tree_map_max (GeeTreeMap* self, gconstpointer a, gconstpointer b) {
3435 gpointer result = NULL;
3436 gconstpointer _tmp0_ = NULL;
3437 GCompareDataFunc _tmp1_;
3438 void* _tmp1__target;
3439 GCompareDataFunc _tmp2_;
3440 void* _tmp2__target;
3441 gconstpointer _tmp3_;
3442 gconstpointer _tmp4_;
3444 gconstpointer _tmp8_;
3446 g_return_val_if_fail (self != NULL, NULL);
3447 _tmp1_ = gee_tree_map_get_key_compare_func (self, &_tmp1__target);
3449 _tmp2__target = _tmp1__target;
3452 _tmp5_ = _tmp2_ (_tmp3_, _tmp4_, _tmp2__target);
3454 gconstpointer _tmp6_;
3458 gconstpointer _tmp7_;
3463 _tmp9_ = ((_tmp8_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp8_) : ((gpointer) _tmp8_);
3469 static inline GeeTreeMapNode* gee_tree_map_find_node (GeeTreeMap* self, gconstpointer key) {
3470 GeeTreeMapNode* result = NULL;
3471 GeeTreeMapNode* _tmp0_;
3472 GeeTreeMapNode* cur;
3473 g_return_val_if_fail (self != NULL, NULL);
3474 _tmp0_ = self->priv->root;
3477 GeeTreeMapNode* _tmp1_;
3478 GCompareDataFunc _tmp2_;
3479 void* _tmp2__target;
3480 GCompareDataFunc _tmp3_;
3481 void* _tmp3__target;
3482 gconstpointer _tmp4_;
3483 GeeTreeMapNode* _tmp5_;
3484 gconstpointer _tmp6_;
3489 if (!(_tmp1_ != NULL)) {
3492 _tmp2_ = gee_tree_map_get_key_compare_func (self, &_tmp2__target);
3494 _tmp3__target = _tmp2__target;
3497 _tmp6_ = _tmp5_->key;
3498 _tmp7_ = _tmp3_ (_tmp4_, _tmp6_, _tmp3__target);
3502 GeeTreeMapNode* _tmp9_;
3510 GeeTreeMapNode* _tmp11_;
3511 GeeTreeMapNode* _tmp12_;
3513 _tmp12_ = _tmp11_->left;
3516 GeeTreeMapNode* _tmp13_;
3517 GeeTreeMapNode* _tmp14_;
3519 _tmp14_ = _tmp13_->right;
3529 static inline GeeTreeMapNode* gee_tree_map_find_nearest (GeeTreeMap* self, gconstpointer key) {
3530 GeeTreeMapNode* result = NULL;
3531 GeeTreeMapNode* _tmp0_;
3532 GeeTreeMapNode* cur;
3533 g_return_val_if_fail (self != NULL, NULL);
3534 _tmp0_ = self->priv->root;
3537 GeeTreeMapNode* _tmp1_;
3538 GCompareDataFunc _tmp2_;
3539 void* _tmp2__target;
3540 GCompareDataFunc _tmp3_;
3541 void* _tmp3__target;
3542 gconstpointer _tmp4_;
3543 GeeTreeMapNode* _tmp5_;
3544 gconstpointer _tmp6_;
3549 if (!(_tmp1_ != NULL)) {
3552 _tmp2_ = gee_tree_map_get_key_compare_func (self, &_tmp2__target);
3554 _tmp3__target = _tmp2__target;
3557 _tmp6_ = _tmp5_->key;
3558 _tmp7_ = _tmp3_ (_tmp4_, _tmp6_, _tmp3__target);
3562 GeeTreeMapNode* _tmp9_;
3570 GeeTreeMapNode* _tmp11_;
3571 GeeTreeMapNode* _tmp12_;
3572 GeeTreeMapNode* _tmp14_;
3573 GeeTreeMapNode* _tmp15_;
3575 _tmp12_ = _tmp11_->left;
3576 if (_tmp12_ == NULL) {
3577 GeeTreeMapNode* _tmp13_;
3583 _tmp15_ = _tmp14_->left;
3586 GeeTreeMapNode* _tmp16_;
3587 GeeTreeMapNode* _tmp17_;
3588 GeeTreeMapNode* _tmp19_;
3589 GeeTreeMapNode* _tmp20_;
3591 _tmp17_ = _tmp16_->right;
3592 if (_tmp17_ == NULL) {
3593 GeeTreeMapNode* _tmp18_;
3599 _tmp20_ = _tmp19_->right;
3609 static inline GeeTreeMapNode* gee_tree_map_find_lower (GeeTreeMap* self, gconstpointer key) {
3610 GeeTreeMapNode* result = NULL;
3611 gconstpointer _tmp0_;
3612 GeeTreeMapNode* _tmp1_ = NULL;
3613 GeeTreeMapNode* node;
3614 GeeTreeMapNode* _tmp2_;
3615 GeeTreeMapNode* _tmp3_ = NULL;
3616 GCompareDataFunc _tmp4_;
3617 void* _tmp4__target;
3618 GCompareDataFunc _tmp5_;
3619 void* _tmp5__target;
3620 gconstpointer _tmp6_;
3621 GeeTreeMapNode* _tmp7_;
3622 gconstpointer _tmp8_;
3624 GeeTreeMapNode* _tmp13_;
3625 g_return_val_if_fail (self != NULL, NULL);
3627 _tmp1_ = gee_tree_map_find_nearest (self, _tmp0_);
3630 if (_tmp2_ == NULL) {
3634 _tmp4_ = gee_tree_map_get_key_compare_func (self, &_tmp4__target);
3636 _tmp5__target = _tmp4__target;
3639 _tmp8_ = _tmp7_->key;
3640 _tmp9_ = _tmp5_ (_tmp6_, _tmp8_, _tmp5__target);
3642 GeeTreeMapNode* _tmp10_;
3643 GeeTreeMapNode* _tmp11_;
3645 _tmp11_ = _tmp10_->prev;
3648 GeeTreeMapNode* _tmp12_;
3658 static inline GeeTreeMapNode* gee_tree_map_find_higher (GeeTreeMap* self, gconstpointer key) {
3659 GeeTreeMapNode* result = NULL;
3660 gconstpointer _tmp0_;
3661 GeeTreeMapNode* _tmp1_ = NULL;
3662 GeeTreeMapNode* node;
3663 GeeTreeMapNode* _tmp2_;
3664 GeeTreeMapNode* _tmp3_ = NULL;
3665 GCompareDataFunc _tmp4_;
3666 void* _tmp4__target;
3667 GCompareDataFunc _tmp5_;
3668 void* _tmp5__target;
3669 gconstpointer _tmp6_;
3670 GeeTreeMapNode* _tmp7_;
3671 gconstpointer _tmp8_;
3673 GeeTreeMapNode* _tmp13_;
3674 g_return_val_if_fail (self != NULL, NULL);
3676 _tmp1_ = gee_tree_map_find_nearest (self, _tmp0_);
3679 if (_tmp2_ == NULL) {
3683 _tmp4_ = gee_tree_map_get_key_compare_func (self, &_tmp4__target);
3685 _tmp5__target = _tmp4__target;
3688 _tmp8_ = _tmp7_->key;
3689 _tmp9_ = _tmp5_ (_tmp6_, _tmp8_, _tmp5__target);
3691 GeeTreeMapNode* _tmp10_;
3692 GeeTreeMapNode* _tmp11_;
3694 _tmp11_ = _tmp10_->next;
3697 GeeTreeMapNode* _tmp12_;
3707 static inline GeeTreeMapNode* gee_tree_map_find_floor (GeeTreeMap* self, gconstpointer key) {
3708 GeeTreeMapNode* result = NULL;
3709 gconstpointer _tmp0_;
3710 GeeTreeMapNode* _tmp1_ = NULL;
3711 GeeTreeMapNode* node;
3712 GeeTreeMapNode* _tmp2_;
3713 GeeTreeMapNode* _tmp3_ = NULL;
3714 GCompareDataFunc _tmp4_;
3715 void* _tmp4__target;
3716 GCompareDataFunc _tmp5_;
3717 void* _tmp5__target;
3718 gconstpointer _tmp6_;
3719 GeeTreeMapNode* _tmp7_;
3720 gconstpointer _tmp8_;
3722 GeeTreeMapNode* _tmp13_;
3723 g_return_val_if_fail (self != NULL, NULL);
3725 _tmp1_ = gee_tree_map_find_nearest (self, _tmp0_);
3728 if (_tmp2_ == NULL) {
3732 _tmp4_ = gee_tree_map_get_key_compare_func (self, &_tmp4__target);
3734 _tmp5__target = _tmp4__target;
3737 _tmp8_ = _tmp7_->key;
3738 _tmp9_ = _tmp5_ (_tmp6_, _tmp8_, _tmp5__target);
3740 GeeTreeMapNode* _tmp10_;
3741 GeeTreeMapNode* _tmp11_;
3743 _tmp11_ = _tmp10_->prev;
3746 GeeTreeMapNode* _tmp12_;
3756 static inline GeeTreeMapNode* gee_tree_map_find_ceil (GeeTreeMap* self, gconstpointer key) {
3757 GeeTreeMapNode* result = NULL;
3758 gconstpointer _tmp0_;
3759 GeeTreeMapNode* _tmp1_ = NULL;
3760 GeeTreeMapNode* node;
3761 GeeTreeMapNode* _tmp2_;
3762 GeeTreeMapNode* _tmp3_ = NULL;
3763 GCompareDataFunc _tmp4_;
3764 void* _tmp4__target;
3765 GCompareDataFunc _tmp5_;
3766 void* _tmp5__target;
3767 gconstpointer _tmp6_;
3768 GeeTreeMapNode* _tmp7_;
3769 gconstpointer _tmp8_;
3771 GeeTreeMapNode* _tmp13_;
3772 g_return_val_if_fail (self != NULL, NULL);
3774 _tmp1_ = gee_tree_map_find_nearest (self, _tmp0_);
3777 if (_tmp2_ == NULL) {
3781 _tmp4_ = gee_tree_map_get_key_compare_func (self, &_tmp4__target);
3783 _tmp5__target = _tmp4__target;
3786 _tmp8_ = _tmp7_->key;
3787 _tmp9_ = _tmp5_ (_tmp6_, _tmp8_, _tmp5__target);
3789 GeeTreeMapNode* _tmp10_;
3790 GeeTreeMapNode* _tmp11_;
3792 _tmp11_ = _tmp10_->next;
3795 GeeTreeMapNode* _tmp12_;
3805 static inline gpointer gee_tree_map_lift_null_key (GeeTreeMap* self, GeeTreeMapNode* node) {
3806 gpointer result = NULL;
3807 gconstpointer _tmp0_ = NULL;
3808 GeeTreeMapNode* _tmp1_;
3809 gconstpointer _tmp4_;
3811 g_return_val_if_fail (self != NULL, NULL);
3813 if (_tmp1_ != NULL) {
3814 GeeTreeMapNode* _tmp2_;
3815 gconstpointer _tmp3_;
3817 _tmp3_ = _tmp2_->key;
3823 _tmp5_ = ((_tmp4_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_);
3829 static gint gee_tree_map_real_get_size (GeeAbstractMap* base) {
3833 self = (GeeTreeMap*) base;
3834 _tmp0_ = self->priv->_size;
3840 static gboolean gee_tree_map_real_get_read_only (GeeAbstractMap* base) {
3843 self = (GeeTreeMap*) base;
3849 static gpointer _g_object_ref0 (gpointer self) {
3850 return self ? g_object_ref (self) : NULL;
3854 static GeeSet* gee_tree_map_real_get_keys (GeeAbstractMap* base) {
3857 GeeSortedSet* _tmp0_;
3858 GeeSortedSet* _tmp1_;
3860 GeeSortedSet* _tmp2_;
3861 self = (GeeTreeMap*) base;
3862 _tmp0_ = self->priv->_keys;
3863 _tmp1_ = _g_object_ref0 (_tmp0_);
3865 _tmp2_ = self->priv->_keys;
3866 if (_tmp2_ == NULL) {
3867 GeeTreeMapKeySet* _tmp3_;
3868 GeeSortedSet* _tmp4_;
3869 GeeSortedSet* _tmp5_;
3870 _tmp3_ = gee_tree_map_key_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, self);
3871 _g_object_unref0 (keys);
3872 keys = (GeeSortedSet*) _tmp3_;
3874 self->priv->_keys = _tmp4_;
3876 g_object_add_weak_pointer ((GObject*) _tmp5_, (void**) (&self->priv->_keys));
3878 result = (GeeSet*) keys;
3883 static GeeCollection* gee_tree_map_real_get_values (GeeAbstractMap* base) {
3884 GeeCollection* result;
3886 GeeCollection* _tmp0_;
3887 GeeCollection* _tmp1_;
3888 GeeCollection* values;
3889 GeeCollection* _tmp2_;
3890 self = (GeeTreeMap*) base;
3891 _tmp0_ = self->priv->_values;
3892 _tmp1_ = _g_object_ref0 (_tmp0_);
3894 _tmp2_ = self->priv->_values;
3895 if (_tmp2_ == NULL) {
3896 GeeTreeMapValueCollection* _tmp3_;
3897 GeeCollection* _tmp4_;
3898 GeeCollection* _tmp5_;
3899 _tmp3_ = gee_tree_map_value_collection_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, self);
3900 _g_object_unref0 (values);
3901 values = (GeeCollection*) _tmp3_;
3903 self->priv->_values = _tmp4_;
3905 g_object_add_weak_pointer ((GObject*) _tmp5_, (void**) (&self->priv->_values));
3912 static GeeSet* gee_tree_map_real_get_entries (GeeAbstractMap* base) {
3915 GeeSortedSet* _tmp0_;
3916 GeeSortedSet* _tmp1_;
3917 GeeSortedSet* entries;
3918 GeeSortedSet* _tmp2_;
3919 self = (GeeTreeMap*) base;
3920 _tmp0_ = self->priv->_entries;
3921 _tmp1_ = _g_object_ref0 (_tmp0_);
3923 _tmp2_ = self->priv->_entries;
3924 if (_tmp2_ == NULL) {
3925 GeeTreeMapEntrySet* _tmp3_;
3926 GeeSortedSet* _tmp4_;
3927 GeeSortedSet* _tmp5_;
3928 _tmp3_ = gee_tree_map_entry_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, self);
3929 _g_object_unref0 (entries);
3930 entries = (GeeSortedSet*) _tmp3_;
3932 self->priv->_entries = _tmp4_;
3934 g_object_add_weak_pointer ((GObject*) _tmp5_, (void**) (&self->priv->_entries));
3936 result = (GeeSet*) entries;
3941 GCompareDataFunc gee_tree_map_get_key_compare_func (GeeTreeMap* self, gpointer* result_target) {
3942 GCompareDataFunc result;
3943 GCompareDataFunc _tmp0_;
3944 void* _tmp0__target;
3945 GCompareDataFunc _tmp1_;
3946 void* _tmp1__target;
3947 g_return_val_if_fail (self != NULL, NULL);
3948 _tmp0_ = self->priv->_key_compare_func;
3949 _tmp0__target = self->priv->_key_compare_func_target;
3951 _tmp1__target = _tmp0__target;
3952 *result_target = _tmp1__target;
3958 static void gee_tree_map_set_key_compare_func (GeeTreeMap* self, GCompareDataFunc value, gpointer value_target) {
3959 GCompareDataFunc _tmp0_;
3960 void* _tmp0__target;
3961 g_return_if_fail (self != NULL);
3963 _tmp0__target = value_target;
3964 (self->priv->_key_compare_func_target_destroy_notify == NULL) ? NULL : (self->priv->_key_compare_func_target_destroy_notify (self->priv->_key_compare_func_target), NULL);
3965 self->priv->_key_compare_func = NULL;
3966 self->priv->_key_compare_func_target = NULL;
3967 self->priv->_key_compare_func_target_destroy_notify = NULL;
3968 self->priv->_key_compare_func = _tmp0_;
3969 self->priv->_key_compare_func_target = _tmp0__target;
3970 self->priv->_key_compare_func_target_destroy_notify = NULL;
3974 GeeEqualDataFunc gee_tree_map_get_value_equal_func (GeeTreeMap* self, gpointer* result_target) {
3975 GeeEqualDataFunc result;
3976 GeeEqualDataFunc _tmp0_;
3977 void* _tmp0__target;
3978 GeeEqualDataFunc _tmp1_;
3979 void* _tmp1__target;
3980 g_return_val_if_fail (self != NULL, NULL);
3981 _tmp0_ = self->priv->_value_equal_func;
3982 _tmp0__target = self->priv->_value_equal_func_target;
3984 _tmp1__target = _tmp0__target;
3985 *result_target = _tmp1__target;
3991 static void gee_tree_map_set_value_equal_func (GeeTreeMap* self, GeeEqualDataFunc value, gpointer value_target) {
3992 GeeEqualDataFunc _tmp0_;
3993 void* _tmp0__target;
3994 g_return_if_fail (self != NULL);
3996 _tmp0__target = value_target;
3997 (self->priv->_value_equal_func_target_destroy_notify == NULL) ? NULL : (self->priv->_value_equal_func_target_destroy_notify (self->priv->_value_equal_func_target), NULL);
3998 self->priv->_value_equal_func = NULL;
3999 self->priv->_value_equal_func_target = NULL;
4000 self->priv->_value_equal_func_target_destroy_notify = NULL;
4001 self->priv->_value_equal_func = _tmp0_;
4002 self->priv->_value_equal_func_target = _tmp0__target;
4003 self->priv->_value_equal_func_target_destroy_notify = NULL;
4007 static GeeSortedSet* gee_tree_map_real_get_ascending_keys (GeeAbstractSortedMap* base) {
4008 GeeSortedSet* result;
4010 GeeSortedSet* _tmp0_;
4011 GeeSortedSet* _tmp1_;
4013 GeeSortedSet* _tmp2_;
4014 self = (GeeTreeMap*) base;
4015 _tmp0_ = self->priv->_keys;
4016 _tmp1_ = _g_object_ref0 (_tmp0_);
4018 _tmp2_ = self->priv->_keys;
4019 if (_tmp2_ == NULL) {
4020 GeeTreeMapKeySet* _tmp3_;
4021 GeeSortedSet* _tmp4_;
4022 GeeSortedSet* _tmp5_;
4023 _tmp3_ = gee_tree_map_key_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, self);
4024 _g_object_unref0 (keys);
4025 keys = (GeeSortedSet*) _tmp3_;
4027 self->priv->_keys = _tmp4_;
4029 g_object_add_weak_pointer ((GObject*) _tmp5_, &self->priv->_keys);
4036 static GeeSortedSet* gee_tree_map_real_get_ascending_entries (GeeAbstractSortedMap* base) {
4037 GeeSortedSet* result;
4039 GeeSortedSet* _tmp0_;
4040 GeeSortedSet* _tmp1_;
4041 GeeSortedSet* entries;
4042 GeeSortedSet* _tmp2_;
4043 self = (GeeTreeMap*) base;
4044 _tmp0_ = self->priv->_entries;
4045 _tmp1_ = _g_object_ref0 (_tmp0_);
4047 _tmp2_ = self->priv->_entries;
4048 if (_tmp2_ == NULL) {
4049 GeeTreeMapEntrySet* _tmp3_;
4050 GeeSortedSet* _tmp4_;
4051 GeeSortedSet* _tmp5_;
4052 _tmp3_ = gee_tree_map_entry_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, self);
4053 _g_object_unref0 (entries);
4054 entries = (GeeSortedSet*) _tmp3_;
4056 self->priv->_entries = _tmp4_;
4058 g_object_add_weak_pointer ((GObject*) _tmp5_, &self->priv->_entries);
4065 static GeeTreeMapNodeColor gee_tree_map_node_color_flip (GeeTreeMapNodeColor self) {
4066 GeeTreeMapNodeColor result = 0;
4067 if (self == GEE_TREE_MAP_NODE_COLOR_RED) {
4068 result = GEE_TREE_MAP_NODE_COLOR_BLACK;
4071 result = GEE_TREE_MAP_NODE_COLOR_RED;
4077 GType gee_tree_map_node_color_get_type (void) {
4078 static volatile gsize gee_tree_map_node_color_type_id__volatile = 0;
4079 if (g_once_init_enter (&gee_tree_map_node_color_type_id__volatile)) {
4080 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}};
4081 GType gee_tree_map_node_color_type_id;
4082 gee_tree_map_node_color_type_id = g_enum_register_static ("GeeTreeMapNodeColor", values);
4083 g_once_init_leave (&gee_tree_map_node_color_type_id__volatile, gee_tree_map_node_color_type_id);
4085 return gee_tree_map_node_color_type_id__volatile;
4089 static GeeTreeMapNode* gee_tree_map_node_new (gpointer key, gpointer value, GeeTreeMapNode* prev, GeeTreeMapNode* next) {
4090 GeeTreeMapNode* self;
4093 GeeTreeMapNode* _tmp2_;
4094 GeeTreeMapNode* _tmp3_;
4095 GeeTreeMapNode* _tmp4_;
4096 GeeTreeMapNode* _tmp6_;
4097 self = g_slice_new0 (GeeTreeMapNode);
4098 gee_tree_map_node_instance_init (self);
4104 self->value = _tmp1_;
4105 self->color = GEE_TREE_MAP_NODE_COLOR_RED;
4107 self->prev = _tmp2_;
4109 self->next = _tmp3_;
4111 if (_tmp4_ != NULL) {
4112 GeeTreeMapNode* _tmp5_;
4114 _tmp5_->next = self;
4117 if (_tmp6_ != NULL) {
4118 GeeTreeMapNode* _tmp7_;
4120 _tmp7_->prev = self;
4126 static void gee_tree_map_node_flip (GeeTreeMapNode* self) {
4127 GeeTreeMapNodeColor _tmp0_;
4128 GeeTreeMapNodeColor _tmp1_ = 0;
4129 GeeTreeMapNode* _tmp2_;
4130 GeeTreeMapNode* _tmp7_;
4131 g_return_if_fail (self != NULL);
4132 _tmp0_ = self->color;
4133 _tmp1_ = gee_tree_map_node_color_flip (_tmp0_);
4134 self->color = _tmp1_;
4135 _tmp2_ = self->left;
4136 if (_tmp2_ != NULL) {
4137 GeeTreeMapNode* _tmp3_;
4138 GeeTreeMapNode* _tmp4_;
4139 GeeTreeMapNodeColor _tmp5_;
4140 GeeTreeMapNodeColor _tmp6_ = 0;
4141 _tmp3_ = self->left;
4142 _tmp4_ = self->left;
4143 _tmp5_ = _tmp4_->color;
4144 _tmp6_ = gee_tree_map_node_color_flip (_tmp5_);
4145 _tmp3_->color = _tmp6_;
4147 _tmp7_ = self->right;
4148 if (_tmp7_ != NULL) {
4149 GeeTreeMapNode* _tmp8_;
4150 GeeTreeMapNode* _tmp9_;
4151 GeeTreeMapNodeColor _tmp10_;
4152 GeeTreeMapNodeColor _tmp11_ = 0;
4153 _tmp8_ = self->right;
4154 _tmp9_ = self->right;
4155 _tmp10_ = _tmp9_->color;
4156 _tmp11_ = gee_tree_map_node_color_flip (_tmp10_);
4157 _tmp8_->color = _tmp11_;
4162 static void gee_tree_map_node_instance_init (GeeTreeMapNode * self) {
4166 static void gee_tree_map_node_free (GeeTreeMapNode* self) {
4167 _gee_tree_map_node_free0 (self->left);
4168 _gee_tree_map_node_free0 (self->right);
4169 g_slice_free (GeeTreeMapNode, self);
4173 static GeeMapEntry* gee_tree_map_entry_entry_for (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMapNode* node) {
4174 GeeMapEntry* result = NULL;
4175 GeeTreeMapNode* _tmp0_;
4176 GeeMapEntry* _tmp1_;
4177 GeeMapEntry* _tmp2_;
4178 GeeMapEntry* _result_;
4179 GeeMapEntry* _tmp3_;
4180 g_return_val_if_fail (node != NULL, NULL);
4182 _tmp1_ = _tmp0_->entry;
4183 _tmp2_ = _g_object_ref0 (_tmp1_);
4186 if (_tmp3_ == NULL) {
4187 GeeTreeMapNode* _tmp4_;
4188 GeeTreeMapEntry* _tmp5_;
4189 GeeTreeMapNode* _tmp6_;
4190 GeeMapEntry* _tmp7_;
4191 GeeMapEntry* _tmp8_;
4192 GeeTreeMapNode* _tmp9_;
4194 _tmp5_ = gee_tree_map_entry_new (k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp4_);
4195 _g_object_unref0 (_result_);
4196 _result_ = (GeeMapEntry*) _tmp5_;
4199 _tmp6_->entry = _tmp7_;
4202 g_object_add_weak_pointer ((GObject*) _tmp8_, (void**) (&_tmp9_->entry));
4209 static GeeTreeMapEntry* gee_tree_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, GeeTreeMapNode* node) {
4210 GeeTreeMapEntry * self = NULL;
4211 GeeTreeMapNode* _tmp0_;
4212 g_return_val_if_fail (node != NULL, NULL);
4213 self = (GeeTreeMapEntry*) gee_map_entry_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func);
4214 self->priv->k_type = k_type;
4215 self->priv->k_dup_func = k_dup_func;
4216 self->priv->k_destroy_func = k_destroy_func;
4217 self->priv->v_type = v_type;
4218 self->priv->v_dup_func = v_dup_func;
4219 self->priv->v_destroy_func = v_destroy_func;
4221 self->priv->_node = _tmp0_;
4226 static GeeTreeMapEntry* gee_tree_map_entry_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMapNode* node) {
4227 return gee_tree_map_entry_construct (GEE_TREE_MAP_TYPE_ENTRY, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, node);
4231 static gconstpointer gee_tree_map_entry_real_get_key (GeeMapEntry* base) {
4232 gconstpointer result;
4233 GeeTreeMapEntry* self;
4234 GeeTreeMapNode* _tmp0_;
4235 gconstpointer _tmp1_;
4236 self = (GeeTreeMapEntry*) base;
4237 _tmp0_ = self->priv->_node;
4238 _tmp1_ = _tmp0_->key;
4244 static gconstpointer gee_tree_map_entry_real_get_value (GeeMapEntry* base) {
4245 gconstpointer result;
4246 GeeTreeMapEntry* self;
4247 GeeTreeMapNode* _tmp0_;
4248 gconstpointer _tmp1_;
4249 self = (GeeTreeMapEntry*) base;
4250 _tmp0_ = self->priv->_node;
4251 _tmp1_ = _tmp0_->value;
4257 static void gee_tree_map_entry_real_set_value (GeeMapEntry* base, gconstpointer value) {
4258 GeeTreeMapEntry* self;
4259 GeeTreeMapNode* _tmp0_;
4260 gconstpointer _tmp1_;
4262 self = (GeeTreeMapEntry*) base;
4263 _tmp0_ = self->priv->_node;
4265 _tmp2_ = ((_tmp1_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp1_) : ((gpointer) _tmp1_);
4266 ((_tmp0_->value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_tmp0_->value = (self->priv->v_destroy_func (_tmp0_->value), NULL));
4267 _tmp0_->value = _tmp2_;
4268 g_object_notify ((GObject *) self, "value");
4272 static gboolean gee_tree_map_entry_real_get_read_only (GeeMapEntry* base) {
4274 GeeTreeMapEntry* self;
4275 self = (GeeTreeMapEntry*) base;
4281 static void gee_tree_map_entry_class_init (GeeTreeMapEntryClass * klass) {
4282 gee_tree_map_entry_parent_class = g_type_class_peek_parent (klass);
4283 g_type_class_add_private (klass, sizeof (GeeTreeMapEntryPrivate));
4284 GEE_MAP_ENTRY_CLASS (klass)->get_key = gee_tree_map_entry_real_get_key;
4285 GEE_MAP_ENTRY_CLASS (klass)->get_value = gee_tree_map_entry_real_get_value;
4286 GEE_MAP_ENTRY_CLASS (klass)->set_value = gee_tree_map_entry_real_set_value;
4287 GEE_MAP_ENTRY_CLASS (klass)->get_read_only = gee_tree_map_entry_real_get_read_only;
4288 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_entry_get_property;
4289 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_entry_set_property;
4290 G_OBJECT_CLASS (klass)->finalize = gee_tree_map_entry_finalize;
4291 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
4292 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
4293 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
4294 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
4295 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
4296 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
4297 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_KEY, g_param_spec_pointer ("key", "key", "key", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
4298 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_VALUE, g_param_spec_pointer ("value", "value", "value", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE));
4299 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
4303 static void gee_tree_map_entry_instance_init (GeeTreeMapEntry * self) {
4304 self->priv = GEE_TREE_MAP_ENTRY_GET_PRIVATE (self);
4308 static void gee_tree_map_entry_finalize (GObject* obj) {
4309 GeeTreeMapEntry * self;
4310 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TREE_MAP_TYPE_ENTRY, GeeTreeMapEntry);
4311 G_OBJECT_CLASS (gee_tree_map_entry_parent_class)->finalize (obj);
4315 static GType gee_tree_map_entry_get_type (void) {
4316 static volatile gsize gee_tree_map_entry_type_id__volatile = 0;
4317 if (g_once_init_enter (&gee_tree_map_entry_type_id__volatile)) {
4318 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 };
4319 GType gee_tree_map_entry_type_id;
4320 gee_tree_map_entry_type_id = g_type_register_static (GEE_MAP_TYPE_ENTRY, "GeeTreeMapEntry", &g_define_type_info, 0);
4321 g_once_init_leave (&gee_tree_map_entry_type_id__volatile, gee_tree_map_entry_type_id);
4323 return gee_tree_map_entry_type_id__volatile;
4327 static void _vala_gee_tree_map_entry_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
4328 GeeTreeMapEntry * self;
4329 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_ENTRY, GeeTreeMapEntry);
4330 switch (property_id) {
4331 case GEE_TREE_MAP_ENTRY_KEY:
4332 g_value_set_pointer (value, gee_map_entry_get_key ((GeeMapEntry*) self));
4334 case GEE_TREE_MAP_ENTRY_VALUE:
4335 g_value_set_pointer (value, gee_map_entry_get_value ((GeeMapEntry*) self));
4337 case GEE_TREE_MAP_ENTRY_READ_ONLY:
4338 g_value_set_boolean (value, gee_map_entry_get_read_only ((GeeMapEntry*) self));
4341 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
4347 static void _vala_gee_tree_map_entry_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
4348 GeeTreeMapEntry * self;
4349 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_ENTRY, GeeTreeMapEntry);
4350 switch (property_id) {
4351 case GEE_TREE_MAP_ENTRY_VALUE:
4352 gee_map_entry_set_value ((GeeMapEntry*) self, g_value_get_pointer (value));
4354 case GEE_TREE_MAP_ENTRY_K_TYPE:
4355 self->priv->k_type = g_value_get_gtype (value);
4357 case GEE_TREE_MAP_ENTRY_K_DUP_FUNC:
4358 self->priv->k_dup_func = g_value_get_pointer (value);
4360 case GEE_TREE_MAP_ENTRY_K_DESTROY_FUNC:
4361 self->priv->k_destroy_func = g_value_get_pointer (value);
4363 case GEE_TREE_MAP_ENTRY_V_TYPE:
4364 self->priv->v_type = g_value_get_gtype (value);
4366 case GEE_TREE_MAP_ENTRY_V_DUP_FUNC:
4367 self->priv->v_dup_func = g_value_get_pointer (value);
4369 case GEE_TREE_MAP_ENTRY_V_DESTROY_FUNC:
4370 self->priv->v_destroy_func = g_value_get_pointer (value);
4373 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
4379 static GeeTreeMapRange* gee_tree_map_range_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, GeeTreeMap* map, gconstpointer after, gconstpointer before) {
4380 GeeTreeMapRange* self = NULL;
4384 GCompareDataFunc _tmp3_;
4385 void* _tmp3__target;
4386 GCompareDataFunc _tmp4_;
4387 void* _tmp4__target;
4388 gconstpointer _tmp5_;
4389 gconstpointer _tmp6_;
4391 g_return_val_if_fail (map != NULL, NULL);
4392 self = (GeeTreeMapRange*) g_type_create_instance (object_type);
4393 self->priv->k_type = k_type;
4394 self->priv->k_dup_func = k_dup_func;
4395 self->priv->k_destroy_func = k_destroy_func;
4396 self->priv->v_type = v_type;
4397 self->priv->v_dup_func = v_dup_func;
4398 self->priv->v_destroy_func = v_destroy_func;
4400 _tmp1_ = _g_object_ref0 (_tmp0_);
4401 _g_object_unref0 (self->priv->map);
4402 self->priv->map = _tmp1_;
4404 _tmp3_ = gee_tree_map_get_key_compare_func (_tmp2_, &_tmp3__target);
4406 _tmp4__target = _tmp3__target;
4409 _tmp7_ = _tmp4_ (_tmp5_, _tmp6_, _tmp4__target);
4411 gconstpointer _tmp8_;
4413 gconstpointer _tmp10_;
4416 _tmp9_ = ((_tmp8_ != NULL) && (k_dup_func != NULL)) ? k_dup_func ((gpointer) _tmp8_) : ((gpointer) _tmp8_);
4417 _k_destroy_func0 (self->priv->after);
4418 self->priv->after = _tmp9_;
4420 _tmp11_ = ((_tmp10_ != NULL) && (k_dup_func != NULL)) ? k_dup_func ((gpointer) _tmp10_) : ((gpointer) _tmp10_);
4421 _k_destroy_func0 (self->priv->before);
4422 self->priv->before = _tmp11_;
4423 self->priv->type = GEE_TREE_MAP_RANGE_TYPE_BOUNDED;
4425 self->priv->type = GEE_TREE_MAP_RANGE_TYPE_EMPTY;
4431 static GeeTreeMapRange* gee_tree_map_range_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, gconstpointer after, gconstpointer before) {
4432 return gee_tree_map_range_construct (GEE_TREE_MAP_TYPE_RANGE, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, after, before);
4436 static GeeTreeMapRange* gee_tree_map_range_construct_head (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, GeeTreeMap* map, gconstpointer before) {
4437 GeeTreeMapRange* self = NULL;
4440 gconstpointer _tmp2_;
4442 g_return_val_if_fail (map != NULL, NULL);
4443 self = (GeeTreeMapRange*) g_type_create_instance (object_type);
4444 self->priv->k_type = k_type;
4445 self->priv->k_dup_func = k_dup_func;
4446 self->priv->k_destroy_func = k_destroy_func;
4447 self->priv->v_type = v_type;
4448 self->priv->v_dup_func = v_dup_func;
4449 self->priv->v_destroy_func = v_destroy_func;
4451 _tmp1_ = _g_object_ref0 (_tmp0_);
4452 _g_object_unref0 (self->priv->map);
4453 self->priv->map = _tmp1_;
4455 _tmp3_ = ((_tmp2_ != NULL) && (k_dup_func != NULL)) ? k_dup_func ((gpointer) _tmp2_) : ((gpointer) _tmp2_);
4456 _k_destroy_func0 (self->priv->before);
4457 self->priv->before = _tmp3_;
4458 self->priv->type = GEE_TREE_MAP_RANGE_TYPE_HEAD;
4463 static GeeTreeMapRange* gee_tree_map_range_new_head (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, gconstpointer before) {
4464 return gee_tree_map_range_construct_head (GEE_TREE_MAP_TYPE_RANGE, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, before);
4468 static GeeTreeMapRange* gee_tree_map_range_construct_tail (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, GeeTreeMap* map, gconstpointer after) {
4469 GeeTreeMapRange* self = NULL;
4472 gconstpointer _tmp2_;
4474 g_return_val_if_fail (map != NULL, NULL);
4475 self = (GeeTreeMapRange*) g_type_create_instance (object_type);
4476 self->priv->k_type = k_type;
4477 self->priv->k_dup_func = k_dup_func;
4478 self->priv->k_destroy_func = k_destroy_func;
4479 self->priv->v_type = v_type;
4480 self->priv->v_dup_func = v_dup_func;
4481 self->priv->v_destroy_func = v_destroy_func;
4483 _tmp1_ = _g_object_ref0 (_tmp0_);
4484 _g_object_unref0 (self->priv->map);
4485 self->priv->map = _tmp1_;
4487 _tmp3_ = ((_tmp2_ != NULL) && (k_dup_func != NULL)) ? k_dup_func ((gpointer) _tmp2_) : ((gpointer) _tmp2_);
4488 _k_destroy_func0 (self->priv->after);
4489 self->priv->after = _tmp3_;
4490 self->priv->type = GEE_TREE_MAP_RANGE_TYPE_TAIL;
4495 static GeeTreeMapRange* gee_tree_map_range_new_tail (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, gconstpointer after) {
4496 return gee_tree_map_range_construct_tail (GEE_TREE_MAP_TYPE_RANGE, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, after);
4500 static GeeTreeMapRange* gee_tree_map_range_construct_empty (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, GeeTreeMap* map) {
4501 GeeTreeMapRange* self = NULL;
4504 g_return_val_if_fail (map != NULL, NULL);
4505 self = (GeeTreeMapRange*) g_type_create_instance (object_type);
4506 self->priv->k_type = k_type;
4507 self->priv->k_dup_func = k_dup_func;
4508 self->priv->k_destroy_func = k_destroy_func;
4509 self->priv->v_type = v_type;
4510 self->priv->v_dup_func = v_dup_func;
4511 self->priv->v_destroy_func = v_destroy_func;
4513 _tmp1_ = _g_object_ref0 (_tmp0_);
4514 _g_object_unref0 (self->priv->map);
4515 self->priv->map = _tmp1_;
4516 self->priv->type = GEE_TREE_MAP_RANGE_TYPE_EMPTY;
4521 static GeeTreeMapRange* gee_tree_map_range_new_empty (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map) {
4522 return gee_tree_map_range_construct_empty (GEE_TREE_MAP_TYPE_RANGE, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map);
4526 static gpointer _gee_tree_map_range_ref0 (gpointer self) {
4527 return self ? gee_tree_map_range_ref (self) : NULL;
4531 static GeeTreeMapRange* gee_tree_map_range_cut_head (GeeTreeMapRange* self, gconstpointer after) {
4532 GeeTreeMapRange* result = NULL;
4533 GeeTreeMapRangeType _tmp0_;
4534 g_return_val_if_fail (self != NULL, NULL);
4535 _tmp0_ = self->priv->type;
4537 case GEE_TREE_MAP_RANGE_TYPE_HEAD:
4540 gconstpointer _tmp2_;
4541 gconstpointer _tmp3_;
4542 GeeTreeMapRange* _tmp4_;
4543 _tmp1_ = self->priv->map;
4545 _tmp3_ = self->priv->before;
4546 _tmp4_ = gee_tree_map_range_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp1_, _tmp2_, _tmp3_);
4550 case GEE_TREE_MAP_RANGE_TYPE_TAIL:
4554 gconstpointer _tmp7_;
4555 gconstpointer _tmp8_;
4556 gpointer _tmp9_ = NULL;
4558 GeeTreeMapRange* _tmp11_;
4559 GeeTreeMapRange* _tmp12_;
4560 _tmp5_ = self->priv->map;
4561 _tmp6_ = self->priv->map;
4563 _tmp8_ = self->priv->after;
4564 _tmp9_ = gee_tree_map_max (_tmp6_, _tmp7_, _tmp8_);
4566 _tmp11_ = gee_tree_map_range_new_tail (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp5_, _tmp10_);
4568 ((_tmp10_ == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_tmp10_ = (self->priv->k_destroy_func (_tmp10_), NULL));
4572 case GEE_TREE_MAP_RANGE_TYPE_EMPTY:
4574 GeeTreeMapRange* _tmp13_;
4575 _tmp13_ = _gee_tree_map_range_ref0 (self);
4579 case GEE_TREE_MAP_RANGE_TYPE_BOUNDED:
4581 GeeTreeMap* _tmp14_;
4582 gconstpointer _tmp15_;
4583 gconstpointer _tmp16_;
4584 gpointer _tmp17_ = NULL;
4586 GeeTreeMap* _tmp18_;
4587 gconstpointer _tmp19_;
4588 gconstpointer _tmp20_;
4589 GeeTreeMapRange* _tmp21_;
4590 _tmp14_ = self->priv->map;
4592 _tmp16_ = self->priv->after;
4593 _tmp17_ = gee_tree_map_max (_tmp14_, _tmp15_, _tmp16_);
4595 _tmp18_ = self->priv->map;
4597 _tmp20_ = self->priv->before;
4598 _tmp21_ = gee_tree_map_range_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp18_, _tmp19_, _tmp20_);
4600 ((_after == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_after = (self->priv->k_destroy_func (_after), NULL));
4605 g_assert_not_reached ();
4611 static GeeTreeMapRange* gee_tree_map_range_cut_tail (GeeTreeMapRange* self, gconstpointer before) {
4612 GeeTreeMapRange* result = NULL;
4613 GeeTreeMapRangeType _tmp0_;
4614 g_return_val_if_fail (self != NULL, NULL);
4615 _tmp0_ = self->priv->type;
4617 case GEE_TREE_MAP_RANGE_TYPE_HEAD:
4621 gconstpointer _tmp3_;
4622 gconstpointer _tmp4_;
4623 gpointer _tmp5_ = NULL;
4625 GeeTreeMapRange* _tmp7_;
4626 GeeTreeMapRange* _tmp8_;
4627 _tmp1_ = self->priv->map;
4628 _tmp2_ = self->priv->map;
4630 _tmp4_ = self->priv->before;
4631 _tmp5_ = gee_tree_map_min (_tmp2_, _tmp3_, _tmp4_);
4633 _tmp7_ = gee_tree_map_range_new_head (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp1_, _tmp6_);
4635 ((_tmp6_ == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_tmp6_ = (self->priv->k_destroy_func (_tmp6_), NULL));
4639 case GEE_TREE_MAP_RANGE_TYPE_TAIL:
4642 gconstpointer _tmp10_;
4643 gconstpointer _tmp11_;
4644 GeeTreeMapRange* _tmp12_;
4645 _tmp9_ = self->priv->map;
4646 _tmp10_ = self->priv->after;
4648 _tmp12_ = gee_tree_map_range_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp9_, _tmp10_, _tmp11_);
4652 case GEE_TREE_MAP_RANGE_TYPE_EMPTY:
4654 GeeTreeMapRange* _tmp13_;
4655 _tmp13_ = _gee_tree_map_range_ref0 (self);
4659 case GEE_TREE_MAP_RANGE_TYPE_BOUNDED:
4661 GeeTreeMap* _tmp14_;
4662 gconstpointer _tmp15_;
4663 gconstpointer _tmp16_;
4664 gpointer _tmp17_ = NULL;
4666 GeeTreeMap* _tmp18_;
4667 gconstpointer _tmp19_;
4668 gconstpointer _tmp20_;
4669 GeeTreeMapRange* _tmp21_;
4670 _tmp14_ = self->priv->map;
4672 _tmp16_ = self->priv->before;
4673 _tmp17_ = gee_tree_map_min (_tmp14_, _tmp15_, _tmp16_);
4675 _tmp18_ = self->priv->map;
4676 _tmp19_ = self->priv->after;
4678 _tmp21_ = gee_tree_map_range_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp18_, _tmp19_, _tmp20_);
4680 ((_before == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_before = (self->priv->k_destroy_func (_before), NULL));
4685 g_assert_not_reached ();
4691 static GeeTreeMapRange* gee_tree_map_range_cut (GeeTreeMapRange* self, gconstpointer after, gconstpointer before) {
4692 GeeTreeMapRange* result = NULL;
4693 GeeTreeMapRangeType _tmp0_;
4694 gpointer _tmp2_ = NULL;
4695 gboolean _tmp3_ = FALSE;
4696 GeeTreeMapRangeType _tmp4_;
4698 gconstpointer _tmp13_;
4701 gpointer _tmp15_ = NULL;
4702 gboolean _tmp16_ = FALSE;
4703 GeeTreeMapRangeType _tmp17_;
4705 gconstpointer _tmp26_;
4708 GeeTreeMap* _tmp28_;
4709 gconstpointer _tmp29_;
4710 gconstpointer _tmp30_;
4711 GeeTreeMapRange* _tmp31_;
4712 g_return_val_if_fail (self != NULL, NULL);
4713 _tmp0_ = self->priv->type;
4714 if (_tmp0_ == GEE_TREE_MAP_RANGE_TYPE_EMPTY) {
4715 GeeTreeMapRange* _tmp1_;
4716 _tmp1_ = _gee_tree_map_range_ref0 (self);
4720 _tmp4_ = self->priv->type;
4721 if (_tmp4_ == GEE_TREE_MAP_RANGE_TYPE_HEAD) {
4724 GeeTreeMapRangeType _tmp5_;
4725 _tmp5_ = self->priv->type;
4726 _tmp3_ = _tmp5_ == GEE_TREE_MAP_RANGE_TYPE_BOUNDED;
4731 gconstpointer _tmp8_;
4732 gconstpointer _tmp9_;
4733 gpointer _tmp10_ = NULL;
4734 _tmp7_ = self->priv->map;
4736 _tmp9_ = self->priv->before;
4737 _tmp10_ = gee_tree_map_min (_tmp7_, _tmp8_, _tmp9_);
4738 ((_tmp2_ == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_tmp2_ = (self->priv->k_destroy_func (_tmp2_), NULL));
4741 gconstpointer _tmp11_;
4744 _tmp12_ = ((_tmp11_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp11_) : ((gpointer) _tmp11_);
4745 ((_tmp2_ == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_tmp2_ = (self->priv->k_destroy_func (_tmp2_), NULL));
4749 _tmp14_ = ((_tmp13_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp13_) : ((gpointer) _tmp13_);
4751 _tmp17_ = self->priv->type;
4752 if (_tmp17_ == GEE_TREE_MAP_RANGE_TYPE_TAIL) {
4755 GeeTreeMapRangeType _tmp18_;
4756 _tmp18_ = self->priv->type;
4757 _tmp16_ = _tmp18_ == GEE_TREE_MAP_RANGE_TYPE_BOUNDED;
4761 GeeTreeMap* _tmp20_;
4762 gconstpointer _tmp21_;
4763 gconstpointer _tmp22_;
4764 gpointer _tmp23_ = NULL;
4765 _tmp20_ = self->priv->map;
4767 _tmp22_ = self->priv->after;
4768 _tmp23_ = gee_tree_map_max (_tmp20_, _tmp21_, _tmp22_);
4769 ((_tmp15_ == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_tmp15_ = (self->priv->k_destroy_func (_tmp15_), NULL));
4772 gconstpointer _tmp24_;
4775 _tmp25_ = ((_tmp24_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp24_) : ((gpointer) _tmp24_);
4776 ((_tmp15_ == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_tmp15_ = (self->priv->k_destroy_func (_tmp15_), NULL));
4780 _tmp27_ = ((_tmp26_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp26_) : ((gpointer) _tmp26_);
4782 _tmp28_ = self->priv->map;
4785 _tmp31_ = gee_tree_map_range_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp28_, _tmp29_, _tmp30_);
4787 ((_after == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_after = (self->priv->k_destroy_func (_after), NULL));
4788 ((_tmp15_ == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_tmp15_ = (self->priv->k_destroy_func (_tmp15_), NULL));
4789 ((_before == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_before = (self->priv->k_destroy_func (_before), NULL));
4790 ((_tmp2_ == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (_tmp2_ = (self->priv->k_destroy_func (_tmp2_), NULL));
4795 static gboolean gee_tree_map_range_in_range (GeeTreeMapRange* self, gconstpointer key) {
4796 gboolean result = FALSE;
4797 gboolean _tmp0_ = FALSE;
4798 GeeTreeMapRangeType _tmp1_;
4800 g_return_val_if_fail (self != NULL, FALSE);
4801 _tmp1_ = self->priv->type;
4802 if (_tmp1_ == GEE_TREE_MAP_RANGE_TYPE_EMPTY) {
4805 gconstpointer _tmp2_;
4808 _tmp3_ = gee_tree_map_range_compare_range (self, _tmp2_);
4809 _tmp0_ = _tmp3_ == 0;
4817 static gint gee_tree_map_range_compare_range (GeeTreeMapRange* self, gconstpointer key) {
4819 GeeTreeMapRangeType _tmp0_;
4820 g_return_val_if_fail (self != NULL, 0);
4821 _tmp0_ = self->priv->type;
4823 case GEE_TREE_MAP_RANGE_TYPE_HEAD:
4827 GCompareDataFunc _tmp3_;
4828 void* _tmp3__target;
4829 GCompareDataFunc _tmp4_;
4830 void* _tmp4__target;
4831 gconstpointer _tmp5_;
4832 gconstpointer _tmp6_;
4835 _tmp2_ = self->priv->map;
4836 _tmp3_ = gee_tree_map_get_key_compare_func (_tmp2_, &_tmp3__target);
4838 _tmp4__target = _tmp3__target;
4840 _tmp6_ = self->priv->before;
4841 _tmp7_ = _tmp4_ (_tmp5_, _tmp6_, _tmp4__target);
4851 case GEE_TREE_MAP_RANGE_TYPE_TAIL:
4854 GeeTreeMap* _tmp10_;
4855 GCompareDataFunc _tmp11_;
4856 void* _tmp11__target;
4857 GCompareDataFunc _tmp12_;
4858 void* _tmp12__target;
4859 gconstpointer _tmp13_;
4860 gconstpointer _tmp14_;
4863 _tmp10_ = self->priv->map;
4864 _tmp11_ = gee_tree_map_get_key_compare_func (_tmp10_, &_tmp11__target);
4866 _tmp12__target = _tmp11__target;
4868 _tmp14_ = self->priv->after;
4869 _tmp15_ = _tmp12_ (_tmp13_, _tmp14_, _tmp12__target);
4879 case GEE_TREE_MAP_RANGE_TYPE_EMPTY:
4884 case GEE_TREE_MAP_RANGE_TYPE_BOUNDED:
4887 GeeTreeMap* _tmp18_;
4888 GCompareDataFunc _tmp19_;
4889 void* _tmp19__target;
4890 GCompareDataFunc _tmp20_;
4891 void* _tmp20__target;
4892 gconstpointer _tmp21_;
4893 gconstpointer _tmp22_;
4896 _tmp18_ = self->priv->map;
4897 _tmp19_ = gee_tree_map_get_key_compare_func (_tmp18_, &_tmp19__target);
4899 _tmp20__target = _tmp19__target;
4901 _tmp22_ = self->priv->after;
4902 _tmp23_ = _tmp20_ (_tmp21_, _tmp22_, _tmp20__target);
4905 GeeTreeMap* _tmp25_;
4906 GCompareDataFunc _tmp26_;
4907 void* _tmp26__target;
4908 GCompareDataFunc _tmp27_;
4909 void* _tmp27__target;
4910 gconstpointer _tmp28_;
4911 gconstpointer _tmp29_;
4914 _tmp25_ = self->priv->map;
4915 _tmp26_ = gee_tree_map_get_key_compare_func (_tmp25_, &_tmp26__target);
4917 _tmp27__target = _tmp26__target;
4919 _tmp29_ = self->priv->before;
4920 _tmp30_ = _tmp27_ (_tmp28_, _tmp29_, _tmp27__target);
4937 g_assert_not_reached ();
4943 static gboolean gee_tree_map_range_empty_submap (GeeTreeMapRange* self) {
4944 gboolean result = FALSE;
4945 GeeTreeMapRangeType _tmp0_;
4946 g_return_val_if_fail (self != NULL, FALSE);
4947 _tmp0_ = self->priv->type;
4949 case GEE_TREE_MAP_RANGE_TYPE_HEAD:
4951 gboolean _tmp1_ = FALSE;
4953 GeeTreeMapNode* _tmp3_;
4955 _tmp2_ = self->priv->map;
4956 _tmp3_ = _tmp2_->priv->first;
4957 if (_tmp3_ == NULL) {
4961 GeeTreeMapNode* _tmp5_;
4962 gconstpointer _tmp6_;
4963 gboolean _tmp7_ = FALSE;
4964 _tmp4_ = self->priv->map;
4965 _tmp5_ = _tmp4_->priv->first;
4966 _tmp6_ = _tmp5_->key;
4967 _tmp7_ = gee_tree_map_range_in_range (self, _tmp6_);
4974 case GEE_TREE_MAP_RANGE_TYPE_TAIL:
4976 gboolean _tmp9_ = FALSE;
4977 GeeTreeMap* _tmp10_;
4978 GeeTreeMapNode* _tmp11_;
4980 _tmp10_ = self->priv->map;
4981 _tmp11_ = _tmp10_->priv->last;
4982 if (_tmp11_ == NULL) {
4985 GeeTreeMap* _tmp12_;
4986 GeeTreeMapNode* _tmp13_;
4987 gconstpointer _tmp14_;
4988 gboolean _tmp15_ = FALSE;
4989 _tmp12_ = self->priv->map;
4990 _tmp13_ = _tmp12_->priv->last;
4991 _tmp14_ = _tmp13_->key;
4992 _tmp15_ = gee_tree_map_range_in_range (self, _tmp14_);
4999 case GEE_TREE_MAP_RANGE_TYPE_EMPTY:
5004 case GEE_TREE_MAP_RANGE_TYPE_BOUNDED:
5006 GeeTreeMapNode* _tmp17_ = NULL;
5007 _tmp17_ = gee_tree_map_range_first (self);
5008 result = _tmp17_ == NULL;
5013 g_assert_not_reached ();
5019 static GeeTreeMapNode* gee_tree_map_range_first (GeeTreeMapRange* self) {
5020 GeeTreeMapNode* result = NULL;
5021 GeeTreeMapRangeType _tmp0_;
5022 g_return_val_if_fail (self != NULL, NULL);
5023 _tmp0_ = self->priv->type;
5025 case GEE_TREE_MAP_RANGE_TYPE_EMPTY:
5030 case GEE_TREE_MAP_RANGE_TYPE_HEAD:
5033 GeeTreeMapNode* _tmp2_;
5034 _tmp1_ = self->priv->map;
5035 _tmp2_ = _tmp1_->priv->first;
5042 gconstpointer _tmp4_;
5043 GeeTreeMapNode* _tmp5_ = NULL;
5044 _tmp3_ = self->priv->map;
5045 _tmp4_ = self->priv->after;
5046 _tmp5_ = gee_tree_map_find_floor (_tmp3_, _tmp4_);
5054 static GeeTreeMapNode* gee_tree_map_range_last (GeeTreeMapRange* self) {
5055 GeeTreeMapNode* result = NULL;
5056 GeeTreeMapRangeType _tmp0_;
5057 g_return_val_if_fail (self != NULL, NULL);
5058 _tmp0_ = self->priv->type;
5060 case GEE_TREE_MAP_RANGE_TYPE_EMPTY:
5065 case GEE_TREE_MAP_RANGE_TYPE_TAIL:
5068 GeeTreeMapNode* _tmp2_;
5069 _tmp1_ = self->priv->map;
5070 _tmp2_ = _tmp1_->priv->last;
5077 gconstpointer _tmp4_;
5078 GeeTreeMapNode* _tmp5_ = NULL;
5079 _tmp3_ = self->priv->map;
5080 _tmp4_ = self->priv->before;
5081 _tmp5_ = gee_tree_map_find_lower (_tmp3_, _tmp4_);
5089 static void gee_tree_map_value_range_init (GValue* value) {
5090 value->data[0].v_pointer = NULL;
5094 static void gee_tree_map_value_range_free_value (GValue* value) {
5095 if (value->data[0].v_pointer) {
5096 gee_tree_map_range_unref (value->data[0].v_pointer);
5101 static void gee_tree_map_value_range_copy_value (const GValue* src_value, GValue* dest_value) {
5102 if (src_value->data[0].v_pointer) {
5103 dest_value->data[0].v_pointer = gee_tree_map_range_ref (src_value->data[0].v_pointer);
5105 dest_value->data[0].v_pointer = NULL;
5110 static gpointer gee_tree_map_value_range_peek_pointer (const GValue* value) {
5111 return value->data[0].v_pointer;
5115 static gchar* gee_tree_map_value_range_collect_value (GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
5116 if (collect_values[0].v_pointer) {
5117 GeeTreeMapRange* object;
5118 object = collect_values[0].v_pointer;
5119 if (object->parent_instance.g_class == NULL) {
5120 return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
5121 } else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
5122 return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
5124 value->data[0].v_pointer = gee_tree_map_range_ref (object);
5126 value->data[0].v_pointer = NULL;
5132 static gchar* gee_tree_map_value_range_lcopy_value (const GValue* value, guint n_collect_values, GTypeCValue* collect_values, guint collect_flags) {
5133 GeeTreeMapRange** object_p;
5134 object_p = collect_values[0].v_pointer;
5136 return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
5138 if (!value->data[0].v_pointer) {
5140 } else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
5141 *object_p = value->data[0].v_pointer;
5143 *object_p = gee_tree_map_range_ref (value->data[0].v_pointer);
5149 static GParamSpec* gee_tree_map_param_spec_range (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags) {
5150 GeeTreeMapParamSpecRange* spec;
5151 g_return_val_if_fail (g_type_is_a (object_type, GEE_TREE_MAP_TYPE_RANGE), NULL);
5152 spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
5153 G_PARAM_SPEC (spec)->value_type = object_type;
5154 return G_PARAM_SPEC (spec);
5158 static gpointer gee_tree_map_value_get_range (const GValue* value) {
5159 g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_TREE_MAP_TYPE_RANGE), NULL);
5160 return value->data[0].v_pointer;
5164 static void gee_tree_map_value_set_range (GValue* value, gpointer v_object) {
5165 GeeTreeMapRange* old;
5166 g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_TREE_MAP_TYPE_RANGE));
5167 old = value->data[0].v_pointer;
5169 g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GEE_TREE_MAP_TYPE_RANGE));
5170 g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
5171 value->data[0].v_pointer = v_object;
5172 gee_tree_map_range_ref (value->data[0].v_pointer);
5174 value->data[0].v_pointer = NULL;
5177 gee_tree_map_range_unref (old);
5182 static void gee_tree_map_value_take_range (GValue* value, gpointer v_object) {
5183 GeeTreeMapRange* old;
5184 g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GEE_TREE_MAP_TYPE_RANGE));
5185 old = value->data[0].v_pointer;
5187 g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GEE_TREE_MAP_TYPE_RANGE));
5188 g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
5189 value->data[0].v_pointer = v_object;
5191 value->data[0].v_pointer = NULL;
5194 gee_tree_map_range_unref (old);
5199 static void gee_tree_map_range_class_init (GeeTreeMapRangeClass * klass) {
5200 gee_tree_map_range_parent_class = g_type_class_peek_parent (klass);
5201 GEE_TREE_MAP_RANGE_CLASS (klass)->finalize = gee_tree_map_range_finalize;
5202 g_type_class_add_private (klass, sizeof (GeeTreeMapRangePrivate));
5206 static void gee_tree_map_range_instance_init (GeeTreeMapRange * self) {
5207 self->priv = GEE_TREE_MAP_RANGE_GET_PRIVATE (self);
5208 self->ref_count = 1;
5212 static void gee_tree_map_range_finalize (GeeTreeMapRange* obj) {
5213 GeeTreeMapRange * self;
5214 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TREE_MAP_TYPE_RANGE, GeeTreeMapRange);
5215 _g_object_unref0 (self->priv->map);
5216 ((self->priv->after == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (self->priv->after = (self->priv->k_destroy_func (self->priv->after), NULL));
5217 ((self->priv->before == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (self->priv->before = (self->priv->k_destroy_func (self->priv->before), NULL));
5221 static GType gee_tree_map_range_get_type (void) {
5222 static volatile gsize gee_tree_map_range_type_id__volatile = 0;
5223 if (g_once_init_enter (&gee_tree_map_range_type_id__volatile)) {
5224 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 };
5225 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 };
5226 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) };
5227 GType gee_tree_map_range_type_id;
5228 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);
5229 g_once_init_leave (&gee_tree_map_range_type_id__volatile, gee_tree_map_range_type_id);
5231 return gee_tree_map_range_type_id__volatile;
5235 static gpointer gee_tree_map_range_ref (gpointer instance) {
5236 GeeTreeMapRange* self;
5238 g_atomic_int_inc (&self->ref_count);
5243 static void gee_tree_map_range_unref (gpointer instance) {
5244 GeeTreeMapRange* self;
5246 if (g_atomic_int_dec_and_test (&self->ref_count)) {
5247 GEE_TREE_MAP_RANGE_GET_CLASS (self)->finalize (self);
5248 g_type_free_instance ((GTypeInstance *) self);
5253 static GeeTreeMapSubMap* gee_tree_map_sub_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, GeeTreeMap* map, GeeTreeMapRange* range) {
5254 GeeTreeMapSubMap * self = NULL;
5257 GeeTreeMapRange* _tmp2_;
5258 GeeTreeMapRange* _tmp3_;
5259 g_return_val_if_fail (map != NULL, NULL);
5260 g_return_val_if_fail (range != NULL, NULL);
5261 self = (GeeTreeMapSubMap*) gee_abstract_bidir_sorted_map_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func);
5262 self->priv->k_type = k_type;
5263 self->priv->k_dup_func = k_dup_func;
5264 self->priv->k_destroy_func = k_destroy_func;
5265 self->priv->v_type = v_type;
5266 self->priv->v_dup_func = v_dup_func;
5267 self->priv->v_destroy_func = v_destroy_func;
5269 _tmp1_ = _g_object_ref0 (_tmp0_);
5270 _g_object_unref0 (self->priv->map);
5271 self->priv->map = _tmp1_;
5273 _tmp3_ = _gee_tree_map_range_ref0 (_tmp2_);
5274 _gee_tree_map_range_unref0 (self->priv->range);
5275 self->priv->range = _tmp3_;
5280 static GeeTreeMapSubMap* gee_tree_map_sub_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range) {
5281 return gee_tree_map_sub_map_construct (GEE_TREE_MAP_TYPE_SUB_MAP, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, range);
5285 static gboolean gee_tree_map_sub_map_real_has_key (GeeAbstractMap* base, gconstpointer key) {
5286 GeeTreeMapSubMap * self;
5287 gboolean result = FALSE;
5288 gboolean _tmp0_ = FALSE;
5289 GeeTreeMapRange* _tmp1_;
5290 gconstpointer _tmp2_;
5291 gboolean _tmp3_ = FALSE;
5293 self = (GeeTreeMapSubMap*) base;
5294 _tmp1_ = self->priv->range;
5296 _tmp3_ = gee_tree_map_range_in_range (_tmp1_, _tmp2_);
5299 gconstpointer _tmp5_;
5300 gboolean _tmp6_ = FALSE;
5301 _tmp4_ = self->priv->map;
5303 _tmp6_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp4_, _tmp5_);
5314 static gboolean gee_tree_map_sub_map_real_has (GeeAbstractMap* base, gconstpointer key, gconstpointer value) {
5315 GeeTreeMapSubMap * self;
5316 gboolean result = FALSE;
5317 gboolean _tmp0_ = FALSE;
5318 GeeTreeMapRange* _tmp1_;
5319 gconstpointer _tmp2_;
5320 gboolean _tmp3_ = FALSE;
5322 self = (GeeTreeMapSubMap*) base;
5323 _tmp1_ = self->priv->range;
5325 _tmp3_ = gee_tree_map_range_in_range (_tmp1_, _tmp2_);
5328 gconstpointer _tmp5_;
5329 gconstpointer _tmp6_;
5330 gboolean _tmp7_ = FALSE;
5331 _tmp4_ = self->priv->map;
5334 _tmp7_ = gee_abstract_map_has ((GeeAbstractMap*) _tmp4_, _tmp5_, _tmp6_);
5345 static gpointer gee_tree_map_sub_map_real_get (GeeAbstractMap* base, gconstpointer key) {
5346 GeeTreeMapSubMap * self;
5347 gpointer result = NULL;
5348 gpointer _tmp0_ = NULL;
5349 GeeTreeMapRange* _tmp1_;
5350 gconstpointer _tmp2_;
5351 gboolean _tmp3_ = FALSE;
5352 self = (GeeTreeMapSubMap*) base;
5353 _tmp1_ = self->priv->range;
5355 _tmp3_ = gee_tree_map_range_in_range (_tmp1_, _tmp2_);
5358 gconstpointer _tmp5_;
5359 gpointer _tmp6_ = NULL;
5360 _tmp4_ = self->priv->map;
5362 _tmp6_ = gee_abstract_map_get ((GeeAbstractMap*) _tmp4_, _tmp5_);
5363 ((_tmp0_ == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_tmp0_ = (self->priv->v_destroy_func (_tmp0_), NULL));
5366 ((_tmp0_ == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_tmp0_ = (self->priv->v_destroy_func (_tmp0_), NULL));
5374 static void gee_tree_map_sub_map_real_set (GeeAbstractMap* base, gconstpointer key, gconstpointer value) {
5375 GeeTreeMapSubMap * self;
5376 GeeTreeMapRange* _tmp0_;
5377 gconstpointer _tmp1_;
5378 gboolean _tmp2_ = FALSE;
5379 self = (GeeTreeMapSubMap*) base;
5380 _tmp0_ = self->priv->range;
5382 _tmp2_ = gee_tree_map_range_in_range (_tmp0_, _tmp1_);
5385 gconstpointer _tmp4_;
5386 gconstpointer _tmp5_;
5387 _tmp3_ = self->priv->map;
5390 gee_abstract_map_set ((GeeAbstractMap*) _tmp3_, _tmp4_, _tmp5_);
5395 static gboolean gee_tree_map_sub_map_real_unset (GeeAbstractMap* base, gconstpointer key, gpointer* value) {
5396 GeeTreeMapSubMap * self;
5397 gpointer _vala_value = NULL;
5398 gboolean result = FALSE;
5399 gboolean _tmp0_ = FALSE;
5400 GeeTreeMapRange* _tmp1_;
5401 gconstpointer _tmp2_;
5402 gboolean _tmp3_ = FALSE;
5404 self = (GeeTreeMapSubMap*) base;
5405 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
5407 _tmp1_ = self->priv->range;
5409 _tmp3_ = gee_tree_map_range_in_range (_tmp1_, _tmp2_);
5412 gconstpointer _tmp5_;
5413 gpointer _tmp6_ = NULL;
5414 gboolean _tmp7_ = FALSE;
5415 _tmp4_ = self->priv->map;
5417 _tmp7_ = gee_abstract_map_unset ((GeeAbstractMap*) _tmp4_, _tmp5_, &_tmp6_);
5418 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
5419 _vala_value = _tmp6_;
5427 *value = _vala_value;
5429 ((_vala_value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_vala_value = (self->priv->v_destroy_func (_vala_value), NULL));
5435 static void gee_tree_map_sub_map_real_clear (GeeAbstractMap* base) {
5436 GeeTreeMapSubMap * self;
5437 self = (GeeTreeMapSubMap*) base;
5439 GeeMapIterator* _tmp0_ = NULL;
5440 GeeMapIterator* iterator;
5441 _tmp0_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) self);
5448 GeeMapIterator* _tmp3_;
5449 gboolean _tmp4_ = FALSE;
5450 GeeMapIterator* _tmp5_;
5456 _tmp4_ = gee_map_iterator_next (_tmp3_);
5461 gee_map_iterator_unset (_tmp5_);
5464 _g_object_unref0 (iterator);
5469 static GeeMapIterator* gee_tree_map_sub_map_real_map_iterator (GeeAbstractMap* base) {
5470 GeeTreeMapSubMap * self;
5471 GeeMapIterator* result = NULL;
5473 GeeTreeMapRange* _tmp1_;
5474 GeeTreeMapSubMapIterator* _tmp2_;
5475 self = (GeeTreeMapSubMap*) base;
5476 _tmp0_ = self->priv->map;
5477 _tmp1_ = self->priv->range;
5478 _tmp2_ = gee_tree_map_sub_map_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp1_);
5479 result = (GeeMapIterator*) _tmp2_;
5484 static GeeBidirMapIterator* gee_tree_map_sub_map_real_bidir_map_iterator (GeeAbstractBidirSortedMap* base) {
5485 GeeTreeMapSubMap * self;
5486 GeeBidirMapIterator* result = NULL;
5488 GeeTreeMapRange* _tmp1_;
5489 GeeTreeMapSubMapIterator* _tmp2_;
5490 self = (GeeTreeMapSubMap*) base;
5491 _tmp0_ = self->priv->map;
5492 _tmp1_ = self->priv->range;
5493 _tmp2_ = gee_tree_map_sub_map_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp1_);
5494 result = (GeeBidirMapIterator*) _tmp2_;
5499 static GeeSortedMap* gee_tree_map_sub_map_real_head_map (GeeAbstractSortedMap* base, gconstpointer before) {
5500 GeeTreeMapSubMap * self;
5501 GeeSortedMap* result = NULL;
5503 GeeTreeMapRange* _tmp1_;
5504 gconstpointer _tmp2_;
5505 GeeTreeMapRange* _tmp3_ = NULL;
5506 GeeTreeMapRange* _tmp4_;
5507 GeeTreeMapSubMap* _tmp5_;
5508 GeeSortedMap* _tmp6_;
5509 self = (GeeTreeMapSubMap*) base;
5510 _tmp0_ = self->priv->map;
5511 _tmp1_ = self->priv->range;
5513 _tmp3_ = gee_tree_map_range_cut_tail (_tmp1_, _tmp2_);
5515 _tmp5_ = gee_tree_map_sub_map_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp4_);
5516 _tmp6_ = (GeeSortedMap*) _tmp5_;
5517 _gee_tree_map_range_unref0 (_tmp4_);
5523 static GeeSortedMap* gee_tree_map_sub_map_real_tail_map (GeeAbstractSortedMap* base, gconstpointer after) {
5524 GeeTreeMapSubMap * self;
5525 GeeSortedMap* result = NULL;
5527 GeeTreeMapRange* _tmp1_;
5528 gconstpointer _tmp2_;
5529 GeeTreeMapRange* _tmp3_ = NULL;
5530 GeeTreeMapRange* _tmp4_;
5531 GeeTreeMapSubMap* _tmp5_;
5532 GeeSortedMap* _tmp6_;
5533 self = (GeeTreeMapSubMap*) base;
5534 _tmp0_ = self->priv->map;
5535 _tmp1_ = self->priv->range;
5537 _tmp3_ = gee_tree_map_range_cut_head (_tmp1_, _tmp2_);
5539 _tmp5_ = gee_tree_map_sub_map_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp4_);
5540 _tmp6_ = (GeeSortedMap*) _tmp5_;
5541 _gee_tree_map_range_unref0 (_tmp4_);
5547 static GeeSortedMap* gee_tree_map_sub_map_real_sub_map (GeeAbstractSortedMap* base, gconstpointer after, gconstpointer before) {
5548 GeeTreeMapSubMap * self;
5549 GeeSortedMap* result = NULL;
5551 GeeTreeMapRange* _tmp1_;
5552 gconstpointer _tmp2_;
5553 gconstpointer _tmp3_;
5554 GeeTreeMapRange* _tmp4_ = NULL;
5555 GeeTreeMapRange* _tmp5_;
5556 GeeTreeMapSubMap* _tmp6_;
5557 GeeSortedMap* _tmp7_;
5558 self = (GeeTreeMapSubMap*) base;
5559 _tmp0_ = self->priv->map;
5560 _tmp1_ = self->priv->range;
5563 _tmp4_ = gee_tree_map_range_cut (_tmp1_, _tmp2_, _tmp3_);
5565 _tmp6_ = gee_tree_map_sub_map_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp5_);
5566 _tmp7_ = (GeeSortedMap*) _tmp6_;
5567 _gee_tree_map_range_unref0 (_tmp5_);
5573 static gint gee_tree_map_sub_map_real_get_size (GeeAbstractMap* base) {
5575 GeeTreeMapSubMap* self;
5582 self = (GeeTreeMapSubMap*) base;
5583 _tmp0_ = gee_abstract_map_get_keys ((GeeMap*) self);
5586 _tmp3_ = gee_collection_get_size ((GeeCollection*) _tmp2_);
5589 _g_object_unref0 (_tmp2_);
5595 static gboolean gee_tree_map_sub_map_get_is_empty (GeeTreeMapSubMap* self) {
5603 g_return_val_if_fail (self != NULL, FALSE);
5604 _tmp0_ = gee_abstract_map_get_keys ((GeeMap*) self);
5607 _tmp3_ = gee_collection_get_is_empty ((GeeCollection*) _tmp2_);
5610 _g_object_unref0 (_tmp2_);
5616 static GeeSet* gee_tree_map_sub_map_real_get_keys (GeeAbstractMap* base) {
5618 GeeTreeMapSubMap* self;
5619 GeeSortedSet* _tmp0_;
5620 GeeSortedSet* _tmp1_;
5622 GeeSortedSet* _tmp2_;
5623 self = (GeeTreeMapSubMap*) base;
5624 _tmp0_ = self->priv->_keys;
5625 _tmp1_ = _g_object_ref0 (_tmp0_);
5627 _tmp2_ = self->priv->_keys;
5628 if (_tmp2_ == NULL) {
5630 GeeTreeMapRange* _tmp4_;
5631 GeeTreeMapSubKeySet* _tmp5_;
5632 GeeSortedSet* _tmp6_;
5633 GeeSortedSet* _tmp7_;
5634 _tmp3_ = self->priv->map;
5635 _tmp4_ = self->priv->range;
5636 _tmp5_ = gee_tree_map_sub_key_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp3_, _tmp4_);
5637 _g_object_unref0 (keys);
5638 keys = (GeeSortedSet*) _tmp5_;
5640 self->priv->_keys = _tmp6_;
5642 g_object_add_weak_pointer ((GObject*) _tmp7_, &self->priv->_keys);
5644 result = (GeeSet*) keys;
5649 static GeeCollection* gee_tree_map_sub_map_real_get_values (GeeAbstractMap* base) {
5650 GeeCollection* result;
5651 GeeTreeMapSubMap* self;
5652 GeeCollection* _tmp0_;
5653 GeeCollection* _tmp1_;
5654 GeeCollection* values;
5655 GeeCollection* _tmp2_;
5656 self = (GeeTreeMapSubMap*) base;
5657 _tmp0_ = self->priv->_values;
5658 _tmp1_ = _g_object_ref0 (_tmp0_);
5660 _tmp2_ = self->priv->_values;
5661 if (_tmp2_ == NULL) {
5663 GeeTreeMapRange* _tmp4_;
5664 GeeTreeMapSubValueCollection* _tmp5_;
5665 GeeCollection* _tmp6_;
5666 GeeCollection* _tmp7_;
5667 _tmp3_ = self->priv->map;
5668 _tmp4_ = self->priv->range;
5669 _tmp5_ = gee_tree_map_sub_value_collection_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp3_, _tmp4_);
5670 _g_object_unref0 (values);
5671 values = (GeeCollection*) _tmp5_;
5673 self->priv->_values = _tmp6_;
5675 g_object_add_weak_pointer ((GObject*) _tmp7_, &self->priv->_values);
5682 static GeeSet* gee_tree_map_sub_map_real_get_entries (GeeAbstractMap* base) {
5684 GeeTreeMapSubMap* self;
5685 GeeSortedSet* _tmp0_;
5686 GeeSortedSet* _tmp1_;
5687 GeeSortedSet* entries;
5688 GeeSortedSet* _tmp2_;
5689 self = (GeeTreeMapSubMap*) base;
5690 _tmp0_ = self->priv->_entries;
5691 _tmp1_ = _g_object_ref0 (_tmp0_);
5693 _tmp2_ = self->priv->_entries;
5694 if (_tmp2_ == NULL) {
5696 GeeTreeMapRange* _tmp4_;
5697 GeeTreeMapSubEntrySet* _tmp5_;
5698 GeeSortedSet* _tmp6_;
5699 GeeSortedSet* _tmp7_;
5700 _tmp3_ = self->priv->map;
5701 _tmp4_ = self->priv->range;
5702 _tmp5_ = gee_tree_map_sub_entry_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp3_, _tmp4_);
5703 _g_object_unref0 (entries);
5704 entries = (GeeSortedSet*) _tmp5_;
5706 self->priv->_entries = _tmp6_;
5708 g_object_add_weak_pointer ((GObject*) _tmp7_, &self->priv->_entries);
5710 result = (GeeSet*) entries;
5715 static gboolean gee_tree_map_sub_map_real_get_read_only (GeeAbstractMap* base) {
5717 GeeTreeMapSubMap* self;
5718 self = (GeeTreeMapSubMap*) base;
5724 static GeeSortedSet* gee_tree_map_sub_map_real_get_ascending_keys (GeeAbstractSortedMap* base) {
5725 GeeSortedSet* result;
5726 GeeTreeMapSubMap* self;
5727 GeeSortedSet* _tmp0_;
5728 GeeSortedSet* _tmp1_;
5730 GeeSortedSet* _tmp2_;
5731 self = (GeeTreeMapSubMap*) base;
5732 _tmp0_ = self->priv->_keys;
5733 _tmp1_ = _g_object_ref0 (_tmp0_);
5735 _tmp2_ = self->priv->_keys;
5736 if (_tmp2_ == NULL) {
5738 GeeTreeMapRange* _tmp4_;
5739 GeeTreeMapSubKeySet* _tmp5_;
5740 GeeSortedSet* _tmp6_;
5741 GeeSortedSet* _tmp7_;
5742 _tmp3_ = self->priv->map;
5743 _tmp4_ = self->priv->range;
5744 _tmp5_ = gee_tree_map_sub_key_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp3_, _tmp4_);
5745 _g_object_unref0 (keys);
5746 keys = (GeeSortedSet*) _tmp5_;
5748 self->priv->_keys = _tmp6_;
5750 g_object_add_weak_pointer ((GObject*) _tmp7_, &self->priv->_keys);
5757 static GeeSortedSet* gee_tree_map_sub_map_real_get_ascending_entries (GeeAbstractSortedMap* base) {
5758 GeeSortedSet* result;
5759 GeeTreeMapSubMap* self;
5760 GeeSortedSet* _tmp0_;
5761 GeeSortedSet* _tmp1_;
5762 GeeSortedSet* entries;
5763 GeeSortedSet* _tmp2_;
5764 GeeSortedSet* _tmp8_;
5765 GeeSortedSet* _tmp9_;
5766 self = (GeeTreeMapSubMap*) base;
5767 _tmp0_ = self->priv->_entries;
5768 _tmp1_ = _g_object_ref0 (_tmp0_);
5770 _tmp2_ = self->priv->_entries;
5771 if (_tmp2_ == NULL) {
5773 GeeTreeMapRange* _tmp4_;
5774 GeeTreeMapSubEntrySet* _tmp5_;
5775 GeeSortedSet* _tmp6_;
5776 GeeSortedSet* _tmp7_;
5777 _tmp3_ = self->priv->map;
5778 _tmp4_ = self->priv->range;
5779 _tmp5_ = gee_tree_map_sub_entry_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp3_, _tmp4_);
5780 _g_object_unref0 (entries);
5781 entries = (GeeSortedSet*) _tmp5_;
5783 self->priv->_entries = _tmp6_;
5785 g_object_add_weak_pointer ((GObject*) _tmp7_, &self->priv->_entries);
5787 _tmp8_ = self->priv->_entries;
5788 _tmp9_ = _g_object_ref0 (_tmp8_);
5790 _g_object_unref0 (entries);
5795 static void gee_tree_map_sub_map_class_init (GeeTreeMapSubMapClass * klass) {
5796 gee_tree_map_sub_map_parent_class = g_type_class_peek_parent (klass);
5797 g_type_class_add_private (klass, sizeof (GeeTreeMapSubMapPrivate));
5798 GEE_ABSTRACT_MAP_CLASS (klass)->has_key = gee_tree_map_sub_map_real_has_key;
5799 GEE_ABSTRACT_MAP_CLASS (klass)->has = gee_tree_map_sub_map_real_has;
5800 GEE_ABSTRACT_MAP_CLASS (klass)->get = gee_tree_map_sub_map_real_get;
5801 GEE_ABSTRACT_MAP_CLASS (klass)->set = gee_tree_map_sub_map_real_set;
5802 GEE_ABSTRACT_MAP_CLASS (klass)->unset = gee_tree_map_sub_map_real_unset;
5803 GEE_ABSTRACT_MAP_CLASS (klass)->clear = gee_tree_map_sub_map_real_clear;
5804 GEE_ABSTRACT_MAP_CLASS (klass)->map_iterator = gee_tree_map_sub_map_real_map_iterator;
5805 GEE_ABSTRACT_BIDIR_SORTED_MAP_CLASS (klass)->bidir_map_iterator = gee_tree_map_sub_map_real_bidir_map_iterator;
5806 GEE_ABSTRACT_SORTED_MAP_CLASS (klass)->head_map = gee_tree_map_sub_map_real_head_map;
5807 GEE_ABSTRACT_SORTED_MAP_CLASS (klass)->tail_map = gee_tree_map_sub_map_real_tail_map;
5808 GEE_ABSTRACT_SORTED_MAP_CLASS (klass)->sub_map = gee_tree_map_sub_map_real_sub_map;
5809 GEE_ABSTRACT_MAP_CLASS (klass)->get_size = gee_tree_map_sub_map_real_get_size;
5810 GEE_ABSTRACT_MAP_CLASS (klass)->get_keys = gee_tree_map_sub_map_real_get_keys;
5811 GEE_ABSTRACT_MAP_CLASS (klass)->get_values = gee_tree_map_sub_map_real_get_values;
5812 GEE_ABSTRACT_MAP_CLASS (klass)->get_entries = gee_tree_map_sub_map_real_get_entries;
5813 GEE_ABSTRACT_MAP_CLASS (klass)->get_read_only = gee_tree_map_sub_map_real_get_read_only;
5814 GEE_ABSTRACT_SORTED_MAP_CLASS (klass)->get_ascending_keys = gee_tree_map_sub_map_real_get_ascending_keys;
5815 GEE_ABSTRACT_SORTED_MAP_CLASS (klass)->get_ascending_entries = gee_tree_map_sub_map_real_get_ascending_entries;
5816 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_sub_map_get_property;
5817 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_sub_map_set_property;
5818 G_OBJECT_CLASS (klass)->finalize = gee_tree_map_sub_map_finalize;
5819 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
5820 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
5821 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
5822 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
5823 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
5824 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
5825 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
5826 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_IS_EMPTY, g_param_spec_boolean ("is-empty", "is-empty", "is-empty", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
5827 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_KEYS, g_param_spec_object ("keys", "keys", "keys", GEE_TYPE_SET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
5828 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_VALUES, g_param_spec_object ("values", "values", "values", GEE_TYPE_COLLECTION, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
5829 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_ENTRIES, g_param_spec_object ("entries", "entries", "entries", GEE_TYPE_SET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
5830 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
5831 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_ASCENDING_KEYS, g_param_spec_object ("ascending-keys", "ascending-keys", "ascending-keys", GEE_TYPE_SORTED_SET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
5832 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_ASCENDING_ENTRIES, g_param_spec_object ("ascending-entries", "ascending-entries", "ascending-entries", GEE_TYPE_SORTED_SET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
5836 static void gee_tree_map_sub_map_instance_init (GeeTreeMapSubMap * self) {
5837 self->priv = GEE_TREE_MAP_SUB_MAP_GET_PRIVATE (self);
5841 static void gee_tree_map_sub_map_finalize (GObject* obj) {
5842 GeeTreeMapSubMap * self;
5843 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TREE_MAP_TYPE_SUB_MAP, GeeTreeMapSubMap);
5844 _g_object_unref0 (self->priv->map);
5845 _gee_tree_map_range_unref0 (self->priv->range);
5846 G_OBJECT_CLASS (gee_tree_map_sub_map_parent_class)->finalize (obj);
5850 static GType gee_tree_map_sub_map_get_type (void) {
5851 static volatile gsize gee_tree_map_sub_map_type_id__volatile = 0;
5852 if (g_once_init_enter (&gee_tree_map_sub_map_type_id__volatile)) {
5853 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 };
5854 GType gee_tree_map_sub_map_type_id;
5855 gee_tree_map_sub_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, "GeeTreeMapSubMap", &g_define_type_info, 0);
5856 g_once_init_leave (&gee_tree_map_sub_map_type_id__volatile, gee_tree_map_sub_map_type_id);
5858 return gee_tree_map_sub_map_type_id__volatile;
5862 static void _vala_gee_tree_map_sub_map_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
5863 GeeTreeMapSubMap * self;
5864 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_MAP, GeeTreeMapSubMap);
5865 switch (property_id) {
5866 case GEE_TREE_MAP_SUB_MAP_SIZE:
5867 g_value_set_int (value, gee_abstract_map_get_size ((GeeAbstractMap*) self));
5869 case GEE_TREE_MAP_SUB_MAP_IS_EMPTY:
5870 g_value_set_boolean (value, gee_tree_map_sub_map_get_is_empty (self));
5872 case GEE_TREE_MAP_SUB_MAP_KEYS:
5873 g_value_take_object (value, gee_abstract_map_get_keys ((GeeAbstractMap*) self));
5875 case GEE_TREE_MAP_SUB_MAP_VALUES:
5876 g_value_take_object (value, gee_abstract_map_get_values ((GeeAbstractMap*) self));
5878 case GEE_TREE_MAP_SUB_MAP_ENTRIES:
5879 g_value_take_object (value, gee_abstract_map_get_entries ((GeeAbstractMap*) self));
5881 case GEE_TREE_MAP_SUB_MAP_READ_ONLY:
5882 g_value_set_boolean (value, gee_abstract_map_get_read_only ((GeeAbstractMap*) self));
5884 case GEE_TREE_MAP_SUB_MAP_ASCENDING_KEYS:
5885 g_value_take_object (value, gee_abstract_sorted_map_get_ascending_keys ((GeeAbstractSortedMap*) self));
5887 case GEE_TREE_MAP_SUB_MAP_ASCENDING_ENTRIES:
5888 g_value_take_object (value, gee_abstract_sorted_map_get_ascending_entries ((GeeAbstractSortedMap*) self));
5891 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
5897 static void _vala_gee_tree_map_sub_map_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
5898 GeeTreeMapSubMap * self;
5899 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_MAP, GeeTreeMapSubMap);
5900 switch (property_id) {
5901 case GEE_TREE_MAP_SUB_MAP_K_TYPE:
5902 self->priv->k_type = g_value_get_gtype (value);
5904 case GEE_TREE_MAP_SUB_MAP_K_DUP_FUNC:
5905 self->priv->k_dup_func = g_value_get_pointer (value);
5907 case GEE_TREE_MAP_SUB_MAP_K_DESTROY_FUNC:
5908 self->priv->k_destroy_func = g_value_get_pointer (value);
5910 case GEE_TREE_MAP_SUB_MAP_V_TYPE:
5911 self->priv->v_type = g_value_get_gtype (value);
5913 case GEE_TREE_MAP_SUB_MAP_V_DUP_FUNC:
5914 self->priv->v_dup_func = g_value_get_pointer (value);
5916 case GEE_TREE_MAP_SUB_MAP_V_DESTROY_FUNC:
5917 self->priv->v_destroy_func = g_value_get_pointer (value);
5920 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
5926 static GeeTreeMapKeySet* gee_tree_map_key_set_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, GeeTreeMap* map) {
5927 GeeTreeMapKeySet * self = NULL;
5930 g_return_val_if_fail (map != NULL, NULL);
5931 self = (GeeTreeMapKeySet*) gee_abstract_bidir_sorted_set_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func);
5932 self->priv->k_type = k_type;
5933 self->priv->k_dup_func = k_dup_func;
5934 self->priv->k_destroy_func = k_destroy_func;
5935 self->priv->v_type = v_type;
5936 self->priv->v_dup_func = v_dup_func;
5937 self->priv->v_destroy_func = v_destroy_func;
5939 _tmp1_ = _g_object_ref0 (_tmp0_);
5940 _g_object_unref0 (self->priv->_map);
5941 self->priv->_map = _tmp1_;
5946 static GeeTreeMapKeySet* gee_tree_map_key_set_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map) {
5947 return gee_tree_map_key_set_construct (GEE_TREE_MAP_TYPE_KEY_SET, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map);
5951 static GeeIterator* gee_tree_map_key_set_real_iterator (GeeAbstractCollection* base) {
5952 GeeTreeMapKeySet * self;
5953 GeeIterator* result = NULL;
5955 GeeTreeMapKeyIterator* _tmp1_;
5956 self = (GeeTreeMapKeySet*) base;
5957 _tmp0_ = self->priv->_map;
5958 _tmp1_ = gee_tree_map_key_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_);
5959 result = (GeeIterator*) _tmp1_;
5964 static gboolean gee_tree_map_key_set_real_add (GeeAbstractCollection* base, gconstpointer key) {
5965 GeeTreeMapKeySet * self;
5966 gboolean result = FALSE;
5967 self = (GeeTreeMapKeySet*) base;
5968 g_assert_not_reached ();
5973 static void gee_tree_map_key_set_real_clear (GeeAbstractCollection* base) {
5974 GeeTreeMapKeySet * self;
5975 self = (GeeTreeMapKeySet*) base;
5976 g_assert_not_reached ();
5980 static gboolean gee_tree_map_key_set_real_remove (GeeAbstractCollection* base, gconstpointer key) {
5981 GeeTreeMapKeySet * self;
5982 gboolean result = FALSE;
5983 self = (GeeTreeMapKeySet*) base;
5984 g_assert_not_reached ();
5989 static gboolean gee_tree_map_key_set_real_contains (GeeAbstractCollection* base, gconstpointer key) {
5990 GeeTreeMapKeySet * self;
5991 gboolean result = FALSE;
5993 gconstpointer _tmp1_;
5994 gboolean _tmp2_ = FALSE;
5995 self = (GeeTreeMapKeySet*) base;
5996 _tmp0_ = self->priv->_map;
5998 _tmp2_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp0_, _tmp1_);
6004 static gpointer gee_tree_map_key_set_real_first (GeeAbstractSortedSet* base) {
6005 GeeTreeMapKeySet * self;
6006 gpointer result = NULL;
6008 GeeTreeMapNode* _tmp1_;
6010 GeeTreeMapNode* _tmp3_;
6011 gconstpointer _tmp4_;
6013 self = (GeeTreeMapKeySet*) base;
6014 _tmp0_ = self->priv->_map;
6015 _tmp1_ = _tmp0_->priv->first;
6016 _vala_assert (_tmp1_ != NULL, "_map.first != null");
6017 _tmp2_ = self->priv->_map;
6018 _tmp3_ = _tmp2_->priv->first;
6019 _tmp4_ = _tmp3_->key;
6020 _tmp5_ = ((_tmp4_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_);
6026 static gpointer gee_tree_map_key_set_real_last (GeeAbstractSortedSet* base) {
6027 GeeTreeMapKeySet * self;
6028 gpointer result = NULL;
6030 GeeTreeMapNode* _tmp1_;
6032 GeeTreeMapNode* _tmp3_;
6033 gconstpointer _tmp4_;
6035 self = (GeeTreeMapKeySet*) base;
6036 _tmp0_ = self->priv->_map;
6037 _tmp1_ = _tmp0_->priv->last;
6038 _vala_assert (_tmp1_ != NULL, "_map.last != null");
6039 _tmp2_ = self->priv->_map;
6040 _tmp3_ = _tmp2_->priv->last;
6041 _tmp4_ = _tmp3_->key;
6042 _tmp5_ = ((_tmp4_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_);
6048 static GeeBidirIterator* gee_tree_map_key_set_real_bidir_iterator (GeeAbstractBidirSortedSet* base) {
6049 GeeTreeMapKeySet * self;
6050 GeeBidirIterator* result = NULL;
6052 GeeTreeMapKeyIterator* _tmp1_;
6053 self = (GeeTreeMapKeySet*) base;
6054 _tmp0_ = self->priv->_map;
6055 _tmp1_ = gee_tree_map_key_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_);
6056 result = (GeeBidirIterator*) _tmp1_;
6061 static GeeSortedSet* gee_tree_map_key_set_real_head_set (GeeAbstractSortedSet* base, gconstpointer before) {
6062 GeeTreeMapKeySet * self;
6063 GeeSortedSet* result = NULL;
6066 gconstpointer _tmp2_;
6067 GeeTreeMapRange* _tmp3_;
6068 GeeTreeMapRange* _tmp4_;
6069 GeeTreeMapSubKeySet* _tmp5_;
6070 GeeSortedSet* _tmp6_;
6071 self = (GeeTreeMapKeySet*) base;
6072 _tmp0_ = self->priv->_map;
6073 _tmp1_ = self->priv->_map;
6075 _tmp3_ = gee_tree_map_range_new_head (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp1_, _tmp2_);
6077 _tmp5_ = gee_tree_map_sub_key_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp4_);
6078 _tmp6_ = (GeeSortedSet*) _tmp5_;
6079 _gee_tree_map_range_unref0 (_tmp4_);
6085 static GeeSortedSet* gee_tree_map_key_set_real_tail_set (GeeAbstractSortedSet* base, gconstpointer after) {
6086 GeeTreeMapKeySet * self;
6087 GeeSortedSet* result = NULL;
6090 gconstpointer _tmp2_;
6091 GeeTreeMapRange* _tmp3_;
6092 GeeTreeMapRange* _tmp4_;
6093 GeeTreeMapSubKeySet* _tmp5_;
6094 GeeSortedSet* _tmp6_;
6095 self = (GeeTreeMapKeySet*) base;
6096 _tmp0_ = self->priv->_map;
6097 _tmp1_ = self->priv->_map;
6099 _tmp3_ = gee_tree_map_range_new_tail (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp1_, _tmp2_);
6101 _tmp5_ = gee_tree_map_sub_key_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp4_);
6102 _tmp6_ = (GeeSortedSet*) _tmp5_;
6103 _gee_tree_map_range_unref0 (_tmp4_);
6109 static GeeSortedSet* gee_tree_map_key_set_real_sub_set (GeeAbstractSortedSet* base, gconstpointer after, gconstpointer before) {
6110 GeeTreeMapKeySet * self;
6111 GeeSortedSet* result = NULL;
6114 gconstpointer _tmp2_;
6115 gconstpointer _tmp3_;
6116 GeeTreeMapRange* _tmp4_;
6117 GeeTreeMapRange* _tmp5_;
6118 GeeTreeMapSubKeySet* _tmp6_;
6119 GeeSortedSet* _tmp7_;
6120 self = (GeeTreeMapKeySet*) base;
6121 _tmp0_ = self->priv->_map;
6122 _tmp1_ = self->priv->_map;
6125 _tmp4_ = gee_tree_map_range_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp1_, _tmp2_, _tmp3_);
6127 _tmp6_ = gee_tree_map_sub_key_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp5_);
6128 _tmp7_ = (GeeSortedSet*) _tmp6_;
6129 _gee_tree_map_range_unref0 (_tmp5_);
6135 static GeeIterator* gee_tree_map_key_set_real_iterator_at (GeeAbstractSortedSet* base, gconstpointer item) {
6136 GeeTreeMapKeySet * self;
6137 GeeIterator* result = NULL;
6139 gconstpointer _tmp1_;
6140 GeeTreeMapNode* _tmp2_ = NULL;
6141 GeeTreeMapNode* node;
6142 GeeTreeMapNode* _tmp3_;
6144 GeeTreeMapNode* _tmp5_;
6145 GeeTreeMapKeyIterator* _tmp6_;
6146 self = (GeeTreeMapKeySet*) base;
6147 _tmp0_ = self->priv->_map;
6149 _tmp2_ = gee_tree_map_find_node (_tmp0_, _tmp1_);
6152 if (_tmp3_ == NULL) {
6156 _tmp4_ = self->priv->_map;
6158 _tmp6_ = gee_tree_map_key_iterator_new_pointing (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp4_, _tmp5_);
6159 result = (GeeIterator*) _tmp6_;
6164 static gpointer gee_tree_map_key_set_real_lower (GeeAbstractSortedSet* base, gconstpointer item) {
6165 GeeTreeMapKeySet * self;
6166 gpointer result = NULL;
6169 gconstpointer _tmp2_;
6170 GeeTreeMapNode* _tmp3_ = NULL;
6171 gpointer _tmp4_ = NULL;
6172 self = (GeeTreeMapKeySet*) base;
6173 _tmp0_ = self->priv->_map;
6174 _tmp1_ = self->priv->_map;
6176 _tmp3_ = gee_tree_map_find_lower (_tmp1_, _tmp2_);
6177 _tmp4_ = gee_tree_map_lift_null_key (_tmp0_, _tmp3_);
6183 static gpointer gee_tree_map_key_set_real_higher (GeeAbstractSortedSet* base, gconstpointer item) {
6184 GeeTreeMapKeySet * self;
6185 gpointer result = NULL;
6188 gconstpointer _tmp2_;
6189 GeeTreeMapNode* _tmp3_ = NULL;
6190 gpointer _tmp4_ = NULL;
6191 self = (GeeTreeMapKeySet*) base;
6192 _tmp0_ = self->priv->_map;
6193 _tmp1_ = self->priv->_map;
6195 _tmp3_ = gee_tree_map_find_higher (_tmp1_, _tmp2_);
6196 _tmp4_ = gee_tree_map_lift_null_key (_tmp0_, _tmp3_);
6202 static gpointer gee_tree_map_key_set_real_floor (GeeAbstractSortedSet* base, gconstpointer item) {
6203 GeeTreeMapKeySet * self;
6204 gpointer result = NULL;
6207 gconstpointer _tmp2_;
6208 GeeTreeMapNode* _tmp3_ = NULL;
6209 gpointer _tmp4_ = NULL;
6210 self = (GeeTreeMapKeySet*) base;
6211 _tmp0_ = self->priv->_map;
6212 _tmp1_ = self->priv->_map;
6214 _tmp3_ = gee_tree_map_find_floor (_tmp1_, _tmp2_);
6215 _tmp4_ = gee_tree_map_lift_null_key (_tmp0_, _tmp3_);
6221 static gpointer gee_tree_map_key_set_real_ceil (GeeAbstractSortedSet* base, gconstpointer item) {
6222 GeeTreeMapKeySet * self;
6223 gpointer result = NULL;
6226 gconstpointer _tmp2_;
6227 GeeTreeMapNode* _tmp3_ = NULL;
6228 gpointer _tmp4_ = NULL;
6229 self = (GeeTreeMapKeySet*) base;
6230 _tmp0_ = self->priv->_map;
6231 _tmp1_ = self->priv->_map;
6233 _tmp3_ = gee_tree_map_find_ceil (_tmp1_, _tmp2_);
6234 _tmp4_ = gee_tree_map_lift_null_key (_tmp0_, _tmp3_);
6240 static gint gee_tree_map_key_set_real_get_size (GeeAbstractCollection* base) {
6242 GeeTreeMapKeySet* self;
6246 self = (GeeTreeMapKeySet*) base;
6247 _tmp0_ = self->priv->_map;
6248 _tmp1_ = gee_abstract_map_get_size ((GeeMap*) _tmp0_);
6255 static gboolean gee_tree_map_key_set_real_get_read_only (GeeAbstractCollection* base) {
6257 GeeTreeMapKeySet* self;
6258 self = (GeeTreeMapKeySet*) base;
6264 static void gee_tree_map_key_set_class_init (GeeTreeMapKeySetClass * klass) {
6265 gee_tree_map_key_set_parent_class = g_type_class_peek_parent (klass);
6266 g_type_class_add_private (klass, sizeof (GeeTreeMapKeySetPrivate));
6267 GEE_ABSTRACT_COLLECTION_CLASS (klass)->iterator = gee_tree_map_key_set_real_iterator;
6268 GEE_ABSTRACT_COLLECTION_CLASS (klass)->add = gee_tree_map_key_set_real_add;
6269 GEE_ABSTRACT_COLLECTION_CLASS (klass)->clear = gee_tree_map_key_set_real_clear;
6270 GEE_ABSTRACT_COLLECTION_CLASS (klass)->remove = gee_tree_map_key_set_real_remove;
6271 GEE_ABSTRACT_COLLECTION_CLASS (klass)->contains = gee_tree_map_key_set_real_contains;
6272 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->first = gee_tree_map_key_set_real_first;
6273 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->last = gee_tree_map_key_set_real_last;
6274 GEE_ABSTRACT_BIDIR_SORTED_SET_CLASS (klass)->bidir_iterator = gee_tree_map_key_set_real_bidir_iterator;
6275 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->head_set = gee_tree_map_key_set_real_head_set;
6276 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->tail_set = gee_tree_map_key_set_real_tail_set;
6277 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->sub_set = gee_tree_map_key_set_real_sub_set;
6278 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->iterator_at = gee_tree_map_key_set_real_iterator_at;
6279 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->lower = gee_tree_map_key_set_real_lower;
6280 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->higher = gee_tree_map_key_set_real_higher;
6281 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->floor = gee_tree_map_key_set_real_floor;
6282 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->ceil = gee_tree_map_key_set_real_ceil;
6283 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_size = gee_tree_map_key_set_real_get_size;
6284 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_read_only = gee_tree_map_key_set_real_get_read_only;
6285 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_key_set_get_property;
6286 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_key_set_set_property;
6287 G_OBJECT_CLASS (klass)->finalize = gee_tree_map_key_set_finalize;
6288 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_SET_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
6289 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_SET_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
6290 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_SET_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
6291 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_SET_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
6292 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_SET_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
6293 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_SET_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
6294 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_SET_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
6295 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_SET_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
6299 static void gee_tree_map_key_set_instance_init (GeeTreeMapKeySet * self) {
6300 self->priv = GEE_TREE_MAP_KEY_SET_GET_PRIVATE (self);
6304 static void gee_tree_map_key_set_finalize (GObject* obj) {
6305 GeeTreeMapKeySet * self;
6306 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TREE_MAP_TYPE_KEY_SET, GeeTreeMapKeySet);
6307 _g_object_unref0 (self->priv->_map);
6308 G_OBJECT_CLASS (gee_tree_map_key_set_parent_class)->finalize (obj);
6312 static GType gee_tree_map_key_set_get_type (void) {
6313 static volatile gsize gee_tree_map_key_set_type_id__volatile = 0;
6314 if (g_once_init_enter (&gee_tree_map_key_set_type_id__volatile)) {
6315 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 };
6316 GType gee_tree_map_key_set_type_id;
6317 gee_tree_map_key_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeMapKeySet", &g_define_type_info, 0);
6318 g_once_init_leave (&gee_tree_map_key_set_type_id__volatile, gee_tree_map_key_set_type_id);
6320 return gee_tree_map_key_set_type_id__volatile;
6324 static void _vala_gee_tree_map_key_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
6325 GeeTreeMapKeySet * self;
6326 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_KEY_SET, GeeTreeMapKeySet);
6327 switch (property_id) {
6328 case GEE_TREE_MAP_KEY_SET_SIZE:
6329 g_value_set_int (value, gee_abstract_collection_get_size ((GeeAbstractCollection*) self));
6331 case GEE_TREE_MAP_KEY_SET_READ_ONLY:
6332 g_value_set_boolean (value, gee_abstract_collection_get_read_only ((GeeAbstractCollection*) self));
6335 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
6341 static void _vala_gee_tree_map_key_set_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
6342 GeeTreeMapKeySet * self;
6343 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_KEY_SET, GeeTreeMapKeySet);
6344 switch (property_id) {
6345 case GEE_TREE_MAP_KEY_SET_K_TYPE:
6346 self->priv->k_type = g_value_get_gtype (value);
6348 case GEE_TREE_MAP_KEY_SET_K_DUP_FUNC:
6349 self->priv->k_dup_func = g_value_get_pointer (value);
6351 case GEE_TREE_MAP_KEY_SET_K_DESTROY_FUNC:
6352 self->priv->k_destroy_func = g_value_get_pointer (value);
6354 case GEE_TREE_MAP_KEY_SET_V_TYPE:
6355 self->priv->v_type = g_value_get_gtype (value);
6357 case GEE_TREE_MAP_KEY_SET_V_DUP_FUNC:
6358 self->priv->v_dup_func = g_value_get_pointer (value);
6360 case GEE_TREE_MAP_KEY_SET_V_DESTROY_FUNC:
6361 self->priv->v_destroy_func = g_value_get_pointer (value);
6364 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
6370 static GeeTreeMapSubKeySet* gee_tree_map_sub_key_set_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, GeeTreeMap* map, GeeTreeMapRange* range) {
6371 GeeTreeMapSubKeySet * self = NULL;
6373 GeeTreeMapRange* _tmp1_;
6374 g_return_val_if_fail (map != NULL, NULL);
6375 g_return_val_if_fail (range != NULL, NULL);
6376 self = (GeeTreeMapSubKeySet*) gee_abstract_bidir_sorted_set_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func);
6377 self->priv->k_type = k_type;
6378 self->priv->k_dup_func = k_dup_func;
6379 self->priv->k_destroy_func = k_destroy_func;
6380 self->priv->v_type = v_type;
6381 self->priv->v_dup_func = v_dup_func;
6382 self->priv->v_destroy_func = v_destroy_func;
6384 gee_tree_map_sub_key_set_set_map (self, _tmp0_);
6386 gee_tree_map_sub_key_set_set_range (self, _tmp1_);
6391 static GeeTreeMapSubKeySet* gee_tree_map_sub_key_set_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range) {
6392 return gee_tree_map_sub_key_set_construct (GEE_TREE_MAP_TYPE_SUB_KEY_SET, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, range);
6396 static GeeIterator* gee_tree_map_sub_key_set_real_iterator (GeeAbstractCollection* base) {
6397 GeeTreeMapSubKeySet * self;
6398 GeeIterator* result = NULL;
6400 GeeTreeMapRange* _tmp1_;
6401 GeeTreeMapSubKeyIterator* _tmp2_;
6402 self = (GeeTreeMapSubKeySet*) base;
6403 _tmp0_ = self->priv->_map;
6404 _tmp1_ = self->priv->_range;
6405 _tmp2_ = gee_tree_map_sub_key_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp1_);
6406 result = (GeeIterator*) _tmp2_;
6411 static gboolean gee_tree_map_sub_key_set_real_add (GeeAbstractCollection* base, gconstpointer key) {
6412 GeeTreeMapSubKeySet * self;
6413 gboolean result = FALSE;
6414 self = (GeeTreeMapSubKeySet*) base;
6415 g_assert_not_reached ();
6420 static void gee_tree_map_sub_key_set_real_clear (GeeAbstractCollection* base) {
6421 GeeTreeMapSubKeySet * self;
6422 self = (GeeTreeMapSubKeySet*) base;
6423 g_assert_not_reached ();
6427 static gboolean gee_tree_map_sub_key_set_real_remove (GeeAbstractCollection* base, gconstpointer key) {
6428 GeeTreeMapSubKeySet * self;
6429 gboolean result = FALSE;
6430 self = (GeeTreeMapSubKeySet*) base;
6431 g_assert_not_reached ();
6436 static gboolean gee_tree_map_sub_key_set_real_contains (GeeAbstractCollection* base, gconstpointer key) {
6437 GeeTreeMapSubKeySet * self;
6438 gboolean result = FALSE;
6439 gboolean _tmp0_ = FALSE;
6440 GeeTreeMapRange* _tmp1_;
6441 gconstpointer _tmp2_;
6442 gboolean _tmp3_ = FALSE;
6444 self = (GeeTreeMapSubKeySet*) base;
6445 _tmp1_ = self->priv->_range;
6447 _tmp3_ = gee_tree_map_range_in_range (_tmp1_, _tmp2_);
6450 gconstpointer _tmp5_;
6451 gboolean _tmp6_ = FALSE;
6452 _tmp4_ = self->priv->_map;
6454 _tmp6_ = gee_abstract_map_has_key ((GeeAbstractMap*) _tmp4_, _tmp5_);
6465 static GeeBidirIterator* gee_tree_map_sub_key_set_real_bidir_iterator (GeeAbstractBidirSortedSet* base) {
6466 GeeTreeMapSubKeySet * self;
6467 GeeBidirIterator* result = NULL;
6469 GeeTreeMapRange* _tmp1_;
6470 GeeTreeMapSubKeyIterator* _tmp2_;
6471 self = (GeeTreeMapSubKeySet*) base;
6472 _tmp0_ = self->priv->_map;
6473 _tmp1_ = self->priv->_range;
6474 _tmp2_ = gee_tree_map_sub_key_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp1_);
6475 result = (GeeBidirIterator*) _tmp2_;
6480 static gpointer gee_tree_map_sub_key_set_real_first (GeeAbstractSortedSet* base) {
6481 GeeTreeMapSubKeySet * self;
6482 gpointer result = NULL;
6483 GeeTreeMapRange* _tmp0_;
6484 GeeTreeMapNode* _tmp1_ = NULL;
6485 GeeTreeMapNode* _first;
6486 gconstpointer _tmp2_;
6488 self = (GeeTreeMapSubKeySet*) base;
6489 _tmp0_ = self->priv->_range;
6490 _tmp1_ = gee_tree_map_range_first (_tmp0_);
6492 _vala_assert (_first != NULL, "_first != null");
6493 _tmp2_ = _first->key;
6494 _tmp3_ = ((_tmp2_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp2_) : ((gpointer) _tmp2_);
6500 static gpointer gee_tree_map_sub_key_set_real_last (GeeAbstractSortedSet* base) {
6501 GeeTreeMapSubKeySet * self;
6502 gpointer result = NULL;
6503 GeeTreeMapRange* _tmp0_;
6504 GeeTreeMapNode* _tmp1_ = NULL;
6505 GeeTreeMapNode* _last;
6506 gconstpointer _tmp2_;
6508 self = (GeeTreeMapSubKeySet*) base;
6509 _tmp0_ = self->priv->_range;
6510 _tmp1_ = gee_tree_map_range_last (_tmp0_);
6512 _vala_assert (_last != NULL, "_last != null");
6513 _tmp2_ = _last->key;
6514 _tmp3_ = ((_tmp2_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp2_) : ((gpointer) _tmp2_);
6520 static GeeSortedSet* gee_tree_map_sub_key_set_real_head_set (GeeAbstractSortedSet* base, gconstpointer before) {
6521 GeeTreeMapSubKeySet * self;
6522 GeeSortedSet* result = NULL;
6524 GeeTreeMapRange* _tmp1_;
6525 gconstpointer _tmp2_;
6526 GeeTreeMapRange* _tmp3_ = NULL;
6527 GeeTreeMapRange* _tmp4_;
6528 GeeTreeMapSubKeySet* _tmp5_;
6529 GeeSortedSet* _tmp6_;
6530 self = (GeeTreeMapSubKeySet*) base;
6531 _tmp0_ = self->priv->_map;
6532 _tmp1_ = self->priv->_range;
6534 _tmp3_ = gee_tree_map_range_cut_tail (_tmp1_, _tmp2_);
6536 _tmp5_ = gee_tree_map_sub_key_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp4_);
6537 _tmp6_ = (GeeSortedSet*) _tmp5_;
6538 _gee_tree_map_range_unref0 (_tmp4_);
6544 static GeeSortedSet* gee_tree_map_sub_key_set_real_tail_set (GeeAbstractSortedSet* base, gconstpointer after) {
6545 GeeTreeMapSubKeySet * self;
6546 GeeSortedSet* result = NULL;
6548 GeeTreeMapRange* _tmp1_;
6549 gconstpointer _tmp2_;
6550 GeeTreeMapRange* _tmp3_ = NULL;
6551 GeeTreeMapRange* _tmp4_;
6552 GeeTreeMapSubKeySet* _tmp5_;
6553 GeeSortedSet* _tmp6_;
6554 self = (GeeTreeMapSubKeySet*) base;
6555 _tmp0_ = self->priv->_map;
6556 _tmp1_ = self->priv->_range;
6558 _tmp3_ = gee_tree_map_range_cut_head (_tmp1_, _tmp2_);
6560 _tmp5_ = gee_tree_map_sub_key_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp4_);
6561 _tmp6_ = (GeeSortedSet*) _tmp5_;
6562 _gee_tree_map_range_unref0 (_tmp4_);
6568 static GeeSortedSet* gee_tree_map_sub_key_set_real_sub_set (GeeAbstractSortedSet* base, gconstpointer after, gconstpointer before) {
6569 GeeTreeMapSubKeySet * self;
6570 GeeSortedSet* result = NULL;
6572 GeeTreeMapRange* _tmp1_;
6573 gconstpointer _tmp2_;
6574 gconstpointer _tmp3_;
6575 GeeTreeMapRange* _tmp4_ = NULL;
6576 GeeTreeMapRange* _tmp5_;
6577 GeeTreeMapSubKeySet* _tmp6_;
6578 GeeSortedSet* _tmp7_;
6579 self = (GeeTreeMapSubKeySet*) base;
6580 _tmp0_ = self->priv->_map;
6581 _tmp1_ = self->priv->_range;
6584 _tmp4_ = gee_tree_map_range_cut (_tmp1_, _tmp2_, _tmp3_);
6586 _tmp6_ = gee_tree_map_sub_key_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp5_);
6587 _tmp7_ = (GeeSortedSet*) _tmp6_;
6588 _gee_tree_map_range_unref0 (_tmp5_);
6594 static GeeIterator* gee_tree_map_sub_key_set_real_iterator_at (GeeAbstractSortedSet* base, gconstpointer key) {
6595 GeeTreeMapSubKeySet * self;
6596 GeeIterator* result = NULL;
6597 GeeTreeMapRange* _tmp0_;
6598 gconstpointer _tmp1_;
6599 gboolean _tmp2_ = FALSE;
6601 gconstpointer _tmp4_;
6602 GeeTreeMapNode* _tmp5_ = NULL;
6604 GeeTreeMapNode* _tmp6_;
6606 GeeTreeMapRange* _tmp8_;
6607 GeeTreeMapNode* _tmp9_;
6608 GeeTreeMapSubKeyIterator* _tmp10_;
6609 self = (GeeTreeMapSubKeySet*) base;
6610 _tmp0_ = self->priv->_range;
6612 _tmp2_ = gee_tree_map_range_in_range (_tmp0_, _tmp1_);
6617 _tmp3_ = self->priv->_map;
6619 _tmp5_ = gee_tree_map_find_node (_tmp3_, _tmp4_);
6622 if (_tmp6_ == NULL) {
6626 _tmp7_ = self->priv->_map;
6627 _tmp8_ = self->priv->_range;
6629 _tmp10_ = gee_tree_map_sub_key_iterator_new_pointing (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp7_, _tmp8_, _tmp9_);
6630 result = (GeeIterator*) _tmp10_;
6635 static gpointer gee_tree_map_sub_key_set_real_lower (GeeAbstractSortedSet* base, gconstpointer key) {
6636 GeeTreeMapSubKeySet * self;
6637 gpointer result = NULL;
6638 GeeTreeMapRange* _tmp0_;
6639 gconstpointer _tmp1_;
6645 gconstpointer _tmp7_;
6646 GeeTreeMapNode* _tmp8_ = NULL;
6647 gpointer _tmp9_ = NULL;
6649 gconstpointer _tmp10_ = NULL;
6650 gboolean _tmp11_ = FALSE;
6651 gconstpointer _tmp12_;
6653 gconstpointer _tmp18_;
6655 self = (GeeTreeMapSubKeySet*) base;
6656 _tmp0_ = self->priv->_range;
6658 _tmp2_ = gee_tree_map_range_compare_range (_tmp0_, _tmp1_);
6662 gpointer _tmp4_ = NULL;
6663 _tmp4_ = gee_abstract_sorted_set_last ((GeeAbstractSortedSet*) self);
6667 _tmp5_ = self->priv->_map;
6668 _tmp6_ = self->priv->_map;
6670 _tmp8_ = gee_tree_map_find_lower (_tmp6_, _tmp7_);
6671 _tmp9_ = gee_tree_map_lift_null_key (_tmp5_, _tmp8_);
6674 if (_tmp12_ != NULL) {
6675 GeeTreeMapRange* _tmp13_;
6676 gconstpointer _tmp14_;
6677 gboolean _tmp15_ = FALSE;
6678 _tmp13_ = self->priv->_range;
6680 _tmp15_ = gee_tree_map_range_in_range (_tmp13_, _tmp14_);
6687 gconstpointer _tmp17_;
6694 _tmp19_ = ((_tmp18_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp18_) : ((gpointer) _tmp18_);
6696 ((l == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (l = (self->priv->k_destroy_func (l), NULL));
6701 static gpointer gee_tree_map_sub_key_set_real_higher (GeeAbstractSortedSet* base, gconstpointer key) {
6702 GeeTreeMapSubKeySet * self;
6703 gpointer result = NULL;
6704 GeeTreeMapRange* _tmp0_;
6705 gconstpointer _tmp1_;
6711 gconstpointer _tmp7_;
6712 GeeTreeMapNode* _tmp8_ = NULL;
6713 gpointer _tmp9_ = NULL;
6715 gconstpointer _tmp10_ = NULL;
6716 gboolean _tmp11_ = FALSE;
6717 gconstpointer _tmp12_;
6719 gconstpointer _tmp18_;
6721 self = (GeeTreeMapSubKeySet*) base;
6722 _tmp0_ = self->priv->_range;
6724 _tmp2_ = gee_tree_map_range_compare_range (_tmp0_, _tmp1_);
6728 gpointer _tmp4_ = NULL;
6729 _tmp4_ = gee_abstract_sorted_set_first ((GeeAbstractSortedSet*) self);
6733 _tmp5_ = self->priv->_map;
6734 _tmp6_ = self->priv->_map;
6736 _tmp8_ = gee_tree_map_find_higher (_tmp6_, _tmp7_);
6737 _tmp9_ = gee_tree_map_lift_null_key (_tmp5_, _tmp8_);
6740 if (_tmp12_ != NULL) {
6741 GeeTreeMapRange* _tmp13_;
6742 gconstpointer _tmp14_;
6743 gboolean _tmp15_ = FALSE;
6744 _tmp13_ = self->priv->_range;
6746 _tmp15_ = gee_tree_map_range_in_range (_tmp13_, _tmp14_);
6753 gconstpointer _tmp17_;
6760 _tmp19_ = ((_tmp18_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp18_) : ((gpointer) _tmp18_);
6762 ((h == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (h = (self->priv->k_destroy_func (h), NULL));
6767 static gpointer gee_tree_map_sub_key_set_real_floor (GeeAbstractSortedSet* base, gconstpointer key) {
6768 GeeTreeMapSubKeySet * self;
6769 gpointer result = NULL;
6770 GeeTreeMapRange* _tmp0_;
6771 gconstpointer _tmp1_;
6777 gconstpointer _tmp7_;
6778 GeeTreeMapNode* _tmp8_ = NULL;
6779 gpointer _tmp9_ = NULL;
6781 gconstpointer _tmp10_ = NULL;
6782 gboolean _tmp11_ = FALSE;
6783 gconstpointer _tmp12_;
6785 gconstpointer _tmp18_;
6787 self = (GeeTreeMapSubKeySet*) base;
6788 _tmp0_ = self->priv->_range;
6790 _tmp2_ = gee_tree_map_range_compare_range (_tmp0_, _tmp1_);
6794 gpointer _tmp4_ = NULL;
6795 _tmp4_ = gee_abstract_sorted_set_last ((GeeAbstractSortedSet*) self);
6799 _tmp5_ = self->priv->_map;
6800 _tmp6_ = self->priv->_map;
6802 _tmp8_ = gee_tree_map_find_floor (_tmp6_, _tmp7_);
6803 _tmp9_ = gee_tree_map_lift_null_key (_tmp5_, _tmp8_);
6806 if (_tmp12_ != NULL) {
6807 GeeTreeMapRange* _tmp13_;
6808 gconstpointer _tmp14_;
6809 gboolean _tmp15_ = FALSE;
6810 _tmp13_ = self->priv->_range;
6812 _tmp15_ = gee_tree_map_range_in_range (_tmp13_, _tmp14_);
6819 gconstpointer _tmp17_;
6826 _tmp19_ = ((_tmp18_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp18_) : ((gpointer) _tmp18_);
6828 ((l == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (l = (self->priv->k_destroy_func (l), NULL));
6833 static gpointer gee_tree_map_sub_key_set_real_ceil (GeeAbstractSortedSet* base, gconstpointer key) {
6834 GeeTreeMapSubKeySet * self;
6835 gpointer result = NULL;
6836 GeeTreeMapRange* _tmp0_;
6837 gconstpointer _tmp1_;
6843 gconstpointer _tmp7_;
6844 GeeTreeMapNode* _tmp8_ = NULL;
6845 gpointer _tmp9_ = NULL;
6847 gconstpointer _tmp10_ = NULL;
6848 gboolean _tmp11_ = FALSE;
6849 gconstpointer _tmp12_;
6851 gconstpointer _tmp18_;
6853 self = (GeeTreeMapSubKeySet*) base;
6854 _tmp0_ = self->priv->_range;
6856 _tmp2_ = gee_tree_map_range_compare_range (_tmp0_, _tmp1_);
6860 gpointer _tmp4_ = NULL;
6861 _tmp4_ = gee_abstract_sorted_set_first ((GeeAbstractSortedSet*) self);
6865 _tmp5_ = self->priv->_map;
6866 _tmp6_ = self->priv->_map;
6868 _tmp8_ = gee_tree_map_find_ceil (_tmp6_, _tmp7_);
6869 _tmp9_ = gee_tree_map_lift_null_key (_tmp5_, _tmp8_);
6872 if (_tmp12_ != NULL) {
6873 GeeTreeMapRange* _tmp13_;
6874 gconstpointer _tmp14_;
6875 gboolean _tmp15_ = FALSE;
6876 _tmp13_ = self->priv->_range;
6878 _tmp15_ = gee_tree_map_range_in_range (_tmp13_, _tmp14_);
6885 gconstpointer _tmp17_;
6892 _tmp19_ = ((_tmp18_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp18_) : ((gpointer) _tmp18_);
6894 ((h == NULL) || (self->priv->k_destroy_func == NULL)) ? NULL : (h = (self->priv->k_destroy_func (h), NULL));
6899 static GeeTreeMap* gee_tree_map_sub_key_set_get_map (GeeTreeMapSubKeySet* self) {
6902 g_return_val_if_fail (self != NULL, NULL);
6903 _tmp0_ = self->priv->_map;
6909 static void gee_tree_map_sub_key_set_set_map (GeeTreeMapSubKeySet* self, GeeTreeMap* value) {
6912 g_return_if_fail (self != NULL);
6914 _tmp1_ = _g_object_ref0 (_tmp0_);
6915 _g_object_unref0 (self->priv->_map);
6916 self->priv->_map = _tmp1_;
6920 static GeeTreeMapRange* gee_tree_map_sub_key_set_get_range (GeeTreeMapSubKeySet* self) {
6921 GeeTreeMapRange* result;
6922 GeeTreeMapRange* _tmp0_;
6923 g_return_val_if_fail (self != NULL, NULL);
6924 _tmp0_ = self->priv->_range;
6930 static void gee_tree_map_sub_key_set_set_range (GeeTreeMapSubKeySet* self, GeeTreeMapRange* value) {
6931 GeeTreeMapRange* _tmp0_;
6932 GeeTreeMapRange* _tmp1_;
6933 g_return_if_fail (self != NULL);
6935 _tmp1_ = _gee_tree_map_range_ref0 (_tmp0_);
6936 _gee_tree_map_range_unref0 (self->priv->_range);
6937 self->priv->_range = _tmp1_;
6941 static gint gee_tree_map_sub_key_set_real_get_size (GeeAbstractCollection* base) {
6943 GeeTreeMapSubKeySet* self;
6945 GeeIterator* _tmp0_ = NULL;
6946 GeeIterator* iterator;
6948 self = (GeeTreeMapSubKeySet*) base;
6950 _tmp0_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) self);
6953 GeeIterator* _tmp1_;
6954 gboolean _tmp2_ = FALSE;
6957 _tmp2_ = gee_iterator_next (_tmp1_);
6966 _g_object_unref0 (iterator);
6971 static gboolean gee_tree_map_sub_key_set_real_get_read_only (GeeAbstractCollection* base) {
6973 GeeTreeMapSubKeySet* self;
6974 self = (GeeTreeMapSubKeySet*) base;
6980 static gboolean gee_tree_map_sub_key_set_get_is_empty (GeeTreeMapSubKeySet* self) {
6982 GeeTreeMapRange* _tmp0_;
6983 gboolean _tmp1_ = FALSE;
6984 g_return_val_if_fail (self != NULL, FALSE);
6985 _tmp0_ = self->priv->_range;
6986 _tmp1_ = gee_tree_map_range_empty_submap (_tmp0_);
6992 static void gee_tree_map_sub_key_set_class_init (GeeTreeMapSubKeySetClass * klass) {
6993 gee_tree_map_sub_key_set_parent_class = g_type_class_peek_parent (klass);
6994 g_type_class_add_private (klass, sizeof (GeeTreeMapSubKeySetPrivate));
6995 GEE_ABSTRACT_COLLECTION_CLASS (klass)->iterator = gee_tree_map_sub_key_set_real_iterator;
6996 GEE_ABSTRACT_COLLECTION_CLASS (klass)->add = gee_tree_map_sub_key_set_real_add;
6997 GEE_ABSTRACT_COLLECTION_CLASS (klass)->clear = gee_tree_map_sub_key_set_real_clear;
6998 GEE_ABSTRACT_COLLECTION_CLASS (klass)->remove = gee_tree_map_sub_key_set_real_remove;
6999 GEE_ABSTRACT_COLLECTION_CLASS (klass)->contains = gee_tree_map_sub_key_set_real_contains;
7000 GEE_ABSTRACT_BIDIR_SORTED_SET_CLASS (klass)->bidir_iterator = gee_tree_map_sub_key_set_real_bidir_iterator;
7001 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->first = gee_tree_map_sub_key_set_real_first;
7002 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->last = gee_tree_map_sub_key_set_real_last;
7003 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->head_set = gee_tree_map_sub_key_set_real_head_set;
7004 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->tail_set = gee_tree_map_sub_key_set_real_tail_set;
7005 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->sub_set = gee_tree_map_sub_key_set_real_sub_set;
7006 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->iterator_at = gee_tree_map_sub_key_set_real_iterator_at;
7007 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->lower = gee_tree_map_sub_key_set_real_lower;
7008 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->higher = gee_tree_map_sub_key_set_real_higher;
7009 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->floor = gee_tree_map_sub_key_set_real_floor;
7010 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->ceil = gee_tree_map_sub_key_set_real_ceil;
7011 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_size = gee_tree_map_sub_key_set_real_get_size;
7012 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_read_only = gee_tree_map_sub_key_set_real_get_read_only;
7013 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_sub_key_set_get_property;
7014 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_sub_key_set_set_property;
7015 G_OBJECT_CLASS (klass)->finalize = gee_tree_map_sub_key_set_finalize;
7016 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_SET_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7017 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_SET_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7018 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_SET_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7019 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_SET_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7020 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_SET_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7021 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_SET_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7022 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_SET_MAP, g_param_spec_object ("map", "map", "map", GEE_TYPE_TREE_MAP, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
7023 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_SET_RANGE, gee_tree_map_param_spec_range ("range", "range", "range", GEE_TREE_MAP_TYPE_RANGE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
7024 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_SET_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
7025 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_SET_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
7026 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_SET_IS_EMPTY, g_param_spec_boolean ("is-empty", "is-empty", "is-empty", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
7030 static void gee_tree_map_sub_key_set_instance_init (GeeTreeMapSubKeySet * self) {
7031 self->priv = GEE_TREE_MAP_SUB_KEY_SET_GET_PRIVATE (self);
7035 static void gee_tree_map_sub_key_set_finalize (GObject* obj) {
7036 GeeTreeMapSubKeySet * self;
7037 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TREE_MAP_TYPE_SUB_KEY_SET, GeeTreeMapSubKeySet);
7038 _g_object_unref0 (self->priv->_map);
7039 _gee_tree_map_range_unref0 (self->priv->_range);
7040 G_OBJECT_CLASS (gee_tree_map_sub_key_set_parent_class)->finalize (obj);
7044 static GType gee_tree_map_sub_key_set_get_type (void) {
7045 static volatile gsize gee_tree_map_sub_key_set_type_id__volatile = 0;
7046 if (g_once_init_enter (&gee_tree_map_sub_key_set_type_id__volatile)) {
7047 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 };
7048 GType gee_tree_map_sub_key_set_type_id;
7049 gee_tree_map_sub_key_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeMapSubKeySet", &g_define_type_info, 0);
7050 g_once_init_leave (&gee_tree_map_sub_key_set_type_id__volatile, gee_tree_map_sub_key_set_type_id);
7052 return gee_tree_map_sub_key_set_type_id__volatile;
7056 static void _vala_gee_tree_map_sub_key_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
7057 GeeTreeMapSubKeySet * self;
7058 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_KEY_SET, GeeTreeMapSubKeySet);
7059 switch (property_id) {
7060 case GEE_TREE_MAP_SUB_KEY_SET_MAP:
7061 g_value_set_object (value, gee_tree_map_sub_key_set_get_map (self));
7063 case GEE_TREE_MAP_SUB_KEY_SET_RANGE:
7064 gee_tree_map_value_set_range (value, gee_tree_map_sub_key_set_get_range (self));
7066 case GEE_TREE_MAP_SUB_KEY_SET_SIZE:
7067 g_value_set_int (value, gee_abstract_collection_get_size ((GeeAbstractCollection*) self));
7069 case GEE_TREE_MAP_SUB_KEY_SET_READ_ONLY:
7070 g_value_set_boolean (value, gee_abstract_collection_get_read_only ((GeeAbstractCollection*) self));
7072 case GEE_TREE_MAP_SUB_KEY_SET_IS_EMPTY:
7073 g_value_set_boolean (value, gee_tree_map_sub_key_set_get_is_empty (self));
7076 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
7082 static void _vala_gee_tree_map_sub_key_set_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
7083 GeeTreeMapSubKeySet * self;
7084 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_KEY_SET, GeeTreeMapSubKeySet);
7085 switch (property_id) {
7086 case GEE_TREE_MAP_SUB_KEY_SET_MAP:
7087 gee_tree_map_sub_key_set_set_map (self, g_value_get_object (value));
7089 case GEE_TREE_MAP_SUB_KEY_SET_RANGE:
7090 gee_tree_map_sub_key_set_set_range (self, gee_tree_map_value_get_range (value));
7092 case GEE_TREE_MAP_SUB_KEY_SET_K_TYPE:
7093 self->priv->k_type = g_value_get_gtype (value);
7095 case GEE_TREE_MAP_SUB_KEY_SET_K_DUP_FUNC:
7096 self->priv->k_dup_func = g_value_get_pointer (value);
7098 case GEE_TREE_MAP_SUB_KEY_SET_K_DESTROY_FUNC:
7099 self->priv->k_destroy_func = g_value_get_pointer (value);
7101 case GEE_TREE_MAP_SUB_KEY_SET_V_TYPE:
7102 self->priv->v_type = g_value_get_gtype (value);
7104 case GEE_TREE_MAP_SUB_KEY_SET_V_DUP_FUNC:
7105 self->priv->v_dup_func = g_value_get_pointer (value);
7107 case GEE_TREE_MAP_SUB_KEY_SET_V_DESTROY_FUNC:
7108 self->priv->v_destroy_func = g_value_get_pointer (value);
7111 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
7117 static GeeTreeMapValueCollection* gee_tree_map_value_collection_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, GeeTreeMap* map) {
7118 GeeTreeMapValueCollection * self = NULL;
7121 g_return_val_if_fail (map != NULL, NULL);
7122 self = (GeeTreeMapValueCollection*) gee_abstract_collection_construct (object_type, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func);
7123 self->priv->k_type = k_type;
7124 self->priv->k_dup_func = k_dup_func;
7125 self->priv->k_destroy_func = k_destroy_func;
7126 self->priv->v_type = v_type;
7127 self->priv->v_dup_func = v_dup_func;
7128 self->priv->v_destroy_func = v_destroy_func;
7130 _tmp1_ = _g_object_ref0 (_tmp0_);
7131 _g_object_unref0 (self->priv->_map);
7132 self->priv->_map = _tmp1_;
7137 static GeeTreeMapValueCollection* gee_tree_map_value_collection_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map) {
7138 return gee_tree_map_value_collection_construct (GEE_TREE_MAP_TYPE_VALUE_COLLECTION, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map);
7142 static GeeIterator* gee_tree_map_value_collection_real_iterator (GeeAbstractCollection* base) {
7143 GeeTreeMapValueCollection * self;
7144 GeeIterator* result = NULL;
7146 GeeTreeMapValueIterator* _tmp1_;
7147 self = (GeeTreeMapValueCollection*) base;
7148 _tmp0_ = self->priv->_map;
7149 _tmp1_ = gee_tree_map_value_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_);
7150 result = (GeeIterator*) _tmp1_;
7155 static gboolean gee_tree_map_value_collection_real_add (GeeAbstractCollection* base, gconstpointer key) {
7156 GeeTreeMapValueCollection * self;
7157 gboolean result = FALSE;
7158 self = (GeeTreeMapValueCollection*) base;
7159 g_assert_not_reached ();
7164 static void gee_tree_map_value_collection_real_clear (GeeAbstractCollection* base) {
7165 GeeTreeMapValueCollection * self;
7166 self = (GeeTreeMapValueCollection*) base;
7167 g_assert_not_reached ();
7171 static gboolean gee_tree_map_value_collection_real_remove (GeeAbstractCollection* base, gconstpointer key) {
7172 GeeTreeMapValueCollection * self;
7173 gboolean result = FALSE;
7174 self = (GeeTreeMapValueCollection*) base;
7175 g_assert_not_reached ();
7180 static gboolean gee_tree_map_value_collection_real_contains (GeeAbstractCollection* base, gconstpointer key) {
7181 GeeTreeMapValueCollection * self;
7182 gboolean result = FALSE;
7183 GeeIterator* _tmp0_ = NULL;
7185 self = (GeeTreeMapValueCollection*) base;
7186 _tmp0_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) self);
7189 GeeIterator* _tmp1_;
7190 gboolean _tmp2_ = FALSE;
7192 GeeEqualDataFunc _tmp4_;
7193 void* _tmp4__target;
7194 GeeEqualDataFunc _tmp5_;
7195 void* _tmp5__target;
7196 gconstpointer _tmp6_;
7197 GeeIterator* _tmp7_;
7198 gpointer _tmp8_ = NULL;
7200 gboolean _tmp10_ = FALSE;
7203 _tmp2_ = gee_iterator_next (_tmp1_);
7207 _tmp3_ = self->priv->_map;
7208 _tmp4_ = gee_tree_map_get_value_equal_func (_tmp3_, &_tmp4__target);
7210 _tmp5__target = _tmp4__target;
7213 _tmp8_ = gee_iterator_get (_tmp7_);
7215 _tmp10_ = _tmp5_ (_tmp6_, _tmp9_, _tmp5__target);
7217 ((_tmp9_ == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_tmp9_ = (self->priv->v_destroy_func (_tmp9_), NULL));
7220 _g_object_unref0 (it);
7225 _g_object_unref0 (it);
7230 static gint gee_tree_map_value_collection_real_get_size (GeeAbstractCollection* base) {
7232 GeeTreeMapValueCollection* self;
7236 self = (GeeTreeMapValueCollection*) base;
7237 _tmp0_ = self->priv->_map;
7238 _tmp1_ = gee_abstract_map_get_size ((GeeMap*) _tmp0_);
7245 static gboolean gee_tree_map_value_collection_real_get_read_only (GeeAbstractCollection* base) {
7247 GeeTreeMapValueCollection* self;
7248 self = (GeeTreeMapValueCollection*) base;
7254 static void gee_tree_map_value_collection_class_init (GeeTreeMapValueCollectionClass * klass) {
7255 gee_tree_map_value_collection_parent_class = g_type_class_peek_parent (klass);
7256 g_type_class_add_private (klass, sizeof (GeeTreeMapValueCollectionPrivate));
7257 GEE_ABSTRACT_COLLECTION_CLASS (klass)->iterator = gee_tree_map_value_collection_real_iterator;
7258 GEE_ABSTRACT_COLLECTION_CLASS (klass)->add = gee_tree_map_value_collection_real_add;
7259 GEE_ABSTRACT_COLLECTION_CLASS (klass)->clear = gee_tree_map_value_collection_real_clear;
7260 GEE_ABSTRACT_COLLECTION_CLASS (klass)->remove = gee_tree_map_value_collection_real_remove;
7261 GEE_ABSTRACT_COLLECTION_CLASS (klass)->contains = gee_tree_map_value_collection_real_contains;
7262 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_size = gee_tree_map_value_collection_real_get_size;
7263 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_read_only = gee_tree_map_value_collection_real_get_read_only;
7264 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_value_collection_get_property;
7265 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_value_collection_set_property;
7266 G_OBJECT_CLASS (klass)->finalize = gee_tree_map_value_collection_finalize;
7267 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_COLLECTION_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7268 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_COLLECTION_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7269 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_COLLECTION_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7270 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_COLLECTION_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7271 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_COLLECTION_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7272 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_COLLECTION_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7273 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_COLLECTION_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
7274 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_COLLECTION_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
7278 static void gee_tree_map_value_collection_instance_init (GeeTreeMapValueCollection * self) {
7279 self->priv = GEE_TREE_MAP_VALUE_COLLECTION_GET_PRIVATE (self);
7283 static void gee_tree_map_value_collection_finalize (GObject* obj) {
7284 GeeTreeMapValueCollection * self;
7285 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TREE_MAP_TYPE_VALUE_COLLECTION, GeeTreeMapValueCollection);
7286 _g_object_unref0 (self->priv->_map);
7287 G_OBJECT_CLASS (gee_tree_map_value_collection_parent_class)->finalize (obj);
7291 static GType gee_tree_map_value_collection_get_type (void) {
7292 static volatile gsize gee_tree_map_value_collection_type_id__volatile = 0;
7293 if (g_once_init_enter (&gee_tree_map_value_collection_type_id__volatile)) {
7294 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 };
7295 GType gee_tree_map_value_collection_type_id;
7296 gee_tree_map_value_collection_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeTreeMapValueCollection", &g_define_type_info, 0);
7297 g_once_init_leave (&gee_tree_map_value_collection_type_id__volatile, gee_tree_map_value_collection_type_id);
7299 return gee_tree_map_value_collection_type_id__volatile;
7303 static void _vala_gee_tree_map_value_collection_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
7304 GeeTreeMapValueCollection * self;
7305 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_VALUE_COLLECTION, GeeTreeMapValueCollection);
7306 switch (property_id) {
7307 case GEE_TREE_MAP_VALUE_COLLECTION_SIZE:
7308 g_value_set_int (value, gee_abstract_collection_get_size ((GeeAbstractCollection*) self));
7310 case GEE_TREE_MAP_VALUE_COLLECTION_READ_ONLY:
7311 g_value_set_boolean (value, gee_abstract_collection_get_read_only ((GeeAbstractCollection*) self));
7314 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
7320 static void _vala_gee_tree_map_value_collection_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
7321 GeeTreeMapValueCollection * self;
7322 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_VALUE_COLLECTION, GeeTreeMapValueCollection);
7323 switch (property_id) {
7324 case GEE_TREE_MAP_VALUE_COLLECTION_K_TYPE:
7325 self->priv->k_type = g_value_get_gtype (value);
7327 case GEE_TREE_MAP_VALUE_COLLECTION_K_DUP_FUNC:
7328 self->priv->k_dup_func = g_value_get_pointer (value);
7330 case GEE_TREE_MAP_VALUE_COLLECTION_K_DESTROY_FUNC:
7331 self->priv->k_destroy_func = g_value_get_pointer (value);
7333 case GEE_TREE_MAP_VALUE_COLLECTION_V_TYPE:
7334 self->priv->v_type = g_value_get_gtype (value);
7336 case GEE_TREE_MAP_VALUE_COLLECTION_V_DUP_FUNC:
7337 self->priv->v_dup_func = g_value_get_pointer (value);
7339 case GEE_TREE_MAP_VALUE_COLLECTION_V_DESTROY_FUNC:
7340 self->priv->v_destroy_func = g_value_get_pointer (value);
7343 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
7349 static GeeTreeMapSubValueCollection* gee_tree_map_sub_value_collection_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, GeeTreeMap* map, GeeTreeMapRange* range) {
7350 GeeTreeMapSubValueCollection * self = NULL;
7352 GeeTreeMapRange* _tmp1_;
7353 g_return_val_if_fail (map != NULL, NULL);
7354 g_return_val_if_fail (range != NULL, NULL);
7355 self = (GeeTreeMapSubValueCollection*) gee_abstract_collection_construct (object_type, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func);
7356 self->priv->k_type = k_type;
7357 self->priv->k_dup_func = k_dup_func;
7358 self->priv->k_destroy_func = k_destroy_func;
7359 self->priv->v_type = v_type;
7360 self->priv->v_dup_func = v_dup_func;
7361 self->priv->v_destroy_func = v_destroy_func;
7363 gee_tree_map_sub_value_collection_set_map (self, _tmp0_);
7365 gee_tree_map_sub_value_collection_set_range (self, _tmp1_);
7370 static GeeTreeMapSubValueCollection* gee_tree_map_sub_value_collection_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range) {
7371 return gee_tree_map_sub_value_collection_construct (GEE_TREE_MAP_TYPE_SUB_VALUE_COLLECTION, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, range);
7375 static GeeIterator* gee_tree_map_sub_value_collection_real_iterator (GeeAbstractCollection* base) {
7376 GeeTreeMapSubValueCollection * self;
7377 GeeIterator* result = NULL;
7379 GeeTreeMapRange* _tmp1_;
7380 GeeTreeMapSubValueIterator* _tmp2_;
7381 self = (GeeTreeMapSubValueCollection*) base;
7382 _tmp0_ = self->priv->_map;
7383 _tmp1_ = self->priv->_range;
7384 _tmp2_ = gee_tree_map_sub_value_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp1_);
7385 result = (GeeIterator*) _tmp2_;
7390 static gboolean gee_tree_map_sub_value_collection_real_add (GeeAbstractCollection* base, gconstpointer key) {
7391 GeeTreeMapSubValueCollection * self;
7392 gboolean result = FALSE;
7393 self = (GeeTreeMapSubValueCollection*) base;
7394 g_assert_not_reached ();
7399 static void gee_tree_map_sub_value_collection_real_clear (GeeAbstractCollection* base) {
7400 GeeTreeMapSubValueCollection * self;
7401 self = (GeeTreeMapSubValueCollection*) base;
7402 g_assert_not_reached ();
7406 static gboolean gee_tree_map_sub_value_collection_real_remove (GeeAbstractCollection* base, gconstpointer key) {
7407 GeeTreeMapSubValueCollection * self;
7408 gboolean result = FALSE;
7409 self = (GeeTreeMapSubValueCollection*) base;
7410 g_assert_not_reached ();
7415 static gboolean gee_tree_map_sub_value_collection_real_contains (GeeAbstractCollection* base, gconstpointer key) {
7416 GeeTreeMapSubValueCollection * self;
7417 gboolean result = FALSE;
7418 GeeIterator* _tmp0_ = NULL;
7420 self = (GeeTreeMapSubValueCollection*) base;
7421 _tmp0_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) self);
7424 GeeIterator* _tmp1_;
7425 gboolean _tmp2_ = FALSE;
7427 GeeEqualDataFunc _tmp4_;
7428 void* _tmp4__target;
7429 GeeEqualDataFunc _tmp5_;
7430 void* _tmp5__target;
7431 gconstpointer _tmp6_;
7432 GeeIterator* _tmp7_;
7433 gpointer _tmp8_ = NULL;
7435 gboolean _tmp10_ = FALSE;
7438 _tmp2_ = gee_iterator_next (_tmp1_);
7442 _tmp3_ = self->priv->_map;
7443 _tmp4_ = gee_tree_map_get_value_equal_func (_tmp3_, &_tmp4__target);
7445 _tmp5__target = _tmp4__target;
7448 _tmp8_ = gee_iterator_get (_tmp7_);
7450 _tmp10_ = _tmp5_ (_tmp6_, _tmp9_, _tmp5__target);
7452 ((_tmp9_ == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_tmp9_ = (self->priv->v_destroy_func (_tmp9_), NULL));
7455 _g_object_unref0 (it);
7460 _g_object_unref0 (it);
7465 static GeeTreeMap* gee_tree_map_sub_value_collection_get_map (GeeTreeMapSubValueCollection* self) {
7468 g_return_val_if_fail (self != NULL, NULL);
7469 _tmp0_ = self->priv->_map;
7475 static void gee_tree_map_sub_value_collection_set_map (GeeTreeMapSubValueCollection* self, GeeTreeMap* value) {
7478 g_return_if_fail (self != NULL);
7480 _tmp1_ = _g_object_ref0 (_tmp0_);
7481 _g_object_unref0 (self->priv->_map);
7482 self->priv->_map = _tmp1_;
7486 static GeeTreeMapRange* gee_tree_map_sub_value_collection_get_range (GeeTreeMapSubValueCollection* self) {
7487 GeeTreeMapRange* result;
7488 GeeTreeMapRange* _tmp0_;
7489 g_return_val_if_fail (self != NULL, NULL);
7490 _tmp0_ = self->priv->_range;
7496 static void gee_tree_map_sub_value_collection_set_range (GeeTreeMapSubValueCollection* self, GeeTreeMapRange* value) {
7497 GeeTreeMapRange* _tmp0_;
7498 GeeTreeMapRange* _tmp1_;
7499 g_return_if_fail (self != NULL);
7501 _tmp1_ = _gee_tree_map_range_ref0 (_tmp0_);
7502 _gee_tree_map_range_unref0 (self->priv->_range);
7503 self->priv->_range = _tmp1_;
7507 static gboolean gee_tree_map_sub_value_collection_real_get_read_only (GeeAbstractCollection* base) {
7509 GeeTreeMapSubValueCollection* self;
7510 self = (GeeTreeMapSubValueCollection*) base;
7516 static gint gee_tree_map_sub_value_collection_real_get_size (GeeAbstractCollection* base) {
7518 GeeTreeMapSubValueCollection* self;
7520 GeeIterator* _tmp0_ = NULL;
7521 GeeIterator* iterator;
7523 self = (GeeTreeMapSubValueCollection*) base;
7525 _tmp0_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) self);
7528 GeeIterator* _tmp1_;
7529 gboolean _tmp2_ = FALSE;
7532 _tmp2_ = gee_iterator_next (_tmp1_);
7541 _g_object_unref0 (iterator);
7546 static gboolean gee_tree_map_sub_value_collection_get_is_empty (GeeTreeMapSubValueCollection* self) {
7548 GeeTreeMapRange* _tmp0_;
7549 gboolean _tmp1_ = FALSE;
7550 g_return_val_if_fail (self != NULL, FALSE);
7551 _tmp0_ = self->priv->_range;
7552 _tmp1_ = gee_tree_map_range_empty_submap (_tmp0_);
7558 static void gee_tree_map_sub_value_collection_class_init (GeeTreeMapSubValueCollectionClass * klass) {
7559 gee_tree_map_sub_value_collection_parent_class = g_type_class_peek_parent (klass);
7560 g_type_class_add_private (klass, sizeof (GeeTreeMapSubValueCollectionPrivate));
7561 GEE_ABSTRACT_COLLECTION_CLASS (klass)->iterator = gee_tree_map_sub_value_collection_real_iterator;
7562 GEE_ABSTRACT_COLLECTION_CLASS (klass)->add = gee_tree_map_sub_value_collection_real_add;
7563 GEE_ABSTRACT_COLLECTION_CLASS (klass)->clear = gee_tree_map_sub_value_collection_real_clear;
7564 GEE_ABSTRACT_COLLECTION_CLASS (klass)->remove = gee_tree_map_sub_value_collection_real_remove;
7565 GEE_ABSTRACT_COLLECTION_CLASS (klass)->contains = gee_tree_map_sub_value_collection_real_contains;
7566 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_read_only = gee_tree_map_sub_value_collection_real_get_read_only;
7567 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_size = gee_tree_map_sub_value_collection_real_get_size;
7568 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_sub_value_collection_get_property;
7569 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_sub_value_collection_set_property;
7570 G_OBJECT_CLASS (klass)->finalize = gee_tree_map_sub_value_collection_finalize;
7571 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_COLLECTION_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7572 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_COLLECTION_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7573 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_COLLECTION_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7574 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_COLLECTION_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7575 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_COLLECTION_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7576 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_COLLECTION_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
7577 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_COLLECTION_MAP, g_param_spec_object ("map", "map", "map", GEE_TYPE_TREE_MAP, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
7578 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_COLLECTION_RANGE, gee_tree_map_param_spec_range ("range", "range", "range", GEE_TREE_MAP_TYPE_RANGE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
7579 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_COLLECTION_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
7580 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_COLLECTION_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
7581 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_COLLECTION_IS_EMPTY, g_param_spec_boolean ("is-empty", "is-empty", "is-empty", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
7585 static void gee_tree_map_sub_value_collection_instance_init (GeeTreeMapSubValueCollection * self) {
7586 self->priv = GEE_TREE_MAP_SUB_VALUE_COLLECTION_GET_PRIVATE (self);
7590 static void gee_tree_map_sub_value_collection_finalize (GObject* obj) {
7591 GeeTreeMapSubValueCollection * self;
7592 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TREE_MAP_TYPE_SUB_VALUE_COLLECTION, GeeTreeMapSubValueCollection);
7593 _g_object_unref0 (self->priv->_map);
7594 _gee_tree_map_range_unref0 (self->priv->_range);
7595 G_OBJECT_CLASS (gee_tree_map_sub_value_collection_parent_class)->finalize (obj);
7599 static GType gee_tree_map_sub_value_collection_get_type (void) {
7600 static volatile gsize gee_tree_map_sub_value_collection_type_id__volatile = 0;
7601 if (g_once_init_enter (&gee_tree_map_sub_value_collection_type_id__volatile)) {
7602 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 };
7603 GType gee_tree_map_sub_value_collection_type_id;
7604 gee_tree_map_sub_value_collection_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_COLLECTION, "GeeTreeMapSubValueCollection", &g_define_type_info, 0);
7605 g_once_init_leave (&gee_tree_map_sub_value_collection_type_id__volatile, gee_tree_map_sub_value_collection_type_id);
7607 return gee_tree_map_sub_value_collection_type_id__volatile;
7611 static void _vala_gee_tree_map_sub_value_collection_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
7612 GeeTreeMapSubValueCollection * self;
7613 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_VALUE_COLLECTION, GeeTreeMapSubValueCollection);
7614 switch (property_id) {
7615 case GEE_TREE_MAP_SUB_VALUE_COLLECTION_MAP:
7616 g_value_set_object (value, gee_tree_map_sub_value_collection_get_map (self));
7618 case GEE_TREE_MAP_SUB_VALUE_COLLECTION_RANGE:
7619 gee_tree_map_value_set_range (value, gee_tree_map_sub_value_collection_get_range (self));
7621 case GEE_TREE_MAP_SUB_VALUE_COLLECTION_READ_ONLY:
7622 g_value_set_boolean (value, gee_abstract_collection_get_read_only ((GeeAbstractCollection*) self));
7624 case GEE_TREE_MAP_SUB_VALUE_COLLECTION_SIZE:
7625 g_value_set_int (value, gee_abstract_collection_get_size ((GeeAbstractCollection*) self));
7627 case GEE_TREE_MAP_SUB_VALUE_COLLECTION_IS_EMPTY:
7628 g_value_set_boolean (value, gee_tree_map_sub_value_collection_get_is_empty (self));
7631 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
7637 static void _vala_gee_tree_map_sub_value_collection_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
7638 GeeTreeMapSubValueCollection * self;
7639 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_VALUE_COLLECTION, GeeTreeMapSubValueCollection);
7640 switch (property_id) {
7641 case GEE_TREE_MAP_SUB_VALUE_COLLECTION_MAP:
7642 gee_tree_map_sub_value_collection_set_map (self, g_value_get_object (value));
7644 case GEE_TREE_MAP_SUB_VALUE_COLLECTION_RANGE:
7645 gee_tree_map_sub_value_collection_set_range (self, gee_tree_map_value_get_range (value));
7647 case GEE_TREE_MAP_SUB_VALUE_COLLECTION_K_TYPE:
7648 self->priv->k_type = g_value_get_gtype (value);
7650 case GEE_TREE_MAP_SUB_VALUE_COLLECTION_K_DUP_FUNC:
7651 self->priv->k_dup_func = g_value_get_pointer (value);
7653 case GEE_TREE_MAP_SUB_VALUE_COLLECTION_K_DESTROY_FUNC:
7654 self->priv->k_destroy_func = g_value_get_pointer (value);
7656 case GEE_TREE_MAP_SUB_VALUE_COLLECTION_V_TYPE:
7657 self->priv->v_type = g_value_get_gtype (value);
7659 case GEE_TREE_MAP_SUB_VALUE_COLLECTION_V_DUP_FUNC:
7660 self->priv->v_dup_func = g_value_get_pointer (value);
7662 case GEE_TREE_MAP_SUB_VALUE_COLLECTION_V_DESTROY_FUNC:
7663 self->priv->v_destroy_func = g_value_get_pointer (value);
7666 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
7672 static GeeTreeMapEntrySet* gee_tree_map_entry_set_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, GeeTreeMap* map) {
7673 GeeTreeMapEntrySet * self = NULL;
7676 g_return_val_if_fail (map != NULL, NULL);
7677 self = (GeeTreeMapEntrySet*) gee_abstract_bidir_sorted_set_construct (object_type, GEE_MAP_TYPE_ENTRY, (GBoxedCopyFunc) g_object_ref, g_object_unref);
7678 self->priv->k_type = k_type;
7679 self->priv->k_dup_func = k_dup_func;
7680 self->priv->k_destroy_func = k_destroy_func;
7681 self->priv->v_type = v_type;
7682 self->priv->v_dup_func = v_dup_func;
7683 self->priv->v_destroy_func = v_destroy_func;
7685 _tmp1_ = _g_object_ref0 (_tmp0_);
7686 _g_object_unref0 (self->priv->_map);
7687 self->priv->_map = _tmp1_;
7692 static GeeTreeMapEntrySet* gee_tree_map_entry_set_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map) {
7693 return gee_tree_map_entry_set_construct (GEE_TREE_MAP_TYPE_ENTRY_SET, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map);
7697 static GeeIterator* gee_tree_map_entry_set_real_iterator (GeeAbstractCollection* base) {
7698 GeeTreeMapEntrySet * self;
7699 GeeIterator* result = NULL;
7701 GeeTreeMapEntryIterator* _tmp1_;
7702 self = (GeeTreeMapEntrySet*) base;
7703 _tmp0_ = self->priv->_map;
7704 _tmp1_ = gee_tree_map_entry_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_);
7705 result = (GeeIterator*) _tmp1_;
7710 static gboolean gee_tree_map_entry_set_real_add (GeeAbstractCollection* base, GeeMapEntry* entry) {
7711 GeeTreeMapEntrySet * self;
7712 gboolean result = FALSE;
7713 self = (GeeTreeMapEntrySet*) base;
7714 g_return_val_if_fail (entry != NULL, FALSE);
7715 g_assert_not_reached ();
7720 static void gee_tree_map_entry_set_real_clear (GeeAbstractCollection* base) {
7721 GeeTreeMapEntrySet * self;
7722 self = (GeeTreeMapEntrySet*) base;
7723 g_assert_not_reached ();
7727 static gboolean gee_tree_map_entry_set_real_remove (GeeAbstractCollection* base, GeeMapEntry* entry) {
7728 GeeTreeMapEntrySet * self;
7729 gboolean result = FALSE;
7730 self = (GeeTreeMapEntrySet*) base;
7731 g_return_val_if_fail (entry != NULL, FALSE);
7732 g_assert_not_reached ();
7737 static gboolean gee_tree_map_entry_set_real_contains (GeeAbstractCollection* base, GeeMapEntry* entry) {
7738 GeeTreeMapEntrySet * self;
7739 gboolean result = FALSE;
7741 GeeMapEntry* _tmp1_;
7742 gconstpointer _tmp2_;
7743 gconstpointer _tmp3_;
7744 GeeMapEntry* _tmp4_;
7745 gconstpointer _tmp5_;
7746 gconstpointer _tmp6_;
7747 gboolean _tmp7_ = FALSE;
7748 self = (GeeTreeMapEntrySet*) base;
7749 g_return_val_if_fail (entry != NULL, FALSE);
7750 _tmp0_ = self->priv->_map;
7752 _tmp2_ = gee_map_entry_get_key (_tmp1_);
7755 _tmp5_ = gee_map_entry_get_value (_tmp4_);
7757 _tmp7_ = gee_abstract_map_has ((GeeAbstractMap*) _tmp0_, _tmp3_, _tmp6_);
7763 static GeeMapEntry* gee_tree_map_entry_set_real_first (GeeAbstractSortedSet* base) {
7764 GeeTreeMapEntrySet * self;
7765 GeeMapEntry* result = NULL;
7767 GeeTreeMapNode* _tmp1_;
7769 GeeTreeMapNode* _tmp3_;
7770 GeeMapEntry* _tmp4_ = NULL;
7771 self = (GeeTreeMapEntrySet*) base;
7772 _tmp0_ = self->priv->_map;
7773 _tmp1_ = _tmp0_->priv->first;
7774 _vala_assert (_tmp1_ != NULL, "_map.first != null");
7775 _tmp2_ = self->priv->_map;
7776 _tmp3_ = _tmp2_->priv->first;
7777 _tmp4_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp3_);
7783 static GeeMapEntry* gee_tree_map_entry_set_real_last (GeeAbstractSortedSet* base) {
7784 GeeTreeMapEntrySet * self;
7785 GeeMapEntry* result = NULL;
7787 GeeTreeMapNode* _tmp1_;
7789 GeeTreeMapNode* _tmp3_;
7790 GeeMapEntry* _tmp4_ = NULL;
7791 self = (GeeTreeMapEntrySet*) base;
7792 _tmp0_ = self->priv->_map;
7793 _tmp1_ = _tmp0_->priv->last;
7794 _vala_assert (_tmp1_ != NULL, "_map.last != null");
7795 _tmp2_ = self->priv->_map;
7796 _tmp3_ = _tmp2_->priv->last;
7797 _tmp4_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp3_);
7803 static GeeBidirIterator* gee_tree_map_entry_set_real_bidir_iterator (GeeAbstractBidirSortedSet* base) {
7804 GeeTreeMapEntrySet * self;
7805 GeeBidirIterator* result = NULL;
7807 GeeTreeMapEntryIterator* _tmp1_;
7808 self = (GeeTreeMapEntrySet*) base;
7809 _tmp0_ = self->priv->_map;
7810 _tmp1_ = gee_tree_map_entry_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_);
7811 result = (GeeBidirIterator*) _tmp1_;
7816 static GeeSortedSet* gee_tree_map_entry_set_real_head_set (GeeAbstractSortedSet* base, GeeMapEntry* before) {
7817 GeeTreeMapEntrySet * self;
7818 GeeSortedSet* result = NULL;
7821 GeeMapEntry* _tmp2_;
7822 gconstpointer _tmp3_;
7823 gconstpointer _tmp4_;
7824 GeeTreeMapRange* _tmp5_;
7825 GeeTreeMapRange* _tmp6_;
7826 GeeTreeMapSubEntrySet* _tmp7_;
7827 GeeSortedSet* _tmp8_;
7828 self = (GeeTreeMapEntrySet*) base;
7829 g_return_val_if_fail (before != NULL, NULL);
7830 _tmp0_ = self->priv->_map;
7831 _tmp1_ = self->priv->_map;
7833 _tmp3_ = gee_map_entry_get_key (_tmp2_);
7835 _tmp5_ = gee_tree_map_range_new_head (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp1_, _tmp4_);
7837 _tmp7_ = gee_tree_map_sub_entry_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp6_);
7838 _tmp8_ = (GeeSortedSet*) _tmp7_;
7839 _gee_tree_map_range_unref0 (_tmp6_);
7845 static GeeSortedSet* gee_tree_map_entry_set_real_tail_set (GeeAbstractSortedSet* base, GeeMapEntry* after) {
7846 GeeTreeMapEntrySet * self;
7847 GeeSortedSet* result = NULL;
7850 GeeMapEntry* _tmp2_;
7851 gconstpointer _tmp3_;
7852 gconstpointer _tmp4_;
7853 GeeTreeMapRange* _tmp5_;
7854 GeeTreeMapRange* _tmp6_;
7855 GeeTreeMapSubEntrySet* _tmp7_;
7856 GeeSortedSet* _tmp8_;
7857 self = (GeeTreeMapEntrySet*) base;
7858 g_return_val_if_fail (after != NULL, NULL);
7859 _tmp0_ = self->priv->_map;
7860 _tmp1_ = self->priv->_map;
7862 _tmp3_ = gee_map_entry_get_key (_tmp2_);
7864 _tmp5_ = gee_tree_map_range_new_tail (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp1_, _tmp4_);
7866 _tmp7_ = gee_tree_map_sub_entry_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp6_);
7867 _tmp8_ = (GeeSortedSet*) _tmp7_;
7868 _gee_tree_map_range_unref0 (_tmp6_);
7874 static GeeSortedSet* gee_tree_map_entry_set_real_sub_set (GeeAbstractSortedSet* base, GeeMapEntry* after, GeeMapEntry* before) {
7875 GeeTreeMapEntrySet * self;
7876 GeeSortedSet* result = NULL;
7879 GeeMapEntry* _tmp2_;
7880 gconstpointer _tmp3_;
7881 gconstpointer _tmp4_;
7882 GeeMapEntry* _tmp5_;
7883 gconstpointer _tmp6_;
7884 gconstpointer _tmp7_;
7885 GeeTreeMapRange* _tmp8_;
7886 GeeTreeMapRange* _tmp9_;
7887 GeeTreeMapSubEntrySet* _tmp10_;
7888 GeeSortedSet* _tmp11_;
7889 self = (GeeTreeMapEntrySet*) base;
7890 g_return_val_if_fail (after != NULL, NULL);
7891 g_return_val_if_fail (before != NULL, NULL);
7892 _tmp0_ = self->priv->_map;
7893 _tmp1_ = self->priv->_map;
7895 _tmp3_ = gee_map_entry_get_key (_tmp2_);
7898 _tmp6_ = gee_map_entry_get_key (_tmp5_);
7900 _tmp8_ = gee_tree_map_range_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp1_, _tmp4_, _tmp7_);
7902 _tmp10_ = gee_tree_map_sub_entry_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp9_);
7903 _tmp11_ = (GeeSortedSet*) _tmp10_;
7904 _gee_tree_map_range_unref0 (_tmp9_);
7910 static GeeIterator* gee_tree_map_entry_set_real_iterator_at (GeeAbstractSortedSet* base, GeeMapEntry* item) {
7911 GeeTreeMapEntrySet * self;
7912 GeeIterator* result = NULL;
7914 GeeMapEntry* _tmp1_;
7915 gconstpointer _tmp2_;
7916 gconstpointer _tmp3_;
7917 GeeTreeMapNode* _tmp4_ = NULL;
7918 GeeTreeMapNode* node;
7919 gboolean _tmp5_ = FALSE;
7920 GeeTreeMapNode* _tmp6_;
7922 GeeTreeMap* _tmp17_;
7923 GeeTreeMapNode* _tmp18_;
7924 GeeTreeMapEntryIterator* _tmp19_;
7925 self = (GeeTreeMapEntrySet*) base;
7926 g_return_val_if_fail (item != NULL, NULL);
7927 _tmp0_ = self->priv->_map;
7929 _tmp2_ = gee_map_entry_get_key (_tmp1_);
7931 _tmp4_ = gee_tree_map_find_node (_tmp0_, _tmp3_);
7934 if (_tmp6_ == NULL) {
7938 GeeEqualDataFunc _tmp8_;
7939 void* _tmp8__target;
7940 GeeEqualDataFunc _tmp9_;
7941 void* _tmp9__target;
7942 GeeTreeMapNode* _tmp10_;
7943 gconstpointer _tmp11_;
7944 GeeMapEntry* _tmp12_;
7945 gconstpointer _tmp13_;
7946 gconstpointer _tmp14_;
7947 gboolean _tmp15_ = FALSE;
7948 _tmp7_ = self->priv->_map;
7949 _tmp8_ = gee_tree_map_get_value_equal_func (_tmp7_, &_tmp8__target);
7951 _tmp9__target = _tmp8__target;
7953 _tmp11_ = _tmp10_->value;
7955 _tmp13_ = gee_map_entry_get_value (_tmp12_);
7957 _tmp15_ = _tmp9_ (_tmp11_, _tmp14_, _tmp9__target);
7965 _tmp17_ = self->priv->_map;
7967 _tmp19_ = gee_tree_map_entry_iterator_new_pointing (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp17_, _tmp18_);
7968 result = (GeeIterator*) _tmp19_;
7973 static GeeMapEntry* gee_tree_map_entry_set_real_lower (GeeAbstractSortedSet* base, GeeMapEntry* item) {
7974 GeeTreeMapEntrySet * self;
7975 GeeMapEntry* result = NULL;
7977 GeeMapEntry* _tmp1_;
7978 gconstpointer _tmp2_;
7979 gconstpointer _tmp3_;
7980 GeeTreeMapNode* _tmp4_ = NULL;
7982 GeeMapEntry* _tmp5_ = NULL;
7983 GeeTreeMapNode* _tmp6_;
7984 self = (GeeTreeMapEntrySet*) base;
7985 g_return_val_if_fail (item != NULL, NULL);
7986 _tmp0_ = self->priv->_map;
7988 _tmp2_ = gee_map_entry_get_key (_tmp1_);
7990 _tmp4_ = gee_tree_map_find_lower (_tmp0_, _tmp3_);
7993 if (_tmp6_ != NULL) {
7994 GeeTreeMapNode* _tmp7_;
7995 GeeMapEntry* _tmp8_ = NULL;
7997 _tmp8_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp7_);
7998 _g_object_unref0 (_tmp5_);
8001 _g_object_unref0 (_tmp5_);
8009 static GeeMapEntry* gee_tree_map_entry_set_real_higher (GeeAbstractSortedSet* base, GeeMapEntry* item) {
8010 GeeTreeMapEntrySet * self;
8011 GeeMapEntry* result = NULL;
8013 GeeMapEntry* _tmp1_;
8014 gconstpointer _tmp2_;
8015 gconstpointer _tmp3_;
8016 GeeTreeMapNode* _tmp4_ = NULL;
8018 GeeMapEntry* _tmp5_ = NULL;
8019 GeeTreeMapNode* _tmp6_;
8020 self = (GeeTreeMapEntrySet*) base;
8021 g_return_val_if_fail (item != NULL, NULL);
8022 _tmp0_ = self->priv->_map;
8024 _tmp2_ = gee_map_entry_get_key (_tmp1_);
8026 _tmp4_ = gee_tree_map_find_higher (_tmp0_, _tmp3_);
8029 if (_tmp6_ != NULL) {
8030 GeeTreeMapNode* _tmp7_;
8031 GeeMapEntry* _tmp8_ = NULL;
8033 _tmp8_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp7_);
8034 _g_object_unref0 (_tmp5_);
8037 _g_object_unref0 (_tmp5_);
8045 static GeeMapEntry* gee_tree_map_entry_set_real_floor (GeeAbstractSortedSet* base, GeeMapEntry* item) {
8046 GeeTreeMapEntrySet * self;
8047 GeeMapEntry* result = NULL;
8049 GeeMapEntry* _tmp1_;
8050 gconstpointer _tmp2_;
8051 gconstpointer _tmp3_;
8052 GeeTreeMapNode* _tmp4_ = NULL;
8054 GeeMapEntry* _tmp5_ = NULL;
8055 GeeTreeMapNode* _tmp6_;
8056 self = (GeeTreeMapEntrySet*) base;
8057 g_return_val_if_fail (item != NULL, NULL);
8058 _tmp0_ = self->priv->_map;
8060 _tmp2_ = gee_map_entry_get_key (_tmp1_);
8062 _tmp4_ = gee_tree_map_find_floor (_tmp0_, _tmp3_);
8065 if (_tmp6_ != NULL) {
8066 GeeTreeMapNode* _tmp7_;
8067 GeeMapEntry* _tmp8_ = NULL;
8069 _tmp8_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp7_);
8070 _g_object_unref0 (_tmp5_);
8073 _g_object_unref0 (_tmp5_);
8081 static GeeMapEntry* gee_tree_map_entry_set_real_ceil (GeeAbstractSortedSet* base, GeeMapEntry* item) {
8082 GeeTreeMapEntrySet * self;
8083 GeeMapEntry* result = NULL;
8085 GeeMapEntry* _tmp1_;
8086 gconstpointer _tmp2_;
8087 gconstpointer _tmp3_;
8088 GeeTreeMapNode* _tmp4_ = NULL;
8090 GeeMapEntry* _tmp5_ = NULL;
8091 GeeTreeMapNode* _tmp6_;
8092 self = (GeeTreeMapEntrySet*) base;
8093 g_return_val_if_fail (item != NULL, NULL);
8094 _tmp0_ = self->priv->_map;
8096 _tmp2_ = gee_map_entry_get_key (_tmp1_);
8098 _tmp4_ = gee_tree_map_find_ceil (_tmp0_, _tmp3_);
8101 if (_tmp6_ != NULL) {
8102 GeeTreeMapNode* _tmp7_;
8103 GeeMapEntry* _tmp8_ = NULL;
8105 _tmp8_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp7_);
8106 _g_object_unref0 (_tmp5_);
8109 _g_object_unref0 (_tmp5_);
8117 static gint gee_tree_map_entry_set_real_get_size (GeeAbstractCollection* base) {
8119 GeeTreeMapEntrySet* self;
8123 self = (GeeTreeMapEntrySet*) base;
8124 _tmp0_ = self->priv->_map;
8125 _tmp1_ = gee_abstract_map_get_size ((GeeMap*) _tmp0_);
8132 static gboolean gee_tree_map_entry_set_real_get_read_only (GeeAbstractCollection* base) {
8134 GeeTreeMapEntrySet* self;
8135 self = (GeeTreeMapEntrySet*) base;
8141 static void gee_tree_map_entry_set_class_init (GeeTreeMapEntrySetClass * klass) {
8142 gee_tree_map_entry_set_parent_class = g_type_class_peek_parent (klass);
8143 g_type_class_add_private (klass, sizeof (GeeTreeMapEntrySetPrivate));
8144 GEE_ABSTRACT_COLLECTION_CLASS (klass)->iterator = gee_tree_map_entry_set_real_iterator;
8145 GEE_ABSTRACT_COLLECTION_CLASS (klass)->add = gee_tree_map_entry_set_real_add;
8146 GEE_ABSTRACT_COLLECTION_CLASS (klass)->clear = gee_tree_map_entry_set_real_clear;
8147 GEE_ABSTRACT_COLLECTION_CLASS (klass)->remove = gee_tree_map_entry_set_real_remove;
8148 GEE_ABSTRACT_COLLECTION_CLASS (klass)->contains = gee_tree_map_entry_set_real_contains;
8149 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->first = gee_tree_map_entry_set_real_first;
8150 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->last = gee_tree_map_entry_set_real_last;
8151 GEE_ABSTRACT_BIDIR_SORTED_SET_CLASS (klass)->bidir_iterator = gee_tree_map_entry_set_real_bidir_iterator;
8152 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->head_set = gee_tree_map_entry_set_real_head_set;
8153 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->tail_set = gee_tree_map_entry_set_real_tail_set;
8154 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->sub_set = gee_tree_map_entry_set_real_sub_set;
8155 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->iterator_at = gee_tree_map_entry_set_real_iterator_at;
8156 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->lower = gee_tree_map_entry_set_real_lower;
8157 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->higher = gee_tree_map_entry_set_real_higher;
8158 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->floor = gee_tree_map_entry_set_real_floor;
8159 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->ceil = gee_tree_map_entry_set_real_ceil;
8160 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_size = gee_tree_map_entry_set_real_get_size;
8161 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_read_only = gee_tree_map_entry_set_real_get_read_only;
8162 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_entry_set_get_property;
8163 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_entry_set_set_property;
8164 G_OBJECT_CLASS (klass)->finalize = gee_tree_map_entry_set_finalize;
8165 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_SET_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
8166 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_SET_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
8167 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_SET_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
8168 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_SET_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
8169 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_SET_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
8170 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_SET_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
8171 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_SET_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
8172 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_SET_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
8176 static void gee_tree_map_entry_set_instance_init (GeeTreeMapEntrySet * self) {
8177 self->priv = GEE_TREE_MAP_ENTRY_SET_GET_PRIVATE (self);
8181 static void gee_tree_map_entry_set_finalize (GObject* obj) {
8182 GeeTreeMapEntrySet * self;
8183 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TREE_MAP_TYPE_ENTRY_SET, GeeTreeMapEntrySet);
8184 _g_object_unref0 (self->priv->_map);
8185 G_OBJECT_CLASS (gee_tree_map_entry_set_parent_class)->finalize (obj);
8189 static GType gee_tree_map_entry_set_get_type (void) {
8190 static volatile gsize gee_tree_map_entry_set_type_id__volatile = 0;
8191 if (g_once_init_enter (&gee_tree_map_entry_set_type_id__volatile)) {
8192 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 };
8193 GType gee_tree_map_entry_set_type_id;
8194 gee_tree_map_entry_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeMapEntrySet", &g_define_type_info, 0);
8195 g_once_init_leave (&gee_tree_map_entry_set_type_id__volatile, gee_tree_map_entry_set_type_id);
8197 return gee_tree_map_entry_set_type_id__volatile;
8201 static void _vala_gee_tree_map_entry_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
8202 GeeTreeMapEntrySet * self;
8203 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_ENTRY_SET, GeeTreeMapEntrySet);
8204 switch (property_id) {
8205 case GEE_TREE_MAP_ENTRY_SET_SIZE:
8206 g_value_set_int (value, gee_abstract_collection_get_size ((GeeAbstractCollection*) self));
8208 case GEE_TREE_MAP_ENTRY_SET_READ_ONLY:
8209 g_value_set_boolean (value, gee_abstract_collection_get_read_only ((GeeAbstractCollection*) self));
8212 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
8218 static void _vala_gee_tree_map_entry_set_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
8219 GeeTreeMapEntrySet * self;
8220 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_ENTRY_SET, GeeTreeMapEntrySet);
8221 switch (property_id) {
8222 case GEE_TREE_MAP_ENTRY_SET_K_TYPE:
8223 self->priv->k_type = g_value_get_gtype (value);
8225 case GEE_TREE_MAP_ENTRY_SET_K_DUP_FUNC:
8226 self->priv->k_dup_func = g_value_get_pointer (value);
8228 case GEE_TREE_MAP_ENTRY_SET_K_DESTROY_FUNC:
8229 self->priv->k_destroy_func = g_value_get_pointer (value);
8231 case GEE_TREE_MAP_ENTRY_SET_V_TYPE:
8232 self->priv->v_type = g_value_get_gtype (value);
8234 case GEE_TREE_MAP_ENTRY_SET_V_DUP_FUNC:
8235 self->priv->v_dup_func = g_value_get_pointer (value);
8237 case GEE_TREE_MAP_ENTRY_SET_V_DESTROY_FUNC:
8238 self->priv->v_destroy_func = g_value_get_pointer (value);
8241 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
8247 static GeeTreeMapSubEntrySet* gee_tree_map_sub_entry_set_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, GeeTreeMap* map, GeeTreeMapRange* range) {
8248 GeeTreeMapSubEntrySet * self = NULL;
8250 GeeTreeMapRange* _tmp1_;
8251 g_return_val_if_fail (map != NULL, NULL);
8252 g_return_val_if_fail (range != NULL, NULL);
8253 self = (GeeTreeMapSubEntrySet*) gee_abstract_bidir_sorted_set_construct (object_type, GEE_MAP_TYPE_ENTRY, (GBoxedCopyFunc) g_object_ref, g_object_unref);
8254 self->priv->k_type = k_type;
8255 self->priv->k_dup_func = k_dup_func;
8256 self->priv->k_destroy_func = k_destroy_func;
8257 self->priv->v_type = v_type;
8258 self->priv->v_dup_func = v_dup_func;
8259 self->priv->v_destroy_func = v_destroy_func;
8261 gee_tree_map_sub_entry_set_set_map (self, _tmp0_);
8263 gee_tree_map_sub_entry_set_set_range (self, _tmp1_);
8268 static GeeTreeMapSubEntrySet* gee_tree_map_sub_entry_set_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range) {
8269 return gee_tree_map_sub_entry_set_construct (GEE_TREE_MAP_TYPE_SUB_ENTRY_SET, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, range);
8273 static GeeIterator* gee_tree_map_sub_entry_set_real_iterator (GeeAbstractCollection* base) {
8274 GeeTreeMapSubEntrySet * self;
8275 GeeIterator* result = NULL;
8277 GeeTreeMapRange* _tmp1_;
8278 GeeTreeMapSubEntryIterator* _tmp2_;
8279 self = (GeeTreeMapSubEntrySet*) base;
8280 _tmp0_ = self->priv->_map;
8281 _tmp1_ = self->priv->_range;
8282 _tmp2_ = gee_tree_map_sub_entry_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp1_);
8283 result = (GeeIterator*) _tmp2_;
8288 static gboolean gee_tree_map_sub_entry_set_real_add (GeeAbstractCollection* base, GeeMapEntry* entry) {
8289 GeeTreeMapSubEntrySet * self;
8290 gboolean result = FALSE;
8291 self = (GeeTreeMapSubEntrySet*) base;
8292 g_return_val_if_fail (entry != NULL, FALSE);
8293 g_assert_not_reached ();
8298 static void gee_tree_map_sub_entry_set_real_clear (GeeAbstractCollection* base) {
8299 GeeTreeMapSubEntrySet * self;
8300 self = (GeeTreeMapSubEntrySet*) base;
8301 g_assert_not_reached ();
8305 static gboolean gee_tree_map_sub_entry_set_real_remove (GeeAbstractCollection* base, GeeMapEntry* entry) {
8306 GeeTreeMapSubEntrySet * self;
8307 gboolean result = FALSE;
8308 self = (GeeTreeMapSubEntrySet*) base;
8309 g_return_val_if_fail (entry != NULL, FALSE);
8310 g_assert_not_reached ();
8315 static gboolean gee_tree_map_sub_entry_set_real_contains (GeeAbstractCollection* base, GeeMapEntry* entry) {
8316 GeeTreeMapSubEntrySet * self;
8317 gboolean result = FALSE;
8318 gboolean _tmp0_ = FALSE;
8319 GeeTreeMapRange* _tmp1_;
8320 GeeMapEntry* _tmp2_;
8321 gconstpointer _tmp3_;
8322 gconstpointer _tmp4_;
8323 gboolean _tmp5_ = FALSE;
8325 self = (GeeTreeMapSubEntrySet*) base;
8326 g_return_val_if_fail (entry != NULL, FALSE);
8327 _tmp1_ = self->priv->_range;
8329 _tmp3_ = gee_map_entry_get_key (_tmp2_);
8331 _tmp5_ = gee_tree_map_range_in_range (_tmp1_, _tmp4_);
8334 GeeMapEntry* _tmp7_;
8335 gconstpointer _tmp8_;
8336 gconstpointer _tmp9_;
8337 GeeMapEntry* _tmp10_;
8338 gconstpointer _tmp11_;
8339 gconstpointer _tmp12_;
8340 gboolean _tmp13_ = FALSE;
8341 _tmp6_ = self->priv->_map;
8343 _tmp8_ = gee_map_entry_get_key (_tmp7_);
8346 _tmp11_ = gee_map_entry_get_value (_tmp10_);
8348 _tmp13_ = gee_abstract_map_has ((GeeAbstractMap*) _tmp6_, _tmp9_, _tmp12_);
8359 static GeeBidirIterator* gee_tree_map_sub_entry_set_real_bidir_iterator (GeeAbstractBidirSortedSet* base) {
8360 GeeTreeMapSubEntrySet * self;
8361 GeeBidirIterator* result = NULL;
8363 GeeTreeMapRange* _tmp1_;
8364 GeeTreeMapSubEntryIterator* _tmp2_;
8365 self = (GeeTreeMapSubEntrySet*) base;
8366 _tmp0_ = self->priv->_map;
8367 _tmp1_ = self->priv->_range;
8368 _tmp2_ = gee_tree_map_sub_entry_iterator_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp1_);
8369 result = (GeeBidirIterator*) _tmp2_;
8374 static GeeMapEntry* gee_tree_map_sub_entry_set_real_first (GeeAbstractSortedSet* base) {
8375 GeeTreeMapSubEntrySet * self;
8376 GeeMapEntry* result = NULL;
8377 GeeTreeMapRange* _tmp0_;
8378 GeeTreeMapNode* _tmp1_ = NULL;
8379 GeeTreeMapNode* _first;
8380 GeeMapEntry* _tmp2_ = NULL;
8381 self = (GeeTreeMapSubEntrySet*) base;
8382 _tmp0_ = self->priv->_range;
8383 _tmp1_ = gee_tree_map_range_first (_tmp0_);
8385 _vala_assert (_first != NULL, "_first != null");
8386 _tmp2_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _first);
8392 static GeeMapEntry* gee_tree_map_sub_entry_set_real_last (GeeAbstractSortedSet* base) {
8393 GeeTreeMapSubEntrySet * self;
8394 GeeMapEntry* result = NULL;
8395 GeeTreeMapRange* _tmp0_;
8396 GeeTreeMapNode* _tmp1_ = NULL;
8397 GeeTreeMapNode* _last;
8398 GeeMapEntry* _tmp2_ = NULL;
8399 self = (GeeTreeMapSubEntrySet*) base;
8400 _tmp0_ = self->priv->_range;
8401 _tmp1_ = gee_tree_map_range_last (_tmp0_);
8403 _vala_assert (_last != NULL, "_last != null");
8404 _tmp2_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _last);
8410 static GeeSortedSet* gee_tree_map_sub_entry_set_real_head_set (GeeAbstractSortedSet* base, GeeMapEntry* before) {
8411 GeeTreeMapSubEntrySet * self;
8412 GeeSortedSet* result = NULL;
8414 GeeTreeMapRange* _tmp1_;
8415 GeeMapEntry* _tmp2_;
8416 gconstpointer _tmp3_;
8417 gconstpointer _tmp4_;
8418 GeeTreeMapRange* _tmp5_ = NULL;
8419 GeeTreeMapRange* _tmp6_;
8420 GeeTreeMapSubEntrySet* _tmp7_;
8421 GeeSortedSet* _tmp8_;
8422 self = (GeeTreeMapSubEntrySet*) base;
8423 g_return_val_if_fail (before != NULL, NULL);
8424 _tmp0_ = self->priv->_map;
8425 _tmp1_ = self->priv->_range;
8427 _tmp3_ = gee_map_entry_get_key (_tmp2_);
8429 _tmp5_ = gee_tree_map_range_cut_tail (_tmp1_, _tmp4_);
8431 _tmp7_ = gee_tree_map_sub_entry_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp6_);
8432 _tmp8_ = (GeeSortedSet*) _tmp7_;
8433 _gee_tree_map_range_unref0 (_tmp6_);
8439 static GeeSortedSet* gee_tree_map_sub_entry_set_real_tail_set (GeeAbstractSortedSet* base, GeeMapEntry* after) {
8440 GeeTreeMapSubEntrySet * self;
8441 GeeSortedSet* result = NULL;
8443 GeeTreeMapRange* _tmp1_;
8444 GeeMapEntry* _tmp2_;
8445 gconstpointer _tmp3_;
8446 gconstpointer _tmp4_;
8447 GeeTreeMapRange* _tmp5_ = NULL;
8448 GeeTreeMapRange* _tmp6_;
8449 GeeTreeMapSubEntrySet* _tmp7_;
8450 GeeSortedSet* _tmp8_;
8451 self = (GeeTreeMapSubEntrySet*) base;
8452 g_return_val_if_fail (after != NULL, NULL);
8453 _tmp0_ = self->priv->_map;
8454 _tmp1_ = self->priv->_range;
8456 _tmp3_ = gee_map_entry_get_key (_tmp2_);
8458 _tmp5_ = gee_tree_map_range_cut_head (_tmp1_, _tmp4_);
8460 _tmp7_ = gee_tree_map_sub_entry_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp6_);
8461 _tmp8_ = (GeeSortedSet*) _tmp7_;
8462 _gee_tree_map_range_unref0 (_tmp6_);
8468 static GeeSortedSet* gee_tree_map_sub_entry_set_real_sub_set (GeeAbstractSortedSet* base, GeeMapEntry* after, GeeMapEntry* before) {
8469 GeeTreeMapSubEntrySet * self;
8470 GeeSortedSet* result = NULL;
8472 GeeTreeMapRange* _tmp1_;
8473 GeeMapEntry* _tmp2_;
8474 gconstpointer _tmp3_;
8475 gconstpointer _tmp4_;
8476 GeeMapEntry* _tmp5_;
8477 gconstpointer _tmp6_;
8478 gconstpointer _tmp7_;
8479 GeeTreeMapRange* _tmp8_ = NULL;
8480 GeeTreeMapRange* _tmp9_;
8481 GeeTreeMapSubEntrySet* _tmp10_;
8482 GeeSortedSet* _tmp11_;
8483 self = (GeeTreeMapSubEntrySet*) base;
8484 g_return_val_if_fail (after != NULL, NULL);
8485 g_return_val_if_fail (before != NULL, NULL);
8486 _tmp0_ = self->priv->_map;
8487 _tmp1_ = self->priv->_range;
8489 _tmp3_ = gee_map_entry_get_key (_tmp2_);
8492 _tmp6_ = gee_map_entry_get_key (_tmp5_);
8494 _tmp8_ = gee_tree_map_range_cut (_tmp1_, _tmp4_, _tmp7_);
8496 _tmp10_ = gee_tree_map_sub_entry_set_new (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp9_);
8497 _tmp11_ = (GeeSortedSet*) _tmp10_;
8498 _gee_tree_map_range_unref0 (_tmp9_);
8504 static GeeIterator* gee_tree_map_sub_entry_set_real_iterator_at (GeeAbstractSortedSet* base, GeeMapEntry* entry) {
8505 GeeTreeMapSubEntrySet * self;
8506 GeeIterator* result = NULL;
8507 GeeTreeMapRange* _tmp0_;
8508 GeeMapEntry* _tmp1_;
8509 gconstpointer _tmp2_;
8510 gconstpointer _tmp3_;
8511 gboolean _tmp4_ = FALSE;
8513 GeeMapEntry* _tmp6_;
8514 gconstpointer _tmp7_;
8515 gconstpointer _tmp8_;
8516 GeeTreeMapNode* _tmp9_ = NULL;
8518 gboolean _tmp10_ = FALSE;
8519 GeeTreeMapNode* _tmp11_;
8521 GeeTreeMap* _tmp22_;
8522 GeeTreeMapRange* _tmp23_;
8523 GeeTreeMapNode* _tmp24_;
8524 GeeTreeMapSubEntryIterator* _tmp25_;
8525 self = (GeeTreeMapSubEntrySet*) base;
8526 g_return_val_if_fail (entry != NULL, NULL);
8527 _tmp0_ = self->priv->_range;
8529 _tmp2_ = gee_map_entry_get_key (_tmp1_);
8531 _tmp4_ = gee_tree_map_range_in_range (_tmp0_, _tmp3_);
8536 _tmp5_ = self->priv->_map;
8538 _tmp7_ = gee_map_entry_get_key (_tmp6_);
8540 _tmp9_ = gee_tree_map_find_node (_tmp5_, _tmp8_);
8543 if (_tmp11_ == NULL) {
8546 GeeTreeMap* _tmp12_;
8547 GeeEqualDataFunc _tmp13_;
8548 void* _tmp13__target;
8549 GeeEqualDataFunc _tmp14_;
8550 void* _tmp14__target;
8551 GeeTreeMapNode* _tmp15_;
8552 gconstpointer _tmp16_;
8553 GeeMapEntry* _tmp17_;
8554 gconstpointer _tmp18_;
8555 gconstpointer _tmp19_;
8556 gboolean _tmp20_ = FALSE;
8557 _tmp12_ = self->priv->_map;
8558 _tmp13_ = gee_tree_map_get_value_equal_func (_tmp12_, &_tmp13__target);
8560 _tmp14__target = _tmp13__target;
8562 _tmp16_ = _tmp15_->value;
8564 _tmp18_ = gee_map_entry_get_value (_tmp17_);
8566 _tmp20_ = _tmp14_ (_tmp16_, _tmp19_, _tmp14__target);
8574 _tmp22_ = self->priv->_map;
8575 _tmp23_ = self->priv->_range;
8577 _tmp25_ = gee_tree_map_sub_entry_iterator_new_pointing (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp22_, _tmp23_, _tmp24_);
8578 result = (GeeIterator*) _tmp25_;
8583 static GeeMapEntry* gee_tree_map_sub_entry_set_real_lower (GeeAbstractSortedSet* base, GeeMapEntry* entry) {
8584 GeeTreeMapSubEntrySet * self;
8585 GeeMapEntry* result = NULL;
8586 GeeTreeMapRange* _tmp0_;
8587 GeeMapEntry* _tmp1_;
8588 gconstpointer _tmp2_;
8589 gconstpointer _tmp3_;
8594 GeeMapEntry* _tmp8_;
8595 gconstpointer _tmp9_;
8596 gconstpointer _tmp10_;
8597 GeeTreeMapNode* _tmp11_ = NULL;
8599 GeeMapEntry* _tmp12_ = NULL;
8600 gboolean _tmp13_ = FALSE;
8601 GeeTreeMapNode* _tmp14_;
8603 self = (GeeTreeMapSubEntrySet*) base;
8604 g_return_val_if_fail (entry != NULL, NULL);
8605 _tmp0_ = self->priv->_range;
8607 _tmp2_ = gee_map_entry_get_key (_tmp1_);
8609 _tmp4_ = gee_tree_map_range_compare_range (_tmp0_, _tmp3_);
8613 gpointer _tmp6_ = NULL;
8614 _tmp6_ = gee_abstract_sorted_set_last ((GeeAbstractSortedSet*) self);
8615 result = (GeeMapEntry*) _tmp6_;
8618 _tmp7_ = self->priv->_map;
8620 _tmp9_ = gee_map_entry_get_key (_tmp8_);
8622 _tmp11_ = gee_tree_map_find_lower (_tmp7_, _tmp10_);
8625 if (_tmp14_ != NULL) {
8626 GeeTreeMapRange* _tmp15_;
8627 GeeTreeMapNode* _tmp16_;
8628 gconstpointer _tmp17_;
8629 gboolean _tmp18_ = FALSE;
8630 _tmp15_ = self->priv->_range;
8632 _tmp17_ = _tmp16_->key;
8633 _tmp18_ = gee_tree_map_range_in_range (_tmp15_, _tmp17_);
8640 GeeTreeMapNode* _tmp20_;
8641 GeeMapEntry* _tmp21_ = NULL;
8643 _tmp21_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp20_);
8644 _g_object_unref0 (_tmp12_);
8647 _g_object_unref0 (_tmp12_);
8655 static GeeMapEntry* gee_tree_map_sub_entry_set_real_higher (GeeAbstractSortedSet* base, GeeMapEntry* entry) {
8656 GeeTreeMapSubEntrySet * self;
8657 GeeMapEntry* result = NULL;
8658 GeeTreeMapRange* _tmp0_;
8659 GeeMapEntry* _tmp1_;
8660 gconstpointer _tmp2_;
8661 gconstpointer _tmp3_;
8666 GeeMapEntry* _tmp8_;
8667 gconstpointer _tmp9_;
8668 gconstpointer _tmp10_;
8669 GeeTreeMapNode* _tmp11_ = NULL;
8671 GeeMapEntry* _tmp12_ = NULL;
8672 gboolean _tmp13_ = FALSE;
8673 GeeTreeMapNode* _tmp14_;
8675 self = (GeeTreeMapSubEntrySet*) base;
8676 g_return_val_if_fail (entry != NULL, NULL);
8677 _tmp0_ = self->priv->_range;
8679 _tmp2_ = gee_map_entry_get_key (_tmp1_);
8681 _tmp4_ = gee_tree_map_range_compare_range (_tmp0_, _tmp3_);
8685 gpointer _tmp6_ = NULL;
8686 _tmp6_ = gee_abstract_sorted_set_first ((GeeAbstractSortedSet*) self);
8687 result = (GeeMapEntry*) _tmp6_;
8690 _tmp7_ = self->priv->_map;
8692 _tmp9_ = gee_map_entry_get_key (_tmp8_);
8694 _tmp11_ = gee_tree_map_find_higher (_tmp7_, _tmp10_);
8697 if (_tmp14_ != NULL) {
8698 GeeTreeMapRange* _tmp15_;
8699 GeeTreeMapNode* _tmp16_;
8700 gconstpointer _tmp17_;
8701 gboolean _tmp18_ = FALSE;
8702 _tmp15_ = self->priv->_range;
8704 _tmp17_ = _tmp16_->key;
8705 _tmp18_ = gee_tree_map_range_in_range (_tmp15_, _tmp17_);
8712 GeeTreeMapNode* _tmp20_;
8713 GeeMapEntry* _tmp21_ = NULL;
8715 _tmp21_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp20_);
8716 _g_object_unref0 (_tmp12_);
8719 _g_object_unref0 (_tmp12_);
8727 static GeeMapEntry* gee_tree_map_sub_entry_set_real_floor (GeeAbstractSortedSet* base, GeeMapEntry* entry) {
8728 GeeTreeMapSubEntrySet * self;
8729 GeeMapEntry* result = NULL;
8730 GeeTreeMapRange* _tmp0_;
8731 GeeMapEntry* _tmp1_;
8732 gconstpointer _tmp2_;
8733 gconstpointer _tmp3_;
8738 GeeMapEntry* _tmp8_;
8739 gconstpointer _tmp9_;
8740 gconstpointer _tmp10_;
8741 GeeTreeMapNode* _tmp11_ = NULL;
8743 GeeMapEntry* _tmp12_ = NULL;
8744 gboolean _tmp13_ = FALSE;
8745 GeeTreeMapNode* _tmp14_;
8747 self = (GeeTreeMapSubEntrySet*) base;
8748 g_return_val_if_fail (entry != NULL, NULL);
8749 _tmp0_ = self->priv->_range;
8751 _tmp2_ = gee_map_entry_get_key (_tmp1_);
8753 _tmp4_ = gee_tree_map_range_compare_range (_tmp0_, _tmp3_);
8757 gpointer _tmp6_ = NULL;
8758 _tmp6_ = gee_abstract_sorted_set_last ((GeeAbstractSortedSet*) self);
8759 result = (GeeMapEntry*) _tmp6_;
8762 _tmp7_ = self->priv->_map;
8764 _tmp9_ = gee_map_entry_get_key (_tmp8_);
8766 _tmp11_ = gee_tree_map_find_floor (_tmp7_, _tmp10_);
8769 if (_tmp14_ != NULL) {
8770 GeeTreeMapRange* _tmp15_;
8771 GeeTreeMapNode* _tmp16_;
8772 gconstpointer _tmp17_;
8773 gboolean _tmp18_ = FALSE;
8774 _tmp15_ = self->priv->_range;
8776 _tmp17_ = _tmp16_->key;
8777 _tmp18_ = gee_tree_map_range_in_range (_tmp15_, _tmp17_);
8784 GeeTreeMapNode* _tmp20_;
8785 GeeMapEntry* _tmp21_ = NULL;
8787 _tmp21_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp20_);
8788 _g_object_unref0 (_tmp12_);
8791 _g_object_unref0 (_tmp12_);
8799 static GeeMapEntry* gee_tree_map_sub_entry_set_real_ceil (GeeAbstractSortedSet* base, GeeMapEntry* entry) {
8800 GeeTreeMapSubEntrySet * self;
8801 GeeMapEntry* result = NULL;
8802 GeeTreeMapRange* _tmp0_;
8803 GeeMapEntry* _tmp1_;
8804 gconstpointer _tmp2_;
8805 gconstpointer _tmp3_;
8810 GeeMapEntry* _tmp8_;
8811 gconstpointer _tmp9_;
8812 gconstpointer _tmp10_;
8813 GeeTreeMapNode* _tmp11_ = NULL;
8815 GeeMapEntry* _tmp12_ = NULL;
8816 gboolean _tmp13_ = FALSE;
8817 GeeTreeMapNode* _tmp14_;
8819 self = (GeeTreeMapSubEntrySet*) base;
8820 g_return_val_if_fail (entry != NULL, NULL);
8821 _tmp0_ = self->priv->_range;
8823 _tmp2_ = gee_map_entry_get_key (_tmp1_);
8825 _tmp4_ = gee_tree_map_range_compare_range (_tmp0_, _tmp3_);
8829 gpointer _tmp6_ = NULL;
8830 _tmp6_ = gee_abstract_sorted_set_first ((GeeAbstractSortedSet*) self);
8831 result = (GeeMapEntry*) _tmp6_;
8834 _tmp7_ = self->priv->_map;
8836 _tmp9_ = gee_map_entry_get_key (_tmp8_);
8838 _tmp11_ = gee_tree_map_find_ceil (_tmp7_, _tmp10_);
8841 if (_tmp14_ != NULL) {
8842 GeeTreeMapRange* _tmp15_;
8843 GeeTreeMapNode* _tmp16_;
8844 gconstpointer _tmp17_;
8845 gboolean _tmp18_ = FALSE;
8846 _tmp15_ = self->priv->_range;
8848 _tmp17_ = _tmp16_->key;
8849 _tmp18_ = gee_tree_map_range_in_range (_tmp15_, _tmp17_);
8856 GeeTreeMapNode* _tmp20_;
8857 GeeMapEntry* _tmp21_ = NULL;
8859 _tmp21_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp20_);
8860 _g_object_unref0 (_tmp12_);
8863 _g_object_unref0 (_tmp12_);
8871 static GeeTreeMap* gee_tree_map_sub_entry_set_get_map (GeeTreeMapSubEntrySet* self) {
8874 g_return_val_if_fail (self != NULL, NULL);
8875 _tmp0_ = self->priv->_map;
8881 static void gee_tree_map_sub_entry_set_set_map (GeeTreeMapSubEntrySet* self, GeeTreeMap* value) {
8884 g_return_if_fail (self != NULL);
8886 _tmp1_ = _g_object_ref0 (_tmp0_);
8887 _g_object_unref0 (self->priv->_map);
8888 self->priv->_map = _tmp1_;
8892 static GeeTreeMapRange* gee_tree_map_sub_entry_set_get_range (GeeTreeMapSubEntrySet* self) {
8893 GeeTreeMapRange* result;
8894 GeeTreeMapRange* _tmp0_;
8895 g_return_val_if_fail (self != NULL, NULL);
8896 _tmp0_ = self->priv->_range;
8902 static void gee_tree_map_sub_entry_set_set_range (GeeTreeMapSubEntrySet* self, GeeTreeMapRange* value) {
8903 GeeTreeMapRange* _tmp0_;
8904 GeeTreeMapRange* _tmp1_;
8905 g_return_if_fail (self != NULL);
8907 _tmp1_ = _gee_tree_map_range_ref0 (_tmp0_);
8908 _gee_tree_map_range_unref0 (self->priv->_range);
8909 self->priv->_range = _tmp1_;
8913 static gint gee_tree_map_sub_entry_set_real_get_size (GeeAbstractCollection* base) {
8915 GeeTreeMapSubEntrySet* self;
8917 GeeIterator* _tmp0_ = NULL;
8918 GeeIterator* iterator;
8920 self = (GeeTreeMapSubEntrySet*) base;
8922 _tmp0_ = gee_abstract_collection_iterator ((GeeAbstractCollection*) self);
8925 GeeIterator* _tmp1_;
8926 gboolean _tmp2_ = FALSE;
8929 _tmp2_ = gee_iterator_next (_tmp1_);
8938 _g_object_unref0 (iterator);
8943 static gboolean gee_tree_map_sub_entry_set_real_get_read_only (GeeAbstractCollection* base) {
8945 GeeTreeMapSubEntrySet* self;
8946 self = (GeeTreeMapSubEntrySet*) base;
8952 static gboolean gee_tree_map_sub_entry_set_get_is_empty (GeeTreeMapSubEntrySet* self) {
8954 GeeTreeMapRange* _tmp0_;
8955 gboolean _tmp1_ = FALSE;
8956 g_return_val_if_fail (self != NULL, FALSE);
8957 _tmp0_ = self->priv->_range;
8958 _tmp1_ = gee_tree_map_range_empty_submap (_tmp0_);
8964 static void gee_tree_map_sub_entry_set_class_init (GeeTreeMapSubEntrySetClass * klass) {
8965 gee_tree_map_sub_entry_set_parent_class = g_type_class_peek_parent (klass);
8966 g_type_class_add_private (klass, sizeof (GeeTreeMapSubEntrySetPrivate));
8967 GEE_ABSTRACT_COLLECTION_CLASS (klass)->iterator = gee_tree_map_sub_entry_set_real_iterator;
8968 GEE_ABSTRACT_COLLECTION_CLASS (klass)->add = gee_tree_map_sub_entry_set_real_add;
8969 GEE_ABSTRACT_COLLECTION_CLASS (klass)->clear = gee_tree_map_sub_entry_set_real_clear;
8970 GEE_ABSTRACT_COLLECTION_CLASS (klass)->remove = gee_tree_map_sub_entry_set_real_remove;
8971 GEE_ABSTRACT_COLLECTION_CLASS (klass)->contains = gee_tree_map_sub_entry_set_real_contains;
8972 GEE_ABSTRACT_BIDIR_SORTED_SET_CLASS (klass)->bidir_iterator = gee_tree_map_sub_entry_set_real_bidir_iterator;
8973 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->first = gee_tree_map_sub_entry_set_real_first;
8974 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->last = gee_tree_map_sub_entry_set_real_last;
8975 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->head_set = gee_tree_map_sub_entry_set_real_head_set;
8976 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->tail_set = gee_tree_map_sub_entry_set_real_tail_set;
8977 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->sub_set = gee_tree_map_sub_entry_set_real_sub_set;
8978 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->iterator_at = gee_tree_map_sub_entry_set_real_iterator_at;
8979 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->lower = gee_tree_map_sub_entry_set_real_lower;
8980 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->higher = gee_tree_map_sub_entry_set_real_higher;
8981 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->floor = gee_tree_map_sub_entry_set_real_floor;
8982 GEE_ABSTRACT_SORTED_SET_CLASS (klass)->ceil = gee_tree_map_sub_entry_set_real_ceil;
8983 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_size = gee_tree_map_sub_entry_set_real_get_size;
8984 GEE_ABSTRACT_COLLECTION_CLASS (klass)->get_read_only = gee_tree_map_sub_entry_set_real_get_read_only;
8985 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_sub_entry_set_get_property;
8986 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_sub_entry_set_set_property;
8987 G_OBJECT_CLASS (klass)->finalize = gee_tree_map_sub_entry_set_finalize;
8988 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_SET_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
8989 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_SET_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
8990 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_SET_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
8991 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_SET_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
8992 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_SET_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
8993 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_SET_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
8994 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_SET_MAP, g_param_spec_object ("map", "map", "map", GEE_TYPE_TREE_MAP, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
8995 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_SET_RANGE, gee_tree_map_param_spec_range ("range", "range", "range", GEE_TREE_MAP_TYPE_RANGE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
8996 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_SET_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
8997 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_SET_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
8998 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_SET_IS_EMPTY, g_param_spec_boolean ("is-empty", "is-empty", "is-empty", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
9002 static void gee_tree_map_sub_entry_set_instance_init (GeeTreeMapSubEntrySet * self) {
9003 self->priv = GEE_TREE_MAP_SUB_ENTRY_SET_GET_PRIVATE (self);
9007 static void gee_tree_map_sub_entry_set_finalize (GObject* obj) {
9008 GeeTreeMapSubEntrySet * self;
9009 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TREE_MAP_TYPE_SUB_ENTRY_SET, GeeTreeMapSubEntrySet);
9010 _g_object_unref0 (self->priv->_map);
9011 _gee_tree_map_range_unref0 (self->priv->_range);
9012 G_OBJECT_CLASS (gee_tree_map_sub_entry_set_parent_class)->finalize (obj);
9016 static GType gee_tree_map_sub_entry_set_get_type (void) {
9017 static volatile gsize gee_tree_map_sub_entry_set_type_id__volatile = 0;
9018 if (g_once_init_enter (&gee_tree_map_sub_entry_set_type_id__volatile)) {
9019 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 };
9020 GType gee_tree_map_sub_entry_set_type_id;
9021 gee_tree_map_sub_entry_set_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, "GeeTreeMapSubEntrySet", &g_define_type_info, 0);
9022 g_once_init_leave (&gee_tree_map_sub_entry_set_type_id__volatile, gee_tree_map_sub_entry_set_type_id);
9024 return gee_tree_map_sub_entry_set_type_id__volatile;
9028 static void _vala_gee_tree_map_sub_entry_set_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
9029 GeeTreeMapSubEntrySet * self;
9030 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_ENTRY_SET, GeeTreeMapSubEntrySet);
9031 switch (property_id) {
9032 case GEE_TREE_MAP_SUB_ENTRY_SET_MAP:
9033 g_value_set_object (value, gee_tree_map_sub_entry_set_get_map (self));
9035 case GEE_TREE_MAP_SUB_ENTRY_SET_RANGE:
9036 gee_tree_map_value_set_range (value, gee_tree_map_sub_entry_set_get_range (self));
9038 case GEE_TREE_MAP_SUB_ENTRY_SET_SIZE:
9039 g_value_set_int (value, gee_abstract_collection_get_size ((GeeAbstractCollection*) self));
9041 case GEE_TREE_MAP_SUB_ENTRY_SET_READ_ONLY:
9042 g_value_set_boolean (value, gee_abstract_collection_get_read_only ((GeeAbstractCollection*) self));
9044 case GEE_TREE_MAP_SUB_ENTRY_SET_IS_EMPTY:
9045 g_value_set_boolean (value, gee_tree_map_sub_entry_set_get_is_empty (self));
9048 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
9054 static void _vala_gee_tree_map_sub_entry_set_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
9055 GeeTreeMapSubEntrySet * self;
9056 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_ENTRY_SET, GeeTreeMapSubEntrySet);
9057 switch (property_id) {
9058 case GEE_TREE_MAP_SUB_ENTRY_SET_MAP:
9059 gee_tree_map_sub_entry_set_set_map (self, g_value_get_object (value));
9061 case GEE_TREE_MAP_SUB_ENTRY_SET_RANGE:
9062 gee_tree_map_sub_entry_set_set_range (self, gee_tree_map_value_get_range (value));
9064 case GEE_TREE_MAP_SUB_ENTRY_SET_K_TYPE:
9065 self->priv->k_type = g_value_get_gtype (value);
9067 case GEE_TREE_MAP_SUB_ENTRY_SET_K_DUP_FUNC:
9068 self->priv->k_dup_func = g_value_get_pointer (value);
9070 case GEE_TREE_MAP_SUB_ENTRY_SET_K_DESTROY_FUNC:
9071 self->priv->k_destroy_func = g_value_get_pointer (value);
9073 case GEE_TREE_MAP_SUB_ENTRY_SET_V_TYPE:
9074 self->priv->v_type = g_value_get_gtype (value);
9076 case GEE_TREE_MAP_SUB_ENTRY_SET_V_DUP_FUNC:
9077 self->priv->v_dup_func = g_value_get_pointer (value);
9079 case GEE_TREE_MAP_SUB_ENTRY_SET_V_DESTROY_FUNC:
9080 self->priv->v_destroy_func = g_value_get_pointer (value);
9083 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
9089 static GeeTreeMapNodeIterator* gee_tree_map_node_iterator_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, GeeTreeMap* map) {
9090 GeeTreeMapNodeIterator * self = NULL;
9095 g_return_val_if_fail (map != NULL, NULL);
9096 self = (GeeTreeMapNodeIterator*) g_object_new (object_type, NULL);
9097 self->priv->k_type = k_type;
9098 self->priv->k_dup_func = k_dup_func;
9099 self->priv->k_destroy_func = k_destroy_func;
9100 self->priv->v_type = v_type;
9101 self->priv->v_dup_func = v_dup_func;
9102 self->priv->v_destroy_func = v_destroy_func;
9104 _tmp1_ = _g_object_ref0 (_tmp0_);
9105 _g_object_unref0 (self->_map);
9106 self->_map = _tmp1_;
9107 _tmp2_ = self->_map;
9108 _tmp3_ = _tmp2_->priv->stamp;
9109 self->stamp = _tmp3_;
9114 static GeeTreeMapNodeIterator* gee_tree_map_node_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map) {
9115 return gee_tree_map_node_iterator_construct (GEE_TREE_MAP_TYPE_NODE_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map);
9119 static GeeTreeMapNodeIterator* gee_tree_map_node_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapNode* current) {
9120 GeeTreeMapNodeIterator * self = NULL;
9125 GeeTreeMapNode* _tmp4_;
9126 g_return_val_if_fail (map != NULL, NULL);
9127 g_return_val_if_fail (current != NULL, NULL);
9128 self = (GeeTreeMapNodeIterator*) g_object_new (object_type, NULL);
9129 self->priv->k_type = k_type;
9130 self->priv->k_dup_func = k_dup_func;
9131 self->priv->k_destroy_func = k_destroy_func;
9132 self->priv->v_type = v_type;
9133 self->priv->v_dup_func = v_dup_func;
9134 self->priv->v_destroy_func = v_destroy_func;
9136 _tmp1_ = _g_object_ref0 (_tmp0_);
9137 _g_object_unref0 (self->_map);
9138 self->_map = _tmp1_;
9139 _tmp2_ = self->_map;
9140 _tmp3_ = _tmp2_->priv->stamp;
9141 self->stamp = _tmp3_;
9143 self->current = _tmp4_;
9148 static GeeTreeMapNodeIterator* gee_tree_map_node_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapNode* current) {
9149 return gee_tree_map_node_iterator_construct_pointing (GEE_TREE_MAP_TYPE_NODE_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, current);
9153 static gboolean gee_tree_map_node_iterator_next (GeeTreeMapNodeIterator* self) {
9154 gboolean result = FALSE;
9158 GeeTreeMapNode* _tmp3_;
9159 g_return_val_if_fail (self != NULL, FALSE);
9160 _tmp0_ = self->stamp;
9161 _tmp1_ = self->_map;
9162 _tmp2_ = _tmp1_->priv->stamp;
9163 _vala_assert (_tmp0_ == _tmp2_, "stamp == _map.stamp");
9164 _tmp3_ = self->current;
9165 if (_tmp3_ != NULL) {
9166 GeeTreeMapNode* _tmp4_;
9167 GeeTreeMapNode* _tmp5_;
9168 _tmp4_ = self->current;
9169 _tmp5_ = _tmp4_->next;
9170 if (_tmp5_ != NULL) {
9171 GeeTreeMapNode* _tmp6_;
9172 GeeTreeMapNode* _tmp7_;
9173 _tmp6_ = self->current;
9174 _tmp7_ = _tmp6_->next;
9175 self->current = _tmp7_;
9183 gboolean _tmp8_ = FALSE;
9184 GeeTreeMapNode* _tmp9_;
9186 _tmp9_ = self->_next;
9187 if (_tmp9_ == NULL) {
9188 GeeTreeMapNode* _tmp10_;
9189 _tmp10_ = self->_prev;
9190 _tmp8_ = _tmp10_ == NULL;
9196 GeeTreeMap* _tmp12_;
9197 GeeTreeMapNode* _tmp13_;
9198 GeeTreeMapNode* _tmp14_;
9199 _tmp12_ = self->_map;
9200 _tmp13_ = _tmp12_->priv->first;
9201 self->current = _tmp13_;
9202 self->started = TRUE;
9203 _tmp14_ = self->current;
9204 result = _tmp14_ != NULL;
9207 GeeTreeMapNode* _tmp15_;
9208 GeeTreeMapNode* _tmp16_;
9209 GeeTreeMapNode* _tmp17_;
9210 _tmp15_ = self->_next;
9211 self->current = _tmp15_;
9212 _tmp16_ = self->current;
9213 if (_tmp16_ != NULL) {
9217 _tmp17_ = self->current;
9218 result = _tmp17_ != NULL;
9225 static gboolean gee_tree_map_node_iterator_has_next (GeeTreeMapNodeIterator* self) {
9226 gboolean result = FALSE;
9230 gboolean _tmp3_ = FALSE;
9231 gboolean _tmp4_ = FALSE;
9232 gboolean _tmp5_ = FALSE;
9233 gboolean _tmp6_ = FALSE;
9234 gboolean _tmp7_ = FALSE;
9235 GeeTreeMapNode* _tmp8_;
9241 g_return_val_if_fail (self != NULL, FALSE);
9242 _tmp0_ = self->stamp;
9243 _tmp1_ = self->_map;
9244 _tmp2_ = _tmp1_->priv->stamp;
9245 _vala_assert (_tmp0_ == _tmp2_, "stamp == _map.stamp");
9246 _tmp8_ = self->current;
9247 if (_tmp8_ == NULL) {
9248 GeeTreeMapNode* _tmp9_;
9249 _tmp9_ = self->_next;
9250 _tmp7_ = _tmp9_ == NULL;
9256 GeeTreeMapNode* _tmp11_;
9257 _tmp11_ = self->_prev;
9258 _tmp6_ = _tmp11_ == NULL;
9264 GeeTreeMap* _tmp13_;
9265 GeeTreeMapNode* _tmp14_;
9266 _tmp13_ = self->_map;
9267 _tmp14_ = _tmp13_->priv->first;
9268 _tmp5_ = _tmp14_ != NULL;
9276 gboolean _tmp16_ = FALSE;
9277 GeeTreeMapNode* _tmp17_;
9279 _tmp17_ = self->current;
9280 if (_tmp17_ == NULL) {
9281 GeeTreeMapNode* _tmp18_;
9282 _tmp18_ = self->_next;
9283 _tmp16_ = _tmp18_ != NULL;
9294 gboolean _tmp21_ = FALSE;
9295 GeeTreeMapNode* _tmp22_;
9297 _tmp22_ = self->current;
9298 if (_tmp22_ != NULL) {
9299 GeeTreeMapNode* _tmp23_;
9300 GeeTreeMapNode* _tmp24_;
9301 _tmp23_ = self->current;
9302 _tmp24_ = _tmp23_->next;
9303 _tmp21_ = _tmp24_ != NULL;
9316 static gboolean gee_tree_map_node_iterator_first (GeeTreeMapNodeIterator* self) {
9317 gboolean result = FALSE;
9322 GeeTreeMapNode* _tmp4_;
9323 GeeTreeMapNode* _tmp5_;
9324 g_return_val_if_fail (self != NULL, FALSE);
9325 _tmp0_ = self->stamp;
9326 _tmp1_ = self->_map;
9327 _tmp2_ = _tmp1_->priv->stamp;
9328 _vala_assert (_tmp0_ == _tmp2_, "stamp == _map.stamp");
9329 _tmp3_ = self->_map;
9330 _tmp4_ = _tmp3_->priv->first;
9331 self->current = _tmp4_;
9334 _tmp5_ = self->current;
9335 result = _tmp5_ != NULL;
9340 static gboolean gee_tree_map_node_iterator_previous (GeeTreeMapNodeIterator* self) {
9341 gboolean result = FALSE;
9345 GeeTreeMapNode* _tmp3_;
9346 g_return_val_if_fail (self != NULL, FALSE);
9347 _tmp0_ = self->stamp;
9348 _tmp1_ = self->_map;
9349 _tmp2_ = _tmp1_->priv->stamp;
9350 _vala_assert (_tmp0_ == _tmp2_, "stamp == _map.stamp");
9351 _tmp3_ = self->current;
9352 if (_tmp3_ != NULL) {
9353 GeeTreeMapNode* _tmp4_;
9354 GeeTreeMapNode* _tmp5_;
9355 _tmp4_ = self->current;
9356 _tmp5_ = _tmp4_->prev;
9357 if (_tmp5_ != NULL) {
9358 GeeTreeMapNode* _tmp6_;
9359 GeeTreeMapNode* _tmp7_;
9360 _tmp6_ = self->current;
9361 _tmp7_ = _tmp6_->prev;
9362 self->current = _tmp7_;
9370 GeeTreeMapNode* _tmp8_;
9371 _tmp8_ = self->_prev;
9372 if (_tmp8_ != NULL) {
9373 GeeTreeMapNode* _tmp9_;
9374 _tmp9_ = self->_prev;
9375 self->current = _tmp9_;
9388 static gboolean gee_tree_map_node_iterator_has_previous (GeeTreeMapNodeIterator* self) {
9389 gboolean result = FALSE;
9393 gboolean _tmp3_ = FALSE;
9394 gboolean _tmp4_ = FALSE;
9395 GeeTreeMapNode* _tmp5_;
9398 g_return_val_if_fail (self != NULL, FALSE);
9399 _tmp0_ = self->stamp;
9400 _tmp1_ = self->_map;
9401 _tmp2_ = _tmp1_->priv->stamp;
9402 _vala_assert (_tmp0_ == _tmp2_, "stamp == _map.stamp");
9403 _tmp5_ = self->current;
9404 if (_tmp5_ == NULL) {
9405 GeeTreeMapNode* _tmp6_;
9406 _tmp6_ = self->_prev;
9407 _tmp4_ = _tmp6_ != NULL;
9415 gboolean _tmp8_ = FALSE;
9416 GeeTreeMapNode* _tmp9_;
9418 _tmp9_ = self->current;
9419 if (_tmp9_ != NULL) {
9420 GeeTreeMapNode* _tmp10_;
9421 GeeTreeMapNode* _tmp11_;
9422 _tmp10_ = self->current;
9423 _tmp11_ = _tmp10_->prev;
9424 _tmp8_ = _tmp11_ != NULL;
9437 static gboolean gee_tree_map_node_iterator_last (GeeTreeMapNodeIterator* self) {
9438 gboolean result = FALSE;
9443 GeeTreeMapNode* _tmp4_;
9444 GeeTreeMapNode* _tmp5_;
9445 g_return_val_if_fail (self != NULL, FALSE);
9446 _tmp0_ = self->stamp;
9447 _tmp1_ = self->_map;
9448 _tmp2_ = _tmp1_->priv->stamp;
9449 _vala_assert (_tmp0_ == _tmp2_, "stamp == _map.stamp");
9450 _tmp3_ = self->_map;
9451 _tmp4_ = _tmp3_->priv->last;
9452 self->current = _tmp4_;
9455 _tmp5_ = self->current;
9456 result = _tmp5_ != NULL;
9461 static void gee_tree_map_node_iterator_remove (GeeTreeMapNodeIterator* self) {
9462 g_return_if_fail (self != NULL);
9463 g_assert_not_reached ();
9467 static void gee_tree_map_node_iterator_unset (GeeTreeMapNodeIterator* self) {
9471 GeeTreeMapNode* _tmp3_;
9472 gpointer value = NULL;
9475 GeeTreeMapNode* _tmp6_;
9476 gconstpointer _tmp7_;
9477 gpointer _tmp8_ = NULL;
9478 GeeTreeMapNode* _tmp9_ = NULL;
9479 GeeTreeMapNode* _tmp10_ = NULL;
9480 gboolean _tmp11_ = FALSE;
9483 GeeTreeMap* _tmp13_;
9484 GeeTreeMapNode* _tmp14_;
9486 GeeTreeMap* _tmp18_;
9489 GeeTreeMap* _tmp21_;
9491 g_return_if_fail (self != NULL);
9492 _tmp0_ = self->stamp;
9493 _tmp1_ = self->_map;
9494 _tmp2_ = _tmp1_->priv->stamp;
9495 _vala_assert (_tmp0_ == _tmp2_, "stamp == _map.stamp");
9496 _tmp3_ = self->current;
9497 _vala_assert (_tmp3_ != NULL, "current != null");
9498 _tmp4_ = self->_map;
9499 _tmp5_ = self->_map;
9500 _tmp6_ = self->current;
9501 _tmp7_ = _tmp6_->key;
9502 _tmp11_ = gee_tree_map_remove_from_node (_tmp4_, &_tmp5_->priv->root, _tmp7_, &_tmp8_, &_tmp9_, &_tmp10_);
9503 ((value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (value = (self->priv->v_destroy_func (value), NULL));
9505 self->_prev = _tmp9_;
9506 self->_next = _tmp10_;
9509 _vala_assert (_tmp12_, "success");
9510 _tmp13_ = self->_map;
9511 _tmp14_ = _tmp13_->priv->root;
9512 if (_tmp14_ != NULL) {
9513 GeeTreeMap* _tmp15_;
9514 GeeTreeMapNode* _tmp16_;
9515 _tmp15_ = self->_map;
9516 _tmp16_ = _tmp15_->priv->root;
9517 _tmp16_->color = GEE_TREE_MAP_NODE_COLOR_BLACK;
9519 self->current = NULL;
9520 _tmp17_ = self->stamp;
9521 self->stamp = _tmp17_ + 1;
9522 _tmp18_ = self->_map;
9523 _tmp19_ = _tmp18_->priv->stamp;
9524 _tmp18_->priv->stamp = _tmp19_ + 1;
9525 _tmp20_ = self->stamp;
9526 _tmp21_ = self->_map;
9527 _tmp22_ = _tmp21_->priv->stamp;
9528 _vala_assert (_tmp20_ == _tmp22_, "stamp == _map.stamp");
9529 ((value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (value = (self->priv->v_destroy_func (value), NULL));
9533 static GeeTreeMapNode* gee_tree_map_node_iterator_safe_next_get (GeeTreeMapNodeIterator* self) {
9534 GeeTreeMapNode* result = NULL;
9535 GeeTreeMapNode* _tmp0_ = NULL;
9536 GeeTreeMapNode* _tmp1_;
9537 GeeTreeMapNode* _tmp5_;
9538 g_return_val_if_fail (self != NULL, NULL);
9539 _tmp1_ = self->current;
9540 if (_tmp1_ != NULL) {
9541 GeeTreeMapNode* _tmp2_;
9542 GeeTreeMapNode* _tmp3_;
9543 _tmp2_ = self->current;
9544 _tmp3_ = _tmp2_->next;
9547 GeeTreeMapNode* _tmp4_;
9548 _tmp4_ = self->_next;
9557 static GeeTreeMapNode* gee_tree_map_node_iterator_safe_previous_get (GeeTreeMapNodeIterator* self) {
9558 GeeTreeMapNode* result = NULL;
9559 GeeTreeMapNode* _tmp0_ = NULL;
9560 GeeTreeMapNode* _tmp1_;
9561 GeeTreeMapNode* _tmp5_;
9562 g_return_val_if_fail (self != NULL, NULL);
9563 _tmp1_ = self->current;
9564 if (_tmp1_ != NULL) {
9565 GeeTreeMapNode* _tmp2_;
9566 GeeTreeMapNode* _tmp3_;
9567 _tmp2_ = self->current;
9568 _tmp3_ = _tmp2_->prev;
9571 GeeTreeMapNode* _tmp4_;
9572 _tmp4_ = self->_prev;
9581 static gboolean gee_tree_map_node_iterator_get_read_only (GeeTreeMapNodeIterator* self) {
9582 g_return_val_if_fail (self != NULL, FALSE);
9583 return GEE_TREE_MAP_NODE_ITERATOR_GET_CLASS (self)->get_read_only (self);
9587 static gboolean gee_tree_map_node_iterator_real_get_read_only (GeeTreeMapNodeIterator* base) {
9589 GeeTreeMapNodeIterator* self;
9596 static gboolean gee_tree_map_node_iterator_get_valid (GeeTreeMapNodeIterator* self) {
9598 GeeTreeMapNode* _tmp0_;
9599 g_return_val_if_fail (self != NULL, FALSE);
9600 _tmp0_ = self->current;
9601 result = _tmp0_ != NULL;
9606 static void gee_tree_map_node_iterator_class_init (GeeTreeMapNodeIteratorClass * klass) {
9607 gee_tree_map_node_iterator_parent_class = g_type_class_peek_parent (klass);
9608 g_type_class_add_private (klass, sizeof (GeeTreeMapNodeIteratorPrivate));
9609 GEE_TREE_MAP_NODE_ITERATOR_CLASS (klass)->get_read_only = gee_tree_map_node_iterator_real_get_read_only;
9610 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_node_iterator_get_property;
9611 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_node_iterator_set_property;
9612 G_OBJECT_CLASS (klass)->finalize = gee_tree_map_node_iterator_finalize;
9613 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_NODE_ITERATOR_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
9614 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_NODE_ITERATOR_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
9615 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_NODE_ITERATOR_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
9616 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_NODE_ITERATOR_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
9617 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_NODE_ITERATOR_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
9618 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_NODE_ITERATOR_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
9619 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_NODE_ITERATOR_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
9620 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_NODE_ITERATOR_VALID, g_param_spec_boolean ("valid", "valid", "valid", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
9624 static void gee_tree_map_node_iterator_instance_init (GeeTreeMapNodeIterator * self) {
9625 self->priv = GEE_TREE_MAP_NODE_ITERATOR_GET_PRIVATE (self);
9626 self->started = FALSE;
9630 static void gee_tree_map_node_iterator_finalize (GObject* obj) {
9631 GeeTreeMapNodeIterator * self;
9632 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TREE_MAP_TYPE_NODE_ITERATOR, GeeTreeMapNodeIterator);
9633 _g_object_unref0 (self->_map);
9634 G_OBJECT_CLASS (gee_tree_map_node_iterator_parent_class)->finalize (obj);
9638 static GType gee_tree_map_node_iterator_get_type (void) {
9639 static volatile gsize gee_tree_map_node_iterator_type_id__volatile = 0;
9640 if (g_once_init_enter (&gee_tree_map_node_iterator_type_id__volatile)) {
9641 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 };
9642 GType gee_tree_map_node_iterator_type_id;
9643 gee_tree_map_node_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTreeMapNodeIterator", &g_define_type_info, 0);
9644 g_once_init_leave (&gee_tree_map_node_iterator_type_id__volatile, gee_tree_map_node_iterator_type_id);
9646 return gee_tree_map_node_iterator_type_id__volatile;
9650 static void _vala_gee_tree_map_node_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
9651 GeeTreeMapNodeIterator * self;
9652 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_NODE_ITERATOR, GeeTreeMapNodeIterator);
9653 switch (property_id) {
9654 case GEE_TREE_MAP_NODE_ITERATOR_READ_ONLY:
9655 g_value_set_boolean (value, gee_tree_map_node_iterator_get_read_only (self));
9657 case GEE_TREE_MAP_NODE_ITERATOR_VALID:
9658 g_value_set_boolean (value, gee_tree_map_node_iterator_get_valid (self));
9661 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
9667 static void _vala_gee_tree_map_node_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
9668 GeeTreeMapNodeIterator * self;
9669 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_NODE_ITERATOR, GeeTreeMapNodeIterator);
9670 switch (property_id) {
9671 case GEE_TREE_MAP_NODE_ITERATOR_K_TYPE:
9672 self->priv->k_type = g_value_get_gtype (value);
9674 case GEE_TREE_MAP_NODE_ITERATOR_K_DUP_FUNC:
9675 self->priv->k_dup_func = g_value_get_pointer (value);
9677 case GEE_TREE_MAP_NODE_ITERATOR_K_DESTROY_FUNC:
9678 self->priv->k_destroy_func = g_value_get_pointer (value);
9680 case GEE_TREE_MAP_NODE_ITERATOR_V_TYPE:
9681 self->priv->v_type = g_value_get_gtype (value);
9683 case GEE_TREE_MAP_NODE_ITERATOR_V_DUP_FUNC:
9684 self->priv->v_dup_func = g_value_get_pointer (value);
9686 case GEE_TREE_MAP_NODE_ITERATOR_V_DESTROY_FUNC:
9687 self->priv->v_destroy_func = g_value_get_pointer (value);
9690 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
9696 static GeeTreeMapSubNodeIterator* gee_tree_map_sub_node_iterator_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, GeeTreeMap* map, GeeTreeMapRange* range) {
9697 GeeTreeMapSubNodeIterator * self = NULL;
9700 GeeTreeMapRange* _tmp2_;
9701 GeeTreeMapRange* _tmp3_;
9702 g_return_val_if_fail (map != NULL, NULL);
9703 g_return_val_if_fail (range != NULL, NULL);
9704 self = (GeeTreeMapSubNodeIterator*) g_object_new (object_type, NULL);
9705 self->priv->k_type = k_type;
9706 self->priv->k_dup_func = k_dup_func;
9707 self->priv->k_destroy_func = k_destroy_func;
9708 self->priv->v_type = v_type;
9709 self->priv->v_dup_func = v_dup_func;
9710 self->priv->v_destroy_func = v_destroy_func;
9712 _tmp1_ = _g_object_ref0 (_tmp0_);
9713 _g_object_unref0 (self->_map);
9714 self->_map = _tmp1_;
9716 _tmp3_ = _gee_tree_map_range_ref0 (_tmp2_);
9717 _gee_tree_map_range_unref0 (self->range);
9718 self->range = _tmp3_;
9723 static GeeTreeMapSubNodeIterator* gee_tree_map_sub_node_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range) {
9724 return gee_tree_map_sub_node_iterator_construct (GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, range);
9728 static GeeTreeMapSubNodeIterator* gee_tree_map_sub_node_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node) {
9729 GeeTreeMapSubNodeIterator * self = NULL;
9732 GeeTreeMapRange* _tmp2_;
9733 GeeTreeMapRange* _tmp3_;
9735 GeeTreeMapNode* _tmp5_;
9736 GeeTreeMapNodeIterator* _tmp6_;
9737 g_return_val_if_fail (map != NULL, NULL);
9738 g_return_val_if_fail (range != NULL, NULL);
9739 g_return_val_if_fail (node != NULL, NULL);
9740 self = (GeeTreeMapSubNodeIterator*) g_object_new (object_type, NULL);
9741 self->priv->k_type = k_type;
9742 self->priv->k_dup_func = k_dup_func;
9743 self->priv->k_destroy_func = k_destroy_func;
9744 self->priv->v_type = v_type;
9745 self->priv->v_dup_func = v_dup_func;
9746 self->priv->v_destroy_func = v_destroy_func;
9748 _tmp1_ = _g_object_ref0 (_tmp0_);
9749 _g_object_unref0 (self->_map);
9750 self->_map = _tmp1_;
9752 _tmp3_ = _gee_tree_map_range_ref0 (_tmp2_);
9753 _gee_tree_map_range_unref0 (self->range);
9754 self->range = _tmp3_;
9755 _tmp4_ = self->_map;
9757 _tmp6_ = gee_tree_map_node_iterator_new_pointing (k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp4_, _tmp5_);
9758 _g_object_unref0 (self->iterator);
9759 self->iterator = _tmp6_;
9764 static GeeTreeMapSubNodeIterator* gee_tree_map_sub_node_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node) {
9765 return gee_tree_map_sub_node_iterator_construct_pointing (GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, range, node);
9769 static gboolean gee_tree_map_sub_node_iterator_next (GeeTreeMapSubNodeIterator* self) {
9770 gboolean result = FALSE;
9771 GeeTreeMapNodeIterator* _tmp0_;
9772 g_return_val_if_fail (self != NULL, FALSE);
9773 _tmp0_ = self->iterator;
9774 if (_tmp0_ != NULL) {
9775 GeeTreeMapNodeIterator* _tmp1_;
9776 GeeTreeMapNode* _tmp2_ = NULL;
9777 GeeTreeMapNode* node;
9778 gboolean _tmp3_ = FALSE;
9779 GeeTreeMapNode* _tmp4_;
9781 _tmp1_ = self->iterator;
9782 _tmp2_ = gee_tree_map_node_iterator_safe_next_get (_tmp1_);
9785 if (_tmp4_ != NULL) {
9786 GeeTreeMapRange* _tmp5_;
9787 GeeTreeMapNode* _tmp6_;
9788 gconstpointer _tmp7_;
9789 gboolean _tmp8_ = FALSE;
9790 _tmp5_ = self->range;
9792 _tmp7_ = _tmp6_->key;
9793 _tmp8_ = gee_tree_map_range_in_range (_tmp5_, _tmp7_);
9800 GeeTreeMapNodeIterator* _tmp10_;
9801 gboolean _tmp11_ = FALSE;
9802 _tmp10_ = self->iterator;
9803 _tmp11_ = gee_tree_map_node_iterator_next (_tmp10_);
9804 _vala_assert (_tmp11_, "iterator.next ()");
9812 gboolean _tmp12_ = FALSE;
9813 _tmp12_ = gee_tree_map_sub_node_iterator_first (self);
9820 static gboolean gee_tree_map_sub_node_iterator_has_next (GeeTreeMapSubNodeIterator* self) {
9821 gboolean result = FALSE;
9822 GeeTreeMapNodeIterator* _tmp0_;
9823 g_return_val_if_fail (self != NULL, FALSE);
9824 _tmp0_ = self->iterator;
9825 if (_tmp0_ != NULL) {
9826 GeeTreeMapNodeIterator* _tmp1_;
9827 GeeTreeMapNode* _tmp2_ = NULL;
9828 GeeTreeMapNode* node;
9829 gboolean _tmp3_ = FALSE;
9830 GeeTreeMapNode* _tmp4_;
9832 _tmp1_ = self->iterator;
9833 _tmp2_ = gee_tree_map_node_iterator_safe_next_get (_tmp1_);
9836 if (_tmp4_ != NULL) {
9837 GeeTreeMapRange* _tmp5_;
9838 GeeTreeMapNode* _tmp6_;
9839 gconstpointer _tmp7_;
9840 gboolean _tmp8_ = FALSE;
9841 _tmp5_ = self->range;
9843 _tmp7_ = _tmp6_->key;
9844 _tmp8_ = gee_tree_map_range_in_range (_tmp5_, _tmp7_);
9853 GeeTreeMapRange* _tmp10_;
9854 GeeTreeMapNode* _tmp11_ = NULL;
9855 _tmp10_ = self->range;
9856 _tmp11_ = gee_tree_map_range_first (_tmp10_);
9857 result = _tmp11_ != NULL;
9863 static gboolean gee_tree_map_sub_node_iterator_real_first (GeeTreeMapSubNodeIterator* self) {
9864 gboolean result = FALSE;
9865 GeeTreeMapRange* _tmp0_;
9866 GeeTreeMapNode* _tmp1_ = NULL;
9867 GeeTreeMapNode* node;
9868 GeeTreeMapNode* _tmp2_;
9869 GeeTreeMapNode* _tmp3_;
9870 GeeTreeMapNodeIterator* _tmp4_ = NULL;
9871 _tmp0_ = self->range;
9872 _tmp1_ = gee_tree_map_range_first (_tmp0_);
9875 if (_tmp2_ == NULL) {
9880 _tmp4_ = gee_tree_map_sub_node_iterator_iterator_pointing_at (self, _tmp3_);
9881 _g_object_unref0 (self->iterator);
9882 self->iterator = _tmp4_;
9888 gboolean gee_tree_map_sub_node_iterator_first (GeeTreeMapSubNodeIterator* self) {
9889 g_return_val_if_fail (self != NULL, FALSE);
9890 return GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_CLASS (self)->first (self);
9894 static gboolean gee_tree_map_sub_node_iterator_previous (GeeTreeMapSubNodeIterator* self) {
9895 gboolean result = FALSE;
9896 GeeTreeMapNodeIterator* _tmp0_;
9897 GeeTreeMapNode* node = NULL;
9898 gboolean _tmp1_ = FALSE;
9899 GeeTreeMapNodeIterator* _tmp2_;
9900 GeeTreeMapNode* _tmp3_ = NULL;
9901 GeeTreeMapNode* _tmp4_;
9903 g_return_val_if_fail (self != NULL, FALSE);
9904 _tmp0_ = self->iterator;
9905 if (_tmp0_ == NULL) {
9909 _tmp2_ = self->iterator;
9910 _tmp3_ = gee_tree_map_node_iterator_safe_previous_get (_tmp2_);
9913 if (_tmp4_ != NULL) {
9914 GeeTreeMapRange* _tmp5_;
9915 GeeTreeMapNode* _tmp6_;
9916 gconstpointer _tmp7_;
9917 gboolean _tmp8_ = FALSE;
9918 _tmp5_ = self->range;
9920 _tmp7_ = _tmp6_->key;
9921 _tmp8_ = gee_tree_map_range_in_range (_tmp5_, _tmp7_);
9928 GeeTreeMapNodeIterator* _tmp10_;
9929 gboolean _tmp11_ = FALSE;
9930 _tmp10_ = self->iterator;
9931 _tmp11_ = gee_tree_map_node_iterator_previous (_tmp10_);
9932 _vala_assert (_tmp11_, "iterator.previous ()");
9942 static gboolean gee_tree_map_sub_node_iterator_has_previous (GeeTreeMapSubNodeIterator* self) {
9943 gboolean result = FALSE;
9944 GeeTreeMapNodeIterator* _tmp0_;
9945 GeeTreeMapNode* node = NULL;
9946 gboolean _tmp1_ = FALSE;
9947 GeeTreeMapNodeIterator* _tmp2_;
9948 GeeTreeMapNode* _tmp3_ = NULL;
9949 GeeTreeMapNode* _tmp4_;
9951 g_return_val_if_fail (self != NULL, FALSE);
9952 _tmp0_ = self->iterator;
9953 if (_tmp0_ == NULL) {
9957 _tmp2_ = self->iterator;
9958 _tmp3_ = gee_tree_map_node_iterator_safe_previous_get (_tmp2_);
9961 if (_tmp4_ != NULL) {
9962 GeeTreeMapRange* _tmp5_;
9963 GeeTreeMapNode* _tmp6_;
9964 gconstpointer _tmp7_;
9965 gboolean _tmp8_ = FALSE;
9966 _tmp5_ = self->range;
9968 _tmp7_ = _tmp6_->key;
9969 _tmp8_ = gee_tree_map_range_in_range (_tmp5_, _tmp7_);
9980 static gboolean gee_tree_map_sub_node_iterator_real_last (GeeTreeMapSubNodeIterator* self) {
9981 gboolean result = FALSE;
9982 GeeTreeMapRange* _tmp0_;
9983 GeeTreeMapNode* _tmp1_ = NULL;
9984 GeeTreeMapNode* node;
9985 GeeTreeMapNode* _tmp2_;
9986 GeeTreeMapNode* _tmp3_;
9987 GeeTreeMapNodeIterator* _tmp4_ = NULL;
9988 _tmp0_ = self->range;
9989 _tmp1_ = gee_tree_map_range_last (_tmp0_);
9992 if (_tmp2_ == NULL) {
9997 _tmp4_ = gee_tree_map_sub_node_iterator_iterator_pointing_at (self, _tmp3_);
9998 _g_object_unref0 (self->iterator);
9999 self->iterator = _tmp4_;
10005 gboolean gee_tree_map_sub_node_iterator_last (GeeTreeMapSubNodeIterator* self) {
10006 g_return_val_if_fail (self != NULL, FALSE);
10007 return GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_CLASS (self)->last (self);
10011 static void gee_tree_map_sub_node_iterator_remove (GeeTreeMapSubNodeIterator* self) {
10014 GeeTreeMapNodeIterator* _tmp2_;
10015 g_return_if_fail (self != NULL);
10016 _tmp0_ = gee_tree_map_sub_node_iterator_get_valid (self);
10018 _vala_assert (_tmp1_, "valid");
10019 _tmp2_ = self->iterator;
10020 gee_tree_map_node_iterator_remove (_tmp2_);
10024 static void gee_tree_map_sub_node_iterator_unset (GeeTreeMapSubNodeIterator* self) {
10027 GeeTreeMapNodeIterator* _tmp2_;
10028 g_return_if_fail (self != NULL);
10029 _tmp0_ = gee_tree_map_sub_node_iterator_get_valid (self);
10031 _vala_assert (_tmp1_, "valid");
10032 _tmp2_ = self->iterator;
10033 gee_tree_map_node_iterator_unset (_tmp2_);
10037 static GeeTreeMapNodeIterator* gee_tree_map_sub_node_iterator_real_iterator_pointing_at (GeeTreeMapSubNodeIterator* self, GeeTreeMapNode* node) {
10038 GeeTreeMapNodeIterator* result = NULL;
10039 GeeTreeMap* _tmp0_;
10040 GeeTreeMapNode* _tmp1_;
10041 GeeTreeMapNodeIterator* _tmp2_;
10042 g_return_val_if_fail (node != NULL, NULL);
10043 _tmp0_ = self->_map;
10045 _tmp2_ = gee_tree_map_node_iterator_new_pointing (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp0_, _tmp1_);
10051 GeeTreeMapNodeIterator* gee_tree_map_sub_node_iterator_iterator_pointing_at (GeeTreeMapSubNodeIterator* self, GeeTreeMapNode* node) {
10052 g_return_val_if_fail (self != NULL, NULL);
10053 return GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_CLASS (self)->iterator_pointing_at (self, node);
10057 static gboolean gee_tree_map_sub_node_iterator_get_read_only (GeeTreeMapSubNodeIterator* self) {
10058 g_return_val_if_fail (self != NULL, FALSE);
10059 return GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_CLASS (self)->get_read_only (self);
10063 static gboolean gee_tree_map_sub_node_iterator_real_get_read_only (GeeTreeMapSubNodeIterator* base) {
10065 GeeTreeMapSubNodeIterator* self;
10072 static gboolean gee_tree_map_sub_node_iterator_get_valid (GeeTreeMapSubNodeIterator* self) {
10074 gboolean _tmp0_ = FALSE;
10075 GeeTreeMapNodeIterator* _tmp1_;
10077 g_return_val_if_fail (self != NULL, FALSE);
10078 _tmp1_ = self->iterator;
10079 if (_tmp1_ != NULL) {
10080 GeeTreeMapNodeIterator* _tmp2_;
10083 _tmp2_ = self->iterator;
10084 _tmp3_ = gee_tree_map_node_iterator_get_valid (_tmp2_);
10096 static void gee_tree_map_sub_node_iterator_class_init (GeeTreeMapSubNodeIteratorClass * klass) {
10097 gee_tree_map_sub_node_iterator_parent_class = g_type_class_peek_parent (klass);
10098 g_type_class_add_private (klass, sizeof (GeeTreeMapSubNodeIteratorPrivate));
10099 GEE_TREE_MAP_SUB_NODE_ITERATOR_CLASS (klass)->first = gee_tree_map_sub_node_iterator_real_first;
10100 GEE_TREE_MAP_SUB_NODE_ITERATOR_CLASS (klass)->last = gee_tree_map_sub_node_iterator_real_last;
10101 GEE_TREE_MAP_SUB_NODE_ITERATOR_CLASS (klass)->iterator_pointing_at = gee_tree_map_sub_node_iterator_real_iterator_pointing_at;
10102 GEE_TREE_MAP_SUB_NODE_ITERATOR_CLASS (klass)->get_read_only = gee_tree_map_sub_node_iterator_real_get_read_only;
10103 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_sub_node_iterator_get_property;
10104 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_sub_node_iterator_set_property;
10105 G_OBJECT_CLASS (klass)->finalize = gee_tree_map_sub_node_iterator_finalize;
10106 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_NODE_ITERATOR_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10107 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_NODE_ITERATOR_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10108 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_NODE_ITERATOR_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10109 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_NODE_ITERATOR_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10110 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_NODE_ITERATOR_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10111 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_NODE_ITERATOR_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10112 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_NODE_ITERATOR_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
10113 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_NODE_ITERATOR_VALID, g_param_spec_boolean ("valid", "valid", "valid", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
10117 static void gee_tree_map_sub_node_iterator_instance_init (GeeTreeMapSubNodeIterator * self) {
10118 self->priv = GEE_TREE_MAP_SUB_NODE_ITERATOR_GET_PRIVATE (self);
10119 self->iterator = NULL;
10123 static void gee_tree_map_sub_node_iterator_finalize (GObject* obj) {
10124 GeeTreeMapSubNodeIterator * self;
10125 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, GeeTreeMapSubNodeIterator);
10126 _g_object_unref0 (self->_map);
10127 _gee_tree_map_range_unref0 (self->range);
10128 _g_object_unref0 (self->iterator);
10129 G_OBJECT_CLASS (gee_tree_map_sub_node_iterator_parent_class)->finalize (obj);
10133 static GType gee_tree_map_sub_node_iterator_get_type (void) {
10134 static volatile gsize gee_tree_map_sub_node_iterator_type_id__volatile = 0;
10135 if (g_once_init_enter (&gee_tree_map_sub_node_iterator_type_id__volatile)) {
10136 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 };
10137 GType gee_tree_map_sub_node_iterator_type_id;
10138 gee_tree_map_sub_node_iterator_type_id = g_type_register_static (G_TYPE_OBJECT, "GeeTreeMapSubNodeIterator", &g_define_type_info, 0);
10139 g_once_init_leave (&gee_tree_map_sub_node_iterator_type_id__volatile, gee_tree_map_sub_node_iterator_type_id);
10141 return gee_tree_map_sub_node_iterator_type_id__volatile;
10145 static void _vala_gee_tree_map_sub_node_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
10146 GeeTreeMapSubNodeIterator * self;
10147 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, GeeTreeMapSubNodeIterator);
10148 switch (property_id) {
10149 case GEE_TREE_MAP_SUB_NODE_ITERATOR_READ_ONLY:
10150 g_value_set_boolean (value, gee_tree_map_sub_node_iterator_get_read_only (self));
10152 case GEE_TREE_MAP_SUB_NODE_ITERATOR_VALID:
10153 g_value_set_boolean (value, gee_tree_map_sub_node_iterator_get_valid (self));
10156 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
10162 static void _vala_gee_tree_map_sub_node_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
10163 GeeTreeMapSubNodeIterator * self;
10164 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_NODE_ITERATOR, GeeTreeMapSubNodeIterator);
10165 switch (property_id) {
10166 case GEE_TREE_MAP_SUB_NODE_ITERATOR_K_TYPE:
10167 self->priv->k_type = g_value_get_gtype (value);
10169 case GEE_TREE_MAP_SUB_NODE_ITERATOR_K_DUP_FUNC:
10170 self->priv->k_dup_func = g_value_get_pointer (value);
10172 case GEE_TREE_MAP_SUB_NODE_ITERATOR_K_DESTROY_FUNC:
10173 self->priv->k_destroy_func = g_value_get_pointer (value);
10175 case GEE_TREE_MAP_SUB_NODE_ITERATOR_V_TYPE:
10176 self->priv->v_type = g_value_get_gtype (value);
10178 case GEE_TREE_MAP_SUB_NODE_ITERATOR_V_DUP_FUNC:
10179 self->priv->v_dup_func = g_value_get_pointer (value);
10181 case GEE_TREE_MAP_SUB_NODE_ITERATOR_V_DESTROY_FUNC:
10182 self->priv->v_destroy_func = g_value_get_pointer (value);
10185 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
10191 static GeeTreeMapKeyIterator* gee_tree_map_key_iterator_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, GeeTreeMap* map) {
10192 GeeTreeMapKeyIterator * self = NULL;
10193 GeeTreeMap* _tmp0_;
10194 g_return_val_if_fail (map != NULL, NULL);
10196 self = (GeeTreeMapKeyIterator*) gee_tree_map_node_iterator_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_);
10197 self->priv->k_type = k_type;
10198 self->priv->k_dup_func = k_dup_func;
10199 self->priv->k_destroy_func = k_destroy_func;
10200 self->priv->v_type = v_type;
10201 self->priv->v_dup_func = v_dup_func;
10202 self->priv->v_destroy_func = v_destroy_func;
10207 static GeeTreeMapKeyIterator* gee_tree_map_key_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map) {
10208 return gee_tree_map_key_iterator_construct (GEE_TREE_MAP_TYPE_KEY_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map);
10212 static GeeTreeMapKeyIterator* gee_tree_map_key_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapNode* current) {
10213 GeeTreeMapKeyIterator * self = NULL;
10214 GeeTreeMap* _tmp0_;
10215 GeeTreeMapNode* _tmp1_;
10216 g_return_val_if_fail (map != NULL, NULL);
10217 g_return_val_if_fail (current != NULL, NULL);
10220 self = (GeeTreeMapKeyIterator*) gee_tree_map_node_iterator_construct_pointing (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_, _tmp1_);
10221 self->priv->k_type = k_type;
10222 self->priv->k_dup_func = k_dup_func;
10223 self->priv->k_destroy_func = k_destroy_func;
10224 self->priv->v_type = v_type;
10225 self->priv->v_dup_func = v_dup_func;
10226 self->priv->v_destroy_func = v_destroy_func;
10231 static GeeTreeMapKeyIterator* gee_tree_map_key_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapNode* current) {
10232 return gee_tree_map_key_iterator_construct_pointing (GEE_TREE_MAP_TYPE_KEY_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, current);
10236 static gpointer gee_tree_map_key_iterator_real_get (GeeIterator* base) {
10237 GeeTreeMapKeyIterator * self;
10238 gpointer result = NULL;
10240 GeeTreeMap* _tmp1_;
10242 GeeTreeMapNode* _tmp3_;
10243 GeeTreeMapNode* _tmp4_;
10244 gconstpointer _tmp5_;
10246 self = (GeeTreeMapKeyIterator*) base;
10247 _tmp0_ = ((GeeTreeMapNodeIterator*) self)->stamp;
10248 _tmp1_ = ((GeeTreeMapNodeIterator*) self)->_map;
10249 _tmp2_ = _tmp1_->priv->stamp;
10250 _vala_assert (_tmp0_ == _tmp2_, "stamp == _map.stamp");
10251 _tmp3_ = ((GeeTreeMapNodeIterator*) self)->current;
10252 _vala_assert (_tmp3_ != NULL, "current != null");
10253 _tmp4_ = ((GeeTreeMapNodeIterator*) self)->current;
10254 _tmp5_ = _tmp4_->key;
10255 _tmp6_ = ((_tmp5_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp5_) : ((gpointer) _tmp5_);
10261 static gboolean gee_tree_map_key_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target) {
10262 GeeTreeMapKeyIterator * self;
10263 gboolean result = FALSE;
10264 GeeTreeMapNode* _tmp0_;
10265 self = (GeeTreeMapKeyIterator*) base;
10266 _tmp0_ = ((GeeTreeMapNodeIterator*) self)->current;
10267 if (_tmp0_ != NULL) {
10268 GeeForallFunc _tmp1_;
10269 void* _tmp1__target;
10270 GeeTreeMapNode* _tmp2_;
10271 gconstpointer _tmp3_;
10273 gboolean _tmp5_ = FALSE;
10274 GeeTreeMapNode* _tmp6_;
10275 GeeTreeMapNode* _tmp7_;
10277 _tmp1__target = f_target;
10278 _tmp2_ = ((GeeTreeMapNodeIterator*) self)->current;
10279 _tmp3_ = _tmp2_->key;
10280 _tmp4_ = ((_tmp3_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp3_) : ((gpointer) _tmp3_);
10281 _tmp5_ = _tmp1_ (_tmp4_, _tmp1__target);
10286 _tmp6_ = ((GeeTreeMapNodeIterator*) self)->current;
10287 _tmp7_ = _tmp6_->next;
10288 ((GeeTreeMapNodeIterator*) self)->current = _tmp7_;
10290 GeeTreeMapNode* _tmp8_;
10291 _tmp8_ = ((GeeTreeMapNodeIterator*) self)->_next;
10292 if (_tmp8_ == NULL) {
10293 GeeTreeMap* _tmp9_;
10294 GeeTreeMapNode* _tmp10_;
10295 _tmp9_ = ((GeeTreeMapNodeIterator*) self)->_map;
10296 _tmp10_ = _tmp9_->priv->first;
10297 ((GeeTreeMapNodeIterator*) self)->current = _tmp10_;
10298 ((GeeTreeMapNodeIterator*) self)->started = TRUE;
10300 GeeTreeMapNode* _tmp11_;
10301 GeeTreeMapNode* _tmp12_;
10302 _tmp11_ = ((GeeTreeMapNodeIterator*) self)->_next;
10303 ((GeeTreeMapNodeIterator*) self)->current = _tmp11_;
10304 _tmp12_ = ((GeeTreeMapNodeIterator*) self)->current;
10305 if (_tmp12_ != NULL) {
10306 ((GeeTreeMapNodeIterator*) self)->_next = NULL;
10307 ((GeeTreeMapNodeIterator*) self)->_prev = NULL;
10316 GeeTreeMapNode* _tmp17_;
10317 GeeForallFunc _tmp18_;
10318 void* _tmp18__target;
10319 GeeTreeMapNode* _tmp19_;
10320 gconstpointer _tmp20_;
10322 gboolean _tmp22_ = FALSE;
10325 GeeTreeMapNode* _tmp15_;
10326 GeeTreeMapNode* _tmp16_;
10327 _tmp15_ = ((GeeTreeMapNodeIterator*) self)->current;
10328 _tmp16_ = _tmp15_->next;
10329 ((GeeTreeMapNodeIterator*) self)->current = _tmp16_;
10332 _tmp17_ = ((GeeTreeMapNodeIterator*) self)->current;
10333 if (!(_tmp17_ != NULL)) {
10337 _tmp18__target = f_target;
10338 _tmp19_ = ((GeeTreeMapNodeIterator*) self)->current;
10339 _tmp20_ = _tmp19_->key;
10340 _tmp21_ = ((_tmp20_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp20_) : ((gpointer) _tmp20_);
10341 _tmp22_ = _tmp18_ (_tmp21_, _tmp18__target);
10353 static void gee_tree_map_key_iterator_class_init (GeeTreeMapKeyIteratorClass * klass) {
10354 gee_tree_map_key_iterator_parent_class = g_type_class_peek_parent (klass);
10355 g_type_class_add_private (klass, sizeof (GeeTreeMapKeyIteratorPrivate));
10356 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_key_iterator_get_property;
10357 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_key_iterator_set_property;
10358 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_ITERATOR_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10359 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_ITERATOR_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10360 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_ITERATOR_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10361 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_ITERATOR_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10362 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_ITERATOR_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10363 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEY_ITERATOR_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10367 static GType gee_tree_map_key_iterator_gee_traversable_get_g_type (GeeTreeMapKeyIterator* self) {
10368 return self->priv->k_type;
10372 static GBoxedCopyFunc gee_tree_map_key_iterator_gee_traversable_get_g_dup_func (GeeTreeMapKeyIterator* self) {
10373 return self->priv->k_dup_func;
10377 static GDestroyNotify gee_tree_map_key_iterator_gee_traversable_get_g_destroy_func (GeeTreeMapKeyIterator* self) {
10378 return self->priv->k_destroy_func;
10382 static void gee_tree_map_key_iterator_gee_traversable_interface_init (GeeTraversableIface * iface) {
10383 gee_tree_map_key_iterator_gee_traversable_parent_iface = g_type_interface_peek_parent (iface);
10384 iface->foreach = (gboolean (*)(GeeTraversable*, GeeForallFunc, void*)) gee_tree_map_key_iterator_real_foreach;
10385 iface->get_g_type = (GType(*)(GeeTraversable*)) gee_tree_map_key_iterator_gee_traversable_get_g_type;
10386 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeTraversable*)) gee_tree_map_key_iterator_gee_traversable_get_g_dup_func;
10387 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeTraversable*)) gee_tree_map_key_iterator_gee_traversable_get_g_destroy_func;
10391 static void gee_tree_map_key_iterator_gee_iterator_interface_init (GeeIteratorIface * iface) {
10392 gee_tree_map_key_iterator_gee_iterator_parent_iface = g_type_interface_peek_parent (iface);
10393 iface->get = (gpointer (*)(GeeIterator*)) gee_tree_map_key_iterator_real_get;
10394 iface->next = (gboolean (*)(GeeIterator*)) gee_tree_map_node_iterator_next;
10395 iface->has_next = (gboolean (*)(GeeIterator*)) gee_tree_map_node_iterator_has_next;
10396 iface->remove = (void (*)(GeeIterator*)) gee_tree_map_node_iterator_remove;
10397 iface->get_valid = (gboolean (*) (GeeIterator *)) gee_tree_map_node_iterator_get_valid;
10398 iface->get_read_only = (gboolean (*) (GeeIterator *)) gee_tree_map_node_iterator_get_read_only;
10402 static GType gee_tree_map_key_iterator_gee_bidir_iterator_get_g_type (GeeTreeMapKeyIterator* self) {
10403 return self->priv->k_type;
10407 static GBoxedCopyFunc gee_tree_map_key_iterator_gee_bidir_iterator_get_g_dup_func (GeeTreeMapKeyIterator* self) {
10408 return self->priv->k_dup_func;
10412 static GDestroyNotify gee_tree_map_key_iterator_gee_bidir_iterator_get_g_destroy_func (GeeTreeMapKeyIterator* self) {
10413 return self->priv->k_destroy_func;
10417 static void gee_tree_map_key_iterator_gee_bidir_iterator_interface_init (GeeBidirIteratorIface * iface) {
10418 gee_tree_map_key_iterator_gee_bidir_iterator_parent_iface = g_type_interface_peek_parent (iface);
10419 iface->get_g_type = (GType(*)(GeeBidirIterator*)) gee_tree_map_key_iterator_gee_bidir_iterator_get_g_type;
10420 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeBidirIterator*)) gee_tree_map_key_iterator_gee_bidir_iterator_get_g_dup_func;
10421 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeBidirIterator*)) gee_tree_map_key_iterator_gee_bidir_iterator_get_g_destroy_func;
10422 iface->previous = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_node_iterator_previous;
10423 iface->has_previous = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_node_iterator_has_previous;
10424 iface->first = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_node_iterator_first;
10425 iface->last = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_node_iterator_last;
10429 static void gee_tree_map_key_iterator_instance_init (GeeTreeMapKeyIterator * self) {
10430 self->priv = GEE_TREE_MAP_KEY_ITERATOR_GET_PRIVATE (self);
10434 static GType gee_tree_map_key_iterator_get_type (void) {
10435 static volatile gsize gee_tree_map_key_iterator_type_id__volatile = 0;
10436 if (g_once_init_enter (&gee_tree_map_key_iterator_type_id__volatile)) {
10437 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 };
10438 static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_key_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
10439 static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_key_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
10440 static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_key_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
10441 GType gee_tree_map_key_iterator_type_id;
10442 gee_tree_map_key_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_NODE_ITERATOR, "GeeTreeMapKeyIterator", &g_define_type_info, 0);
10443 g_type_add_interface_static (gee_tree_map_key_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info);
10444 g_type_add_interface_static (gee_tree_map_key_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info);
10445 g_type_add_interface_static (gee_tree_map_key_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info);
10446 g_once_init_leave (&gee_tree_map_key_iterator_type_id__volatile, gee_tree_map_key_iterator_type_id);
10448 return gee_tree_map_key_iterator_type_id__volatile;
10452 static void _vala_gee_tree_map_key_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
10453 GeeTreeMapKeyIterator * self;
10454 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_KEY_ITERATOR, GeeTreeMapKeyIterator);
10455 switch (property_id) {
10457 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
10463 static void _vala_gee_tree_map_key_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
10464 GeeTreeMapKeyIterator * self;
10465 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_KEY_ITERATOR, GeeTreeMapKeyIterator);
10466 switch (property_id) {
10467 case GEE_TREE_MAP_KEY_ITERATOR_K_TYPE:
10468 self->priv->k_type = g_value_get_gtype (value);
10470 case GEE_TREE_MAP_KEY_ITERATOR_K_DUP_FUNC:
10471 self->priv->k_dup_func = g_value_get_pointer (value);
10473 case GEE_TREE_MAP_KEY_ITERATOR_K_DESTROY_FUNC:
10474 self->priv->k_destroy_func = g_value_get_pointer (value);
10476 case GEE_TREE_MAP_KEY_ITERATOR_V_TYPE:
10477 self->priv->v_type = g_value_get_gtype (value);
10479 case GEE_TREE_MAP_KEY_ITERATOR_V_DUP_FUNC:
10480 self->priv->v_dup_func = g_value_get_pointer (value);
10482 case GEE_TREE_MAP_KEY_ITERATOR_V_DESTROY_FUNC:
10483 self->priv->v_destroy_func = g_value_get_pointer (value);
10486 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
10492 static GeeTreeMapSubKeyIterator* gee_tree_map_sub_key_iterator_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, GeeTreeMap* map, GeeTreeMapRange* range) {
10493 GeeTreeMapSubKeyIterator * self = NULL;
10494 GeeTreeMap* _tmp0_;
10495 GeeTreeMapRange* _tmp1_;
10496 g_return_val_if_fail (map != NULL, NULL);
10497 g_return_val_if_fail (range != NULL, NULL);
10500 self = (GeeTreeMapSubKeyIterator*) gee_tree_map_sub_node_iterator_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_, _tmp1_);
10501 self->priv->k_type = k_type;
10502 self->priv->k_dup_func = k_dup_func;
10503 self->priv->k_destroy_func = k_destroy_func;
10504 self->priv->v_type = v_type;
10505 self->priv->v_dup_func = v_dup_func;
10506 self->priv->v_destroy_func = v_destroy_func;
10511 static GeeTreeMapSubKeyIterator* gee_tree_map_sub_key_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range) {
10512 return gee_tree_map_sub_key_iterator_construct (GEE_TREE_MAP_TYPE_SUB_KEY_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, range);
10516 static GeeTreeMapSubKeyIterator* gee_tree_map_sub_key_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node) {
10517 GeeTreeMapSubKeyIterator * self = NULL;
10518 GeeTreeMap* _tmp0_;
10519 GeeTreeMapRange* _tmp1_;
10520 GeeTreeMapNode* _tmp2_;
10521 g_return_val_if_fail (map != NULL, NULL);
10522 g_return_val_if_fail (range != NULL, NULL);
10523 g_return_val_if_fail (node != NULL, NULL);
10527 self = (GeeTreeMapSubKeyIterator*) gee_tree_map_sub_node_iterator_construct_pointing (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_, _tmp1_, _tmp2_);
10528 self->priv->k_type = k_type;
10529 self->priv->k_dup_func = k_dup_func;
10530 self->priv->k_destroy_func = k_destroy_func;
10531 self->priv->v_type = v_type;
10532 self->priv->v_dup_func = v_dup_func;
10533 self->priv->v_destroy_func = v_destroy_func;
10538 static GeeTreeMapSubKeyIterator* gee_tree_map_sub_key_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node) {
10539 return gee_tree_map_sub_key_iterator_construct_pointing (GEE_TREE_MAP_TYPE_SUB_KEY_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, range, node);
10543 static gpointer gee_tree_map_sub_key_iterator_real_get (GeeIterator* base) {
10544 GeeTreeMapSubKeyIterator * self;
10545 gpointer result = NULL;
10548 GeeTreeMapNodeIterator* _tmp2_;
10549 GeeTreeMapNode* _tmp3_;
10550 gconstpointer _tmp4_;
10552 self = (GeeTreeMapSubKeyIterator*) base;
10553 _tmp0_ = gee_iterator_get_valid ((GeeIterator*) self);
10555 _vala_assert (_tmp1_, "valid");
10556 _tmp2_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
10557 _tmp3_ = _tmp2_->current;
10558 _tmp4_ = _tmp3_->key;
10559 _tmp5_ = ((_tmp4_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_);
10565 static gboolean gee_tree_map_sub_key_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target) {
10566 GeeTreeMapSubKeyIterator * self;
10567 gboolean result = FALSE;
10570 self = (GeeTreeMapSubKeyIterator*) base;
10571 _tmp0_ = gee_iterator_get_valid ((GeeIterator*) self);
10574 GeeForallFunc _tmp2_;
10575 void* _tmp2__target;
10576 GeeTreeMapNodeIterator* _tmp3_;
10577 GeeTreeMapNode* _tmp4_;
10578 gconstpointer _tmp5_;
10580 gboolean _tmp7_ = FALSE;
10582 _tmp2__target = f_target;
10583 _tmp3_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
10584 _tmp4_ = _tmp3_->current;
10585 _tmp5_ = _tmp4_->key;
10586 _tmp6_ = ((_tmp5_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp5_) : ((gpointer) _tmp5_);
10587 _tmp7_ = _tmp2_ (_tmp6_, _tmp2__target);
10594 GeeTreeMapNodeIterator* _tmp8_;
10595 gboolean _tmp9_ = FALSE;
10596 GeeForallFunc _tmp10_;
10597 void* _tmp10__target;
10598 GeeTreeMapNodeIterator* _tmp11_;
10599 GeeTreeMapNode* _tmp12_;
10600 gconstpointer _tmp13_;
10602 gboolean _tmp15_ = FALSE;
10603 _tmp8_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
10604 _tmp9_ = gee_tree_map_node_iterator_next (_tmp8_);
10609 _tmp10__target = f_target;
10610 _tmp11_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
10611 _tmp12_ = _tmp11_->current;
10612 _tmp13_ = _tmp12_->key;
10613 _tmp14_ = ((_tmp13_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp13_) : ((gpointer) _tmp13_);
10614 _tmp15_ = _tmp10_ (_tmp14_, _tmp10__target);
10625 static void gee_tree_map_sub_key_iterator_class_init (GeeTreeMapSubKeyIteratorClass * klass) {
10626 gee_tree_map_sub_key_iterator_parent_class = g_type_class_peek_parent (klass);
10627 g_type_class_add_private (klass, sizeof (GeeTreeMapSubKeyIteratorPrivate));
10628 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_sub_key_iterator_get_property;
10629 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_sub_key_iterator_set_property;
10630 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_ITERATOR_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10631 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_ITERATOR_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10632 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_ITERATOR_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10633 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_ITERATOR_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10634 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_ITERATOR_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10635 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_KEY_ITERATOR_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10639 static GType gee_tree_map_sub_key_iterator_gee_traversable_get_g_type (GeeTreeMapSubKeyIterator* self) {
10640 return self->priv->k_type;
10644 static GBoxedCopyFunc gee_tree_map_sub_key_iterator_gee_traversable_get_g_dup_func (GeeTreeMapSubKeyIterator* self) {
10645 return self->priv->k_dup_func;
10649 static GDestroyNotify gee_tree_map_sub_key_iterator_gee_traversable_get_g_destroy_func (GeeTreeMapSubKeyIterator* self) {
10650 return self->priv->k_destroy_func;
10654 static void gee_tree_map_sub_key_iterator_gee_traversable_interface_init (GeeTraversableIface * iface) {
10655 gee_tree_map_sub_key_iterator_gee_traversable_parent_iface = g_type_interface_peek_parent (iface);
10656 iface->foreach = (gboolean (*)(GeeTraversable*, GeeForallFunc, void*)) gee_tree_map_sub_key_iterator_real_foreach;
10657 iface->get_g_type = (GType(*)(GeeTraversable*)) gee_tree_map_sub_key_iterator_gee_traversable_get_g_type;
10658 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeTraversable*)) gee_tree_map_sub_key_iterator_gee_traversable_get_g_dup_func;
10659 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeTraversable*)) gee_tree_map_sub_key_iterator_gee_traversable_get_g_destroy_func;
10663 static void gee_tree_map_sub_key_iterator_gee_iterator_interface_init (GeeIteratorIface * iface) {
10664 gee_tree_map_sub_key_iterator_gee_iterator_parent_iface = g_type_interface_peek_parent (iface);
10665 iface->get = (gpointer (*)(GeeIterator*)) gee_tree_map_sub_key_iterator_real_get;
10666 iface->next = (gboolean (*)(GeeIterator*)) gee_tree_map_sub_node_iterator_next;
10667 iface->has_next = (gboolean (*)(GeeIterator*)) gee_tree_map_sub_node_iterator_has_next;
10668 iface->remove = (void (*)(GeeIterator*)) gee_tree_map_sub_node_iterator_remove;
10669 iface->get_valid = (gboolean (*) (GeeIterator *)) gee_tree_map_sub_node_iterator_get_valid;
10670 iface->get_read_only = (gboolean (*) (GeeIterator *)) gee_tree_map_sub_node_iterator_get_read_only;
10674 static GType gee_tree_map_sub_key_iterator_gee_bidir_iterator_get_g_type (GeeTreeMapSubKeyIterator* self) {
10675 return self->priv->k_type;
10679 static GBoxedCopyFunc gee_tree_map_sub_key_iterator_gee_bidir_iterator_get_g_dup_func (GeeTreeMapSubKeyIterator* self) {
10680 return self->priv->k_dup_func;
10684 static GDestroyNotify gee_tree_map_sub_key_iterator_gee_bidir_iterator_get_g_destroy_func (GeeTreeMapSubKeyIterator* self) {
10685 return self->priv->k_destroy_func;
10689 static void gee_tree_map_sub_key_iterator_gee_bidir_iterator_interface_init (GeeBidirIteratorIface * iface) {
10690 gee_tree_map_sub_key_iterator_gee_bidir_iterator_parent_iface = g_type_interface_peek_parent (iface);
10691 iface->get_g_type = (GType(*)(GeeBidirIterator*)) gee_tree_map_sub_key_iterator_gee_bidir_iterator_get_g_type;
10692 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeBidirIterator*)) gee_tree_map_sub_key_iterator_gee_bidir_iterator_get_g_dup_func;
10693 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeBidirIterator*)) gee_tree_map_sub_key_iterator_gee_bidir_iterator_get_g_destroy_func;
10694 iface->previous = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_sub_node_iterator_previous;
10695 iface->has_previous = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_sub_node_iterator_has_previous;
10696 iface->first = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_sub_node_iterator_first;
10697 iface->last = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_sub_node_iterator_last;
10701 static void gee_tree_map_sub_key_iterator_instance_init (GeeTreeMapSubKeyIterator * self) {
10702 self->priv = GEE_TREE_MAP_SUB_KEY_ITERATOR_GET_PRIVATE (self);
10706 static GType gee_tree_map_sub_key_iterator_get_type (void) {
10707 static volatile gsize gee_tree_map_sub_key_iterator_type_id__volatile = 0;
10708 if (g_once_init_enter (&gee_tree_map_sub_key_iterator_type_id__volatile)) {
10709 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 };
10710 static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_sub_key_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
10711 static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_key_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
10712 static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_key_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
10713 GType gee_tree_map_sub_key_iterator_type_id;
10714 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);
10715 g_type_add_interface_static (gee_tree_map_sub_key_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info);
10716 g_type_add_interface_static (gee_tree_map_sub_key_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info);
10717 g_type_add_interface_static (gee_tree_map_sub_key_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info);
10718 g_once_init_leave (&gee_tree_map_sub_key_iterator_type_id__volatile, gee_tree_map_sub_key_iterator_type_id);
10720 return gee_tree_map_sub_key_iterator_type_id__volatile;
10724 static void _vala_gee_tree_map_sub_key_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
10725 GeeTreeMapSubKeyIterator * self;
10726 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_KEY_ITERATOR, GeeTreeMapSubKeyIterator);
10727 switch (property_id) {
10729 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
10735 static void _vala_gee_tree_map_sub_key_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
10736 GeeTreeMapSubKeyIterator * self;
10737 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_KEY_ITERATOR, GeeTreeMapSubKeyIterator);
10738 switch (property_id) {
10739 case GEE_TREE_MAP_SUB_KEY_ITERATOR_K_TYPE:
10740 self->priv->k_type = g_value_get_gtype (value);
10742 case GEE_TREE_MAP_SUB_KEY_ITERATOR_K_DUP_FUNC:
10743 self->priv->k_dup_func = g_value_get_pointer (value);
10745 case GEE_TREE_MAP_SUB_KEY_ITERATOR_K_DESTROY_FUNC:
10746 self->priv->k_destroy_func = g_value_get_pointer (value);
10748 case GEE_TREE_MAP_SUB_KEY_ITERATOR_V_TYPE:
10749 self->priv->v_type = g_value_get_gtype (value);
10751 case GEE_TREE_MAP_SUB_KEY_ITERATOR_V_DUP_FUNC:
10752 self->priv->v_dup_func = g_value_get_pointer (value);
10754 case GEE_TREE_MAP_SUB_KEY_ITERATOR_V_DESTROY_FUNC:
10755 self->priv->v_destroy_func = g_value_get_pointer (value);
10758 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
10764 static GeeTreeMapValueIterator* gee_tree_map_value_iterator_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, GeeTreeMap* map) {
10765 GeeTreeMapValueIterator * self = NULL;
10766 GeeTreeMap* _tmp0_;
10767 g_return_val_if_fail (map != NULL, NULL);
10769 self = (GeeTreeMapValueIterator*) gee_tree_map_node_iterator_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_);
10770 self->priv->k_type = k_type;
10771 self->priv->k_dup_func = k_dup_func;
10772 self->priv->k_destroy_func = k_destroy_func;
10773 self->priv->v_type = v_type;
10774 self->priv->v_dup_func = v_dup_func;
10775 self->priv->v_destroy_func = v_destroy_func;
10780 static GeeTreeMapValueIterator* gee_tree_map_value_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map) {
10781 return gee_tree_map_value_iterator_construct (GEE_TREE_MAP_TYPE_VALUE_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map);
10785 static GeeTreeMapValueIterator* gee_tree_map_value_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapNode* current) {
10786 GeeTreeMapValueIterator * self = NULL;
10787 GeeTreeMap* _tmp0_;
10788 GeeTreeMapNode* _tmp1_;
10789 g_return_val_if_fail (map != NULL, NULL);
10790 g_return_val_if_fail (current != NULL, NULL);
10793 self = (GeeTreeMapValueIterator*) gee_tree_map_node_iterator_construct_pointing (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_, _tmp1_);
10794 self->priv->k_type = k_type;
10795 self->priv->k_dup_func = k_dup_func;
10796 self->priv->k_destroy_func = k_destroy_func;
10797 self->priv->v_type = v_type;
10798 self->priv->v_dup_func = v_dup_func;
10799 self->priv->v_destroy_func = v_destroy_func;
10804 static GeeTreeMapValueIterator* gee_tree_map_value_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapNode* current) {
10805 return gee_tree_map_value_iterator_construct_pointing (GEE_TREE_MAP_TYPE_VALUE_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, current);
10809 static gpointer gee_tree_map_value_iterator_real_get (GeeIterator* base) {
10810 GeeTreeMapValueIterator * self;
10811 gpointer result = NULL;
10813 GeeTreeMap* _tmp1_;
10817 GeeTreeMapNode* _tmp5_;
10818 gconstpointer _tmp6_;
10820 self = (GeeTreeMapValueIterator*) base;
10821 _tmp0_ = ((GeeTreeMapNodeIterator*) self)->stamp;
10822 _tmp1_ = ((GeeTreeMapNodeIterator*) self)->_map;
10823 _tmp2_ = _tmp1_->priv->stamp;
10824 _vala_assert (_tmp0_ == _tmp2_, "stamp == _map.stamp");
10825 _tmp3_ = gee_iterator_get_valid ((GeeIterator*) self);
10827 _vala_assert (_tmp4_, "valid");
10828 _tmp5_ = ((GeeTreeMapNodeIterator*) self)->current;
10829 _tmp6_ = _tmp5_->value;
10830 _tmp7_ = ((_tmp6_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp6_) : ((gpointer) _tmp6_);
10836 static gboolean gee_tree_map_value_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target) {
10837 GeeTreeMapValueIterator * self;
10838 gboolean result = FALSE;
10839 GeeTreeMapNode* _tmp0_;
10840 self = (GeeTreeMapValueIterator*) base;
10841 _tmp0_ = ((GeeTreeMapNodeIterator*) self)->current;
10842 if (_tmp0_ != NULL) {
10843 GeeForallFunc _tmp1_;
10844 void* _tmp1__target;
10845 GeeTreeMapNode* _tmp2_;
10846 gconstpointer _tmp3_;
10848 gboolean _tmp5_ = FALSE;
10849 GeeTreeMapNode* _tmp6_;
10850 GeeTreeMapNode* _tmp7_;
10852 _tmp1__target = f_target;
10853 _tmp2_ = ((GeeTreeMapNodeIterator*) self)->current;
10854 _tmp3_ = _tmp2_->key;
10855 _tmp4_ = ((_tmp3_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp3_) : ((gpointer) _tmp3_);
10856 _tmp5_ = _tmp1_ (_tmp4_, _tmp1__target);
10861 _tmp6_ = ((GeeTreeMapNodeIterator*) self)->current;
10862 _tmp7_ = _tmp6_->next;
10863 ((GeeTreeMapNodeIterator*) self)->current = _tmp7_;
10865 GeeTreeMapNode* _tmp8_;
10866 _tmp8_ = ((GeeTreeMapNodeIterator*) self)->_next;
10867 if (_tmp8_ == NULL) {
10868 GeeTreeMap* _tmp9_;
10869 GeeTreeMapNode* _tmp10_;
10870 _tmp9_ = ((GeeTreeMapNodeIterator*) self)->_map;
10871 _tmp10_ = _tmp9_->priv->first;
10872 ((GeeTreeMapNodeIterator*) self)->current = _tmp10_;
10873 ((GeeTreeMapNodeIterator*) self)->started = TRUE;
10875 GeeTreeMapNode* _tmp11_;
10876 GeeTreeMapNode* _tmp12_;
10877 _tmp11_ = ((GeeTreeMapNodeIterator*) self)->_next;
10878 ((GeeTreeMapNodeIterator*) self)->current = _tmp11_;
10879 _tmp12_ = ((GeeTreeMapNodeIterator*) self)->current;
10880 if (_tmp12_ != NULL) {
10881 ((GeeTreeMapNodeIterator*) self)->_next = NULL;
10882 ((GeeTreeMapNodeIterator*) self)->_prev = NULL;
10891 GeeTreeMapNode* _tmp17_;
10892 GeeForallFunc _tmp18_;
10893 void* _tmp18__target;
10894 GeeTreeMapNode* _tmp19_;
10895 gconstpointer _tmp20_;
10897 gboolean _tmp22_ = FALSE;
10900 GeeTreeMapNode* _tmp15_;
10901 GeeTreeMapNode* _tmp16_;
10902 _tmp15_ = ((GeeTreeMapNodeIterator*) self)->current;
10903 _tmp16_ = _tmp15_->next;
10904 ((GeeTreeMapNodeIterator*) self)->current = _tmp16_;
10907 _tmp17_ = ((GeeTreeMapNodeIterator*) self)->current;
10908 if (!(_tmp17_ != NULL)) {
10912 _tmp18__target = f_target;
10913 _tmp19_ = ((GeeTreeMapNodeIterator*) self)->current;
10914 _tmp20_ = _tmp19_->key;
10915 _tmp21_ = ((_tmp20_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp20_) : ((gpointer) _tmp20_);
10916 _tmp22_ = _tmp18_ (_tmp21_, _tmp18__target);
10928 static void gee_tree_map_value_iterator_class_init (GeeTreeMapValueIteratorClass * klass) {
10929 gee_tree_map_value_iterator_parent_class = g_type_class_peek_parent (klass);
10930 g_type_class_add_private (klass, sizeof (GeeTreeMapValueIteratorPrivate));
10931 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_value_iterator_get_property;
10932 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_value_iterator_set_property;
10933 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_ITERATOR_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10934 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_ITERATOR_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10935 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_ITERATOR_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10936 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_ITERATOR_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10937 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_ITERATOR_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10938 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUE_ITERATOR_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
10942 static GType gee_tree_map_value_iterator_gee_traversable_get_g_type (GeeTreeMapValueIterator* self) {
10943 return self->priv->v_type;
10947 static GBoxedCopyFunc gee_tree_map_value_iterator_gee_traversable_get_g_dup_func (GeeTreeMapValueIterator* self) {
10948 return self->priv->v_dup_func;
10952 static GDestroyNotify gee_tree_map_value_iterator_gee_traversable_get_g_destroy_func (GeeTreeMapValueIterator* self) {
10953 return self->priv->v_destroy_func;
10957 static void gee_tree_map_value_iterator_gee_traversable_interface_init (GeeTraversableIface * iface) {
10958 gee_tree_map_value_iterator_gee_traversable_parent_iface = g_type_interface_peek_parent (iface);
10959 iface->foreach = (gboolean (*)(GeeTraversable*, GeeForallFunc, void*)) gee_tree_map_value_iterator_real_foreach;
10960 iface->get_g_type = (GType(*)(GeeTraversable*)) gee_tree_map_value_iterator_gee_traversable_get_g_type;
10961 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeTraversable*)) gee_tree_map_value_iterator_gee_traversable_get_g_dup_func;
10962 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeTraversable*)) gee_tree_map_value_iterator_gee_traversable_get_g_destroy_func;
10966 static void gee_tree_map_value_iterator_gee_iterator_interface_init (GeeIteratorIface * iface) {
10967 gee_tree_map_value_iterator_gee_iterator_parent_iface = g_type_interface_peek_parent (iface);
10968 iface->get = (gpointer (*)(GeeIterator*)) gee_tree_map_value_iterator_real_get;
10969 iface->next = (gboolean (*)(GeeIterator*)) gee_tree_map_node_iterator_next;
10970 iface->has_next = (gboolean (*)(GeeIterator*)) gee_tree_map_node_iterator_has_next;
10971 iface->remove = (void (*)(GeeIterator*)) gee_tree_map_node_iterator_remove;
10972 iface->get_valid = (gboolean (*) (GeeIterator *)) gee_tree_map_node_iterator_get_valid;
10973 iface->get_read_only = (gboolean (*) (GeeIterator *)) gee_tree_map_node_iterator_get_read_only;
10977 static GType gee_tree_map_value_iterator_gee_bidir_iterator_get_g_type (GeeTreeMapValueIterator* self) {
10978 return self->priv->v_type;
10982 static GBoxedCopyFunc gee_tree_map_value_iterator_gee_bidir_iterator_get_g_dup_func (GeeTreeMapValueIterator* self) {
10983 return self->priv->v_dup_func;
10987 static GDestroyNotify gee_tree_map_value_iterator_gee_bidir_iterator_get_g_destroy_func (GeeTreeMapValueIterator* self) {
10988 return self->priv->v_destroy_func;
10992 static void gee_tree_map_value_iterator_gee_bidir_iterator_interface_init (GeeBidirIteratorIface * iface) {
10993 gee_tree_map_value_iterator_gee_bidir_iterator_parent_iface = g_type_interface_peek_parent (iface);
10994 iface->get_g_type = (GType(*)(GeeBidirIterator*)) gee_tree_map_value_iterator_gee_bidir_iterator_get_g_type;
10995 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeBidirIterator*)) gee_tree_map_value_iterator_gee_bidir_iterator_get_g_dup_func;
10996 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeBidirIterator*)) gee_tree_map_value_iterator_gee_bidir_iterator_get_g_destroy_func;
10997 iface->previous = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_node_iterator_previous;
10998 iface->has_previous = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_node_iterator_has_previous;
10999 iface->first = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_node_iterator_first;
11000 iface->last = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_node_iterator_last;
11004 static void gee_tree_map_value_iterator_instance_init (GeeTreeMapValueIterator * self) {
11005 self->priv = GEE_TREE_MAP_VALUE_ITERATOR_GET_PRIVATE (self);
11009 static GType gee_tree_map_value_iterator_get_type (void) {
11010 static volatile gsize gee_tree_map_value_iterator_type_id__volatile = 0;
11011 if (g_once_init_enter (&gee_tree_map_value_iterator_type_id__volatile)) {
11012 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 };
11013 static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_value_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
11014 static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_value_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
11015 static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_value_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
11016 GType gee_tree_map_value_iterator_type_id;
11017 gee_tree_map_value_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_NODE_ITERATOR, "GeeTreeMapValueIterator", &g_define_type_info, 0);
11018 g_type_add_interface_static (gee_tree_map_value_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info);
11019 g_type_add_interface_static (gee_tree_map_value_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info);
11020 g_type_add_interface_static (gee_tree_map_value_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info);
11021 g_once_init_leave (&gee_tree_map_value_iterator_type_id__volatile, gee_tree_map_value_iterator_type_id);
11023 return gee_tree_map_value_iterator_type_id__volatile;
11027 static void _vala_gee_tree_map_value_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
11028 GeeTreeMapValueIterator * self;
11029 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_VALUE_ITERATOR, GeeTreeMapValueIterator);
11030 switch (property_id) {
11032 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
11038 static void _vala_gee_tree_map_value_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
11039 GeeTreeMapValueIterator * self;
11040 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_VALUE_ITERATOR, GeeTreeMapValueIterator);
11041 switch (property_id) {
11042 case GEE_TREE_MAP_VALUE_ITERATOR_K_TYPE:
11043 self->priv->k_type = g_value_get_gtype (value);
11045 case GEE_TREE_MAP_VALUE_ITERATOR_K_DUP_FUNC:
11046 self->priv->k_dup_func = g_value_get_pointer (value);
11048 case GEE_TREE_MAP_VALUE_ITERATOR_K_DESTROY_FUNC:
11049 self->priv->k_destroy_func = g_value_get_pointer (value);
11051 case GEE_TREE_MAP_VALUE_ITERATOR_V_TYPE:
11052 self->priv->v_type = g_value_get_gtype (value);
11054 case GEE_TREE_MAP_VALUE_ITERATOR_V_DUP_FUNC:
11055 self->priv->v_dup_func = g_value_get_pointer (value);
11057 case GEE_TREE_MAP_VALUE_ITERATOR_V_DESTROY_FUNC:
11058 self->priv->v_destroy_func = g_value_get_pointer (value);
11061 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
11067 static GeeTreeMapSubValueIterator* gee_tree_map_sub_value_iterator_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, GeeTreeMap* map, GeeTreeMapRange* range) {
11068 GeeTreeMapSubValueIterator * self = NULL;
11069 GeeTreeMap* _tmp0_;
11070 GeeTreeMapRange* _tmp1_;
11071 g_return_val_if_fail (map != NULL, NULL);
11072 g_return_val_if_fail (range != NULL, NULL);
11075 self = (GeeTreeMapSubValueIterator*) gee_tree_map_sub_node_iterator_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_, _tmp1_);
11076 self->priv->k_type = k_type;
11077 self->priv->k_dup_func = k_dup_func;
11078 self->priv->k_destroy_func = k_destroy_func;
11079 self->priv->v_type = v_type;
11080 self->priv->v_dup_func = v_dup_func;
11081 self->priv->v_destroy_func = v_destroy_func;
11086 static GeeTreeMapSubValueIterator* gee_tree_map_sub_value_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range) {
11087 return gee_tree_map_sub_value_iterator_construct (GEE_TREE_MAP_TYPE_SUB_VALUE_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, range);
11091 static GeeTreeMapSubValueIterator* gee_tree_map_sub_value_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node) {
11092 GeeTreeMapSubValueIterator * self = NULL;
11093 GeeTreeMap* _tmp0_;
11094 GeeTreeMapRange* _tmp1_;
11095 GeeTreeMapNode* _tmp2_;
11096 g_return_val_if_fail (map != NULL, NULL);
11097 g_return_val_if_fail (range != NULL, NULL);
11098 g_return_val_if_fail (node != NULL, NULL);
11102 self = (GeeTreeMapSubValueIterator*) gee_tree_map_sub_node_iterator_construct_pointing (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_, _tmp1_, _tmp2_);
11103 self->priv->k_type = k_type;
11104 self->priv->k_dup_func = k_dup_func;
11105 self->priv->k_destroy_func = k_destroy_func;
11106 self->priv->v_type = v_type;
11107 self->priv->v_dup_func = v_dup_func;
11108 self->priv->v_destroy_func = v_destroy_func;
11113 static GeeTreeMapSubValueIterator* gee_tree_map_sub_value_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node) {
11114 return gee_tree_map_sub_value_iterator_construct_pointing (GEE_TREE_MAP_TYPE_SUB_VALUE_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, range, node);
11118 static gpointer gee_tree_map_sub_value_iterator_real_get (GeeIterator* base) {
11119 GeeTreeMapSubValueIterator * self;
11120 gpointer result = NULL;
11123 GeeTreeMapNodeIterator* _tmp2_;
11124 GeeTreeMapNode* _tmp3_;
11125 gconstpointer _tmp4_;
11127 self = (GeeTreeMapSubValueIterator*) base;
11128 _tmp0_ = gee_iterator_get_valid ((GeeIterator*) self);
11130 _vala_assert (_tmp1_, "valid");
11131 _tmp2_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
11132 _tmp3_ = _tmp2_->current;
11133 _tmp4_ = _tmp3_->value;
11134 _tmp5_ = ((_tmp4_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_);
11140 static gboolean gee_tree_map_sub_value_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target) {
11141 GeeTreeMapSubValueIterator * self;
11142 gboolean result = FALSE;
11145 self = (GeeTreeMapSubValueIterator*) base;
11146 _tmp0_ = gee_iterator_get_valid ((GeeIterator*) self);
11149 GeeForallFunc _tmp2_;
11150 void* _tmp2__target;
11151 GeeTreeMapNodeIterator* _tmp3_;
11152 GeeTreeMapNode* _tmp4_;
11153 gconstpointer _tmp5_;
11155 gboolean _tmp7_ = FALSE;
11157 _tmp2__target = f_target;
11158 _tmp3_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
11159 _tmp4_ = _tmp3_->current;
11160 _tmp5_ = _tmp4_->key;
11161 _tmp6_ = ((_tmp5_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp5_) : ((gpointer) _tmp5_);
11162 _tmp7_ = _tmp2_ (_tmp6_, _tmp2__target);
11169 GeeTreeMapNodeIterator* _tmp8_;
11170 gboolean _tmp9_ = FALSE;
11171 GeeForallFunc _tmp10_;
11172 void* _tmp10__target;
11173 GeeTreeMapNodeIterator* _tmp11_;
11174 GeeTreeMapNode* _tmp12_;
11175 gconstpointer _tmp13_;
11177 gboolean _tmp15_ = FALSE;
11178 _tmp8_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
11179 _tmp9_ = gee_tree_map_node_iterator_next (_tmp8_);
11184 _tmp10__target = f_target;
11185 _tmp11_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
11186 _tmp12_ = _tmp11_->current;
11187 _tmp13_ = _tmp12_->key;
11188 _tmp14_ = ((_tmp13_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp13_) : ((gpointer) _tmp13_);
11189 _tmp15_ = _tmp10_ (_tmp14_, _tmp10__target);
11200 static void gee_tree_map_sub_value_iterator_class_init (GeeTreeMapSubValueIteratorClass * klass) {
11201 gee_tree_map_sub_value_iterator_parent_class = g_type_class_peek_parent (klass);
11202 g_type_class_add_private (klass, sizeof (GeeTreeMapSubValueIteratorPrivate));
11203 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_sub_value_iterator_get_property;
11204 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_sub_value_iterator_set_property;
11205 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_ITERATOR_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11206 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_ITERATOR_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11207 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_ITERATOR_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11208 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_ITERATOR_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11209 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_ITERATOR_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11210 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_VALUE_ITERATOR_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11214 static GType gee_tree_map_sub_value_iterator_gee_traversable_get_g_type (GeeTreeMapSubValueIterator* self) {
11215 return self->priv->v_type;
11219 static GBoxedCopyFunc gee_tree_map_sub_value_iterator_gee_traversable_get_g_dup_func (GeeTreeMapSubValueIterator* self) {
11220 return self->priv->v_dup_func;
11224 static GDestroyNotify gee_tree_map_sub_value_iterator_gee_traversable_get_g_destroy_func (GeeTreeMapSubValueIterator* self) {
11225 return self->priv->v_destroy_func;
11229 static void gee_tree_map_sub_value_iterator_gee_traversable_interface_init (GeeTraversableIface * iface) {
11230 gee_tree_map_sub_value_iterator_gee_traversable_parent_iface = g_type_interface_peek_parent (iface);
11231 iface->foreach = (gboolean (*)(GeeTraversable*, GeeForallFunc, void*)) gee_tree_map_sub_value_iterator_real_foreach;
11232 iface->get_g_type = (GType(*)(GeeTraversable*)) gee_tree_map_sub_value_iterator_gee_traversable_get_g_type;
11233 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeTraversable*)) gee_tree_map_sub_value_iterator_gee_traversable_get_g_dup_func;
11234 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeTraversable*)) gee_tree_map_sub_value_iterator_gee_traversable_get_g_destroy_func;
11238 static void gee_tree_map_sub_value_iterator_gee_iterator_interface_init (GeeIteratorIface * iface) {
11239 gee_tree_map_sub_value_iterator_gee_iterator_parent_iface = g_type_interface_peek_parent (iface);
11240 iface->get = (gpointer (*)(GeeIterator*)) gee_tree_map_sub_value_iterator_real_get;
11241 iface->next = (gboolean (*)(GeeIterator*)) gee_tree_map_sub_node_iterator_next;
11242 iface->has_next = (gboolean (*)(GeeIterator*)) gee_tree_map_sub_node_iterator_has_next;
11243 iface->remove = (void (*)(GeeIterator*)) gee_tree_map_sub_node_iterator_remove;
11244 iface->get_valid = (gboolean (*) (GeeIterator *)) gee_tree_map_sub_node_iterator_get_valid;
11245 iface->get_read_only = (gboolean (*) (GeeIterator *)) gee_tree_map_sub_node_iterator_get_read_only;
11249 static GType gee_tree_map_sub_value_iterator_gee_bidir_iterator_get_g_type (GeeTreeMapSubValueIterator* self) {
11250 return self->priv->v_type;
11254 static GBoxedCopyFunc gee_tree_map_sub_value_iterator_gee_bidir_iterator_get_g_dup_func (GeeTreeMapSubValueIterator* self) {
11255 return self->priv->v_dup_func;
11259 static GDestroyNotify gee_tree_map_sub_value_iterator_gee_bidir_iterator_get_g_destroy_func (GeeTreeMapSubValueIterator* self) {
11260 return self->priv->v_destroy_func;
11264 static void gee_tree_map_sub_value_iterator_gee_bidir_iterator_interface_init (GeeBidirIteratorIface * iface) {
11265 gee_tree_map_sub_value_iterator_gee_bidir_iterator_parent_iface = g_type_interface_peek_parent (iface);
11266 iface->get_g_type = (GType(*)(GeeBidirIterator*)) gee_tree_map_sub_value_iterator_gee_bidir_iterator_get_g_type;
11267 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeBidirIterator*)) gee_tree_map_sub_value_iterator_gee_bidir_iterator_get_g_dup_func;
11268 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeBidirIterator*)) gee_tree_map_sub_value_iterator_gee_bidir_iterator_get_g_destroy_func;
11269 iface->previous = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_sub_node_iterator_previous;
11270 iface->has_previous = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_sub_node_iterator_has_previous;
11271 iface->first = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_sub_node_iterator_first;
11272 iface->last = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_sub_node_iterator_last;
11276 static void gee_tree_map_sub_value_iterator_instance_init (GeeTreeMapSubValueIterator * self) {
11277 self->priv = GEE_TREE_MAP_SUB_VALUE_ITERATOR_GET_PRIVATE (self);
11281 static GType gee_tree_map_sub_value_iterator_get_type (void) {
11282 static volatile gsize gee_tree_map_sub_value_iterator_type_id__volatile = 0;
11283 if (g_once_init_enter (&gee_tree_map_sub_value_iterator_type_id__volatile)) {
11284 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 };
11285 static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_sub_value_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
11286 static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_value_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
11287 static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_value_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
11288 GType gee_tree_map_sub_value_iterator_type_id;
11289 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);
11290 g_type_add_interface_static (gee_tree_map_sub_value_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info);
11291 g_type_add_interface_static (gee_tree_map_sub_value_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info);
11292 g_type_add_interface_static (gee_tree_map_sub_value_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info);
11293 g_once_init_leave (&gee_tree_map_sub_value_iterator_type_id__volatile, gee_tree_map_sub_value_iterator_type_id);
11295 return gee_tree_map_sub_value_iterator_type_id__volatile;
11299 static void _vala_gee_tree_map_sub_value_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
11300 GeeTreeMapSubValueIterator * self;
11301 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_VALUE_ITERATOR, GeeTreeMapSubValueIterator);
11302 switch (property_id) {
11304 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
11310 static void _vala_gee_tree_map_sub_value_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
11311 GeeTreeMapSubValueIterator * self;
11312 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_VALUE_ITERATOR, GeeTreeMapSubValueIterator);
11313 switch (property_id) {
11314 case GEE_TREE_MAP_SUB_VALUE_ITERATOR_K_TYPE:
11315 self->priv->k_type = g_value_get_gtype (value);
11317 case GEE_TREE_MAP_SUB_VALUE_ITERATOR_K_DUP_FUNC:
11318 self->priv->k_dup_func = g_value_get_pointer (value);
11320 case GEE_TREE_MAP_SUB_VALUE_ITERATOR_K_DESTROY_FUNC:
11321 self->priv->k_destroy_func = g_value_get_pointer (value);
11323 case GEE_TREE_MAP_SUB_VALUE_ITERATOR_V_TYPE:
11324 self->priv->v_type = g_value_get_gtype (value);
11326 case GEE_TREE_MAP_SUB_VALUE_ITERATOR_V_DUP_FUNC:
11327 self->priv->v_dup_func = g_value_get_pointer (value);
11329 case GEE_TREE_MAP_SUB_VALUE_ITERATOR_V_DESTROY_FUNC:
11330 self->priv->v_destroy_func = g_value_get_pointer (value);
11333 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
11339 static GeeTreeMapEntryIterator* gee_tree_map_entry_iterator_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, GeeTreeMap* map) {
11340 GeeTreeMapEntryIterator * self = NULL;
11341 GeeTreeMap* _tmp0_;
11342 g_return_val_if_fail (map != NULL, NULL);
11344 self = (GeeTreeMapEntryIterator*) gee_tree_map_node_iterator_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_);
11345 self->priv->k_type = k_type;
11346 self->priv->k_dup_func = k_dup_func;
11347 self->priv->k_destroy_func = k_destroy_func;
11348 self->priv->v_type = v_type;
11349 self->priv->v_dup_func = v_dup_func;
11350 self->priv->v_destroy_func = v_destroy_func;
11355 static GeeTreeMapEntryIterator* gee_tree_map_entry_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map) {
11356 return gee_tree_map_entry_iterator_construct (GEE_TREE_MAP_TYPE_ENTRY_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map);
11360 static GeeTreeMapEntryIterator* gee_tree_map_entry_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapNode* node) {
11361 GeeTreeMapEntryIterator * self = NULL;
11362 GeeTreeMap* _tmp0_;
11363 GeeTreeMapNode* _tmp1_;
11364 g_return_val_if_fail (map != NULL, NULL);
11365 g_return_val_if_fail (node != NULL, NULL);
11368 self = (GeeTreeMapEntryIterator*) gee_tree_map_node_iterator_construct_pointing (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_, _tmp1_);
11369 self->priv->k_type = k_type;
11370 self->priv->k_dup_func = k_dup_func;
11371 self->priv->k_destroy_func = k_destroy_func;
11372 self->priv->v_type = v_type;
11373 self->priv->v_dup_func = v_dup_func;
11374 self->priv->v_destroy_func = v_destroy_func;
11379 static GeeTreeMapEntryIterator* gee_tree_map_entry_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapNode* node) {
11380 return gee_tree_map_entry_iterator_construct_pointing (GEE_TREE_MAP_TYPE_ENTRY_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, node);
11384 static GeeMapEntry* gee_tree_map_entry_iterator_real_get (GeeIterator* base) {
11385 GeeTreeMapEntryIterator * self;
11386 GeeMapEntry* result = NULL;
11388 GeeTreeMap* _tmp1_;
11392 GeeTreeMapNode* _tmp5_;
11393 GeeMapEntry* _tmp6_ = NULL;
11394 self = (GeeTreeMapEntryIterator*) base;
11395 _tmp0_ = ((GeeTreeMapNodeIterator*) self)->stamp;
11396 _tmp1_ = ((GeeTreeMapNodeIterator*) self)->_map;
11397 _tmp2_ = _tmp1_->priv->stamp;
11398 _vala_assert (_tmp0_ == _tmp2_, "stamp == _map.stamp");
11399 _tmp3_ = gee_iterator_get_valid ((GeeIterator*) self);
11401 _vala_assert (_tmp4_, "valid");
11402 _tmp5_ = ((GeeTreeMapNodeIterator*) self)->current;
11403 _tmp6_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp5_);
11409 static void gee_tree_map_entry_iterator_real_remove (GeeIterator* base) {
11410 GeeTreeMapEntryIterator * self;
11411 self = (GeeTreeMapEntryIterator*) base;
11412 gee_tree_map_node_iterator_unset ((GeeTreeMapNodeIterator*) self);
11416 static gboolean gee_tree_map_entry_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target) {
11417 GeeTreeMapEntryIterator * self;
11418 gboolean result = FALSE;
11419 GeeTreeMapNode* _tmp0_;
11420 self = (GeeTreeMapEntryIterator*) base;
11421 _tmp0_ = ((GeeTreeMapNodeIterator*) self)->current;
11422 if (_tmp0_ != NULL) {
11423 GeeForallFunc _tmp1_;
11424 void* _tmp1__target;
11425 GeeTreeMapNode* _tmp2_;
11426 GeeMapEntry* _tmp3_ = NULL;
11427 gboolean _tmp4_ = FALSE;
11428 GeeTreeMapNode* _tmp5_;
11429 GeeTreeMapNode* _tmp6_;
11431 _tmp1__target = f_target;
11432 _tmp2_ = ((GeeTreeMapNodeIterator*) self)->current;
11433 _tmp3_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp2_);
11434 _tmp4_ = _tmp1_ (_tmp3_, _tmp1__target);
11439 _tmp5_ = ((GeeTreeMapNodeIterator*) self)->current;
11440 _tmp6_ = _tmp5_->next;
11441 ((GeeTreeMapNodeIterator*) self)->current = _tmp6_;
11443 GeeTreeMapNode* _tmp7_;
11444 _tmp7_ = ((GeeTreeMapNodeIterator*) self)->_next;
11445 if (_tmp7_ == NULL) {
11446 GeeTreeMap* _tmp8_;
11447 GeeTreeMapNode* _tmp9_;
11448 _tmp8_ = ((GeeTreeMapNodeIterator*) self)->_map;
11449 _tmp9_ = _tmp8_->priv->first;
11450 ((GeeTreeMapNodeIterator*) self)->current = _tmp9_;
11451 ((GeeTreeMapNodeIterator*) self)->started = TRUE;
11453 GeeTreeMapNode* _tmp10_;
11454 GeeTreeMapNode* _tmp11_;
11455 _tmp10_ = ((GeeTreeMapNodeIterator*) self)->_next;
11456 ((GeeTreeMapNodeIterator*) self)->current = _tmp10_;
11457 _tmp11_ = ((GeeTreeMapNodeIterator*) self)->current;
11458 if (_tmp11_ != NULL) {
11459 ((GeeTreeMapNodeIterator*) self)->_next = NULL;
11460 ((GeeTreeMapNodeIterator*) self)->_prev = NULL;
11469 GeeTreeMapNode* _tmp16_;
11470 GeeForallFunc _tmp17_;
11471 void* _tmp17__target;
11472 GeeTreeMapNode* _tmp18_;
11473 GeeMapEntry* _tmp19_ = NULL;
11474 gboolean _tmp20_ = FALSE;
11477 GeeTreeMapNode* _tmp14_;
11478 GeeTreeMapNode* _tmp15_;
11479 _tmp14_ = ((GeeTreeMapNodeIterator*) self)->current;
11480 _tmp15_ = _tmp14_->next;
11481 ((GeeTreeMapNodeIterator*) self)->current = _tmp15_;
11484 _tmp16_ = ((GeeTreeMapNodeIterator*) self)->current;
11485 if (!(_tmp16_ != NULL)) {
11489 _tmp17__target = f_target;
11490 _tmp18_ = ((GeeTreeMapNodeIterator*) self)->current;
11491 _tmp19_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp18_);
11492 _tmp20_ = _tmp17_ (_tmp19_, _tmp17__target);
11504 static void gee_tree_map_entry_iterator_class_init (GeeTreeMapEntryIteratorClass * klass) {
11505 gee_tree_map_entry_iterator_parent_class = g_type_class_peek_parent (klass);
11506 g_type_class_add_private (klass, sizeof (GeeTreeMapEntryIteratorPrivate));
11507 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_entry_iterator_get_property;
11508 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_entry_iterator_set_property;
11509 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_ITERATOR_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11510 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_ITERATOR_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11511 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_ITERATOR_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11512 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_ITERATOR_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11513 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_ITERATOR_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11514 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRY_ITERATOR_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11518 static GType gee_tree_map_entry_iterator_gee_traversable_get_g_type (GeeTreeMapEntryIterator* self) {
11519 return GEE_MAP_TYPE_ENTRY;
11523 static GBoxedCopyFunc gee_tree_map_entry_iterator_gee_traversable_get_g_dup_func (GeeTreeMapEntryIterator* self) {
11524 return g_object_ref;
11528 static GDestroyNotify gee_tree_map_entry_iterator_gee_traversable_get_g_destroy_func (GeeTreeMapEntryIterator* self) {
11529 return g_object_unref;
11533 static void gee_tree_map_entry_iterator_gee_traversable_interface_init (GeeTraversableIface * iface) {
11534 gee_tree_map_entry_iterator_gee_traversable_parent_iface = g_type_interface_peek_parent (iface);
11535 iface->foreach = (gboolean (*)(GeeTraversable*, GeeForallFunc, void*)) gee_tree_map_entry_iterator_real_foreach;
11536 iface->get_g_type = (GType(*)(GeeTraversable*)) gee_tree_map_entry_iterator_gee_traversable_get_g_type;
11537 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeTraversable*)) gee_tree_map_entry_iterator_gee_traversable_get_g_dup_func;
11538 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeTraversable*)) gee_tree_map_entry_iterator_gee_traversable_get_g_destroy_func;
11542 static void gee_tree_map_entry_iterator_gee_iterator_interface_init (GeeIteratorIface * iface) {
11543 gee_tree_map_entry_iterator_gee_iterator_parent_iface = g_type_interface_peek_parent (iface);
11544 iface->get = (gpointer (*)(GeeIterator*)) gee_tree_map_entry_iterator_real_get;
11545 iface->remove = (void (*)(GeeIterator*)) gee_tree_map_entry_iterator_real_remove;
11546 iface->next = (gboolean (*)(GeeIterator*)) gee_tree_map_node_iterator_next;
11547 iface->has_next = (gboolean (*)(GeeIterator*)) gee_tree_map_node_iterator_has_next;
11548 iface->get_valid = (gboolean (*) (GeeIterator *)) gee_tree_map_node_iterator_get_valid;
11549 iface->get_read_only = (gboolean (*) (GeeIterator *)) gee_tree_map_node_iterator_get_read_only;
11553 static GType gee_tree_map_entry_iterator_gee_bidir_iterator_get_g_type (GeeTreeMapEntryIterator* self) {
11554 return GEE_MAP_TYPE_ENTRY;
11558 static GBoxedCopyFunc gee_tree_map_entry_iterator_gee_bidir_iterator_get_g_dup_func (GeeTreeMapEntryIterator* self) {
11559 return g_object_ref;
11563 static GDestroyNotify gee_tree_map_entry_iterator_gee_bidir_iterator_get_g_destroy_func (GeeTreeMapEntryIterator* self) {
11564 return g_object_unref;
11568 static void gee_tree_map_entry_iterator_gee_bidir_iterator_interface_init (GeeBidirIteratorIface * iface) {
11569 gee_tree_map_entry_iterator_gee_bidir_iterator_parent_iface = g_type_interface_peek_parent (iface);
11570 iface->get_g_type = (GType(*)(GeeBidirIterator*)) gee_tree_map_entry_iterator_gee_bidir_iterator_get_g_type;
11571 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeBidirIterator*)) gee_tree_map_entry_iterator_gee_bidir_iterator_get_g_dup_func;
11572 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeBidirIterator*)) gee_tree_map_entry_iterator_gee_bidir_iterator_get_g_destroy_func;
11573 iface->previous = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_node_iterator_previous;
11574 iface->has_previous = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_node_iterator_has_previous;
11575 iface->first = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_node_iterator_first;
11576 iface->last = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_node_iterator_last;
11580 static void gee_tree_map_entry_iterator_instance_init (GeeTreeMapEntryIterator * self) {
11581 self->priv = GEE_TREE_MAP_ENTRY_ITERATOR_GET_PRIVATE (self);
11585 static GType gee_tree_map_entry_iterator_get_type (void) {
11586 static volatile gsize gee_tree_map_entry_iterator_type_id__volatile = 0;
11587 if (g_once_init_enter (&gee_tree_map_entry_iterator_type_id__volatile)) {
11588 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 };
11589 static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_entry_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
11590 static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_entry_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
11591 static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_entry_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
11592 GType gee_tree_map_entry_iterator_type_id;
11593 gee_tree_map_entry_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_NODE_ITERATOR, "GeeTreeMapEntryIterator", &g_define_type_info, 0);
11594 g_type_add_interface_static (gee_tree_map_entry_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info);
11595 g_type_add_interface_static (gee_tree_map_entry_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info);
11596 g_type_add_interface_static (gee_tree_map_entry_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info);
11597 g_once_init_leave (&gee_tree_map_entry_iterator_type_id__volatile, gee_tree_map_entry_iterator_type_id);
11599 return gee_tree_map_entry_iterator_type_id__volatile;
11603 static void _vala_gee_tree_map_entry_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
11604 GeeTreeMapEntryIterator * self;
11605 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_ENTRY_ITERATOR, GeeTreeMapEntryIterator);
11606 switch (property_id) {
11608 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
11614 static void _vala_gee_tree_map_entry_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
11615 GeeTreeMapEntryIterator * self;
11616 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_ENTRY_ITERATOR, GeeTreeMapEntryIterator);
11617 switch (property_id) {
11618 case GEE_TREE_MAP_ENTRY_ITERATOR_K_TYPE:
11619 self->priv->k_type = g_value_get_gtype (value);
11621 case GEE_TREE_MAP_ENTRY_ITERATOR_K_DUP_FUNC:
11622 self->priv->k_dup_func = g_value_get_pointer (value);
11624 case GEE_TREE_MAP_ENTRY_ITERATOR_K_DESTROY_FUNC:
11625 self->priv->k_destroy_func = g_value_get_pointer (value);
11627 case GEE_TREE_MAP_ENTRY_ITERATOR_V_TYPE:
11628 self->priv->v_type = g_value_get_gtype (value);
11630 case GEE_TREE_MAP_ENTRY_ITERATOR_V_DUP_FUNC:
11631 self->priv->v_dup_func = g_value_get_pointer (value);
11633 case GEE_TREE_MAP_ENTRY_ITERATOR_V_DESTROY_FUNC:
11634 self->priv->v_destroy_func = g_value_get_pointer (value);
11637 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
11643 static GeeTreeMapSubEntryIterator* gee_tree_map_sub_entry_iterator_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, GeeTreeMap* map, GeeTreeMapRange* range) {
11644 GeeTreeMapSubEntryIterator * self = NULL;
11645 GeeTreeMap* _tmp0_;
11646 GeeTreeMapRange* _tmp1_;
11647 g_return_val_if_fail (map != NULL, NULL);
11648 g_return_val_if_fail (range != NULL, NULL);
11651 self = (GeeTreeMapSubEntryIterator*) gee_tree_map_sub_node_iterator_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_, _tmp1_);
11652 self->priv->k_type = k_type;
11653 self->priv->k_dup_func = k_dup_func;
11654 self->priv->k_destroy_func = k_destroy_func;
11655 self->priv->v_type = v_type;
11656 self->priv->v_dup_func = v_dup_func;
11657 self->priv->v_destroy_func = v_destroy_func;
11662 static GeeTreeMapSubEntryIterator* gee_tree_map_sub_entry_iterator_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range) {
11663 return gee_tree_map_sub_entry_iterator_construct (GEE_TREE_MAP_TYPE_SUB_ENTRY_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, range);
11667 static GeeTreeMapSubEntryIterator* gee_tree_map_sub_entry_iterator_construct_pointing (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, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node) {
11668 GeeTreeMapSubEntryIterator * self = NULL;
11669 GeeTreeMap* _tmp0_;
11670 GeeTreeMapRange* _tmp1_;
11671 GeeTreeMapNode* _tmp2_;
11672 g_return_val_if_fail (map != NULL, NULL);
11673 g_return_val_if_fail (range != NULL, NULL);
11674 g_return_val_if_fail (node != NULL, NULL);
11678 self = (GeeTreeMapSubEntryIterator*) gee_tree_map_sub_node_iterator_construct_pointing (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_, _tmp1_, _tmp2_);
11679 self->priv->k_type = k_type;
11680 self->priv->k_dup_func = k_dup_func;
11681 self->priv->k_destroy_func = k_destroy_func;
11682 self->priv->v_type = v_type;
11683 self->priv->v_dup_func = v_dup_func;
11684 self->priv->v_destroy_func = v_destroy_func;
11689 static GeeTreeMapSubEntryIterator* gee_tree_map_sub_entry_iterator_new_pointing (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeTreeMap* map, GeeTreeMapRange* range, GeeTreeMapNode* node) {
11690 return gee_tree_map_sub_entry_iterator_construct_pointing (GEE_TREE_MAP_TYPE_SUB_ENTRY_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, range, node);
11694 static GeeMapEntry* gee_tree_map_sub_entry_iterator_real_get (GeeIterator* base) {
11695 GeeTreeMapSubEntryIterator * self;
11696 GeeMapEntry* result = NULL;
11697 GeeTreeMapNodeIterator* _tmp0_;
11698 GeeTreeMapNodeIterator* _tmp1_;
11699 GeeTreeMapNode* _tmp2_;
11700 GeeMapEntry* _tmp3_ = NULL;
11701 self = (GeeTreeMapSubEntryIterator*) base;
11702 _tmp0_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
11703 _vala_assert (_tmp0_ != NULL, "iterator != null");
11704 _tmp1_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
11705 _tmp2_ = _tmp1_->current;
11706 _tmp3_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp2_);
11712 static void gee_tree_map_sub_entry_iterator_real_remove (GeeIterator* base) {
11713 GeeTreeMapSubEntryIterator * self;
11714 self = (GeeTreeMapSubEntryIterator*) base;
11715 gee_tree_map_sub_node_iterator_unset ((GeeTreeMapSubNodeIterator*) self);
11719 static gboolean gee_tree_map_sub_entry_iterator_real_foreach (GeeTraversable* base, GeeForallFunc f, void* f_target) {
11720 GeeTreeMapSubEntryIterator * self;
11721 gboolean result = FALSE;
11724 self = (GeeTreeMapSubEntryIterator*) base;
11725 _tmp0_ = gee_iterator_get_valid ((GeeIterator*) self);
11728 GeeForallFunc _tmp2_;
11729 void* _tmp2__target;
11730 GeeTreeMapNodeIterator* _tmp3_;
11731 GeeTreeMapNode* _tmp4_;
11732 GeeMapEntry* _tmp5_ = NULL;
11733 gboolean _tmp6_ = FALSE;
11735 _tmp2__target = f_target;
11736 _tmp3_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
11737 _tmp4_ = _tmp3_->current;
11738 _tmp5_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp4_);
11739 _tmp6_ = _tmp2_ (_tmp5_, _tmp2__target);
11746 GeeTreeMapNodeIterator* _tmp7_;
11747 gboolean _tmp8_ = FALSE;
11748 GeeForallFunc _tmp9_;
11749 void* _tmp9__target;
11750 GeeTreeMapNodeIterator* _tmp10_;
11751 GeeTreeMapNode* _tmp11_;
11752 GeeMapEntry* _tmp12_ = NULL;
11753 gboolean _tmp13_ = FALSE;
11754 _tmp7_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
11755 _tmp8_ = gee_tree_map_node_iterator_next (_tmp7_);
11760 _tmp9__target = f_target;
11761 _tmp10_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
11762 _tmp11_ = _tmp10_->current;
11763 _tmp12_ = gee_tree_map_entry_entry_for (self->priv->k_type, (GBoxedCopyFunc) self->priv->k_dup_func, self->priv->k_destroy_func, self->priv->v_type, (GBoxedCopyFunc) self->priv->v_dup_func, self->priv->v_destroy_func, _tmp11_);
11764 _tmp13_ = _tmp9_ (_tmp12_, _tmp9__target);
11775 static void gee_tree_map_sub_entry_iterator_class_init (GeeTreeMapSubEntryIteratorClass * klass) {
11776 gee_tree_map_sub_entry_iterator_parent_class = g_type_class_peek_parent (klass);
11777 g_type_class_add_private (klass, sizeof (GeeTreeMapSubEntryIteratorPrivate));
11778 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_sub_entry_iterator_get_property;
11779 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_sub_entry_iterator_set_property;
11780 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_ITERATOR_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11781 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_ITERATOR_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11782 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_ITERATOR_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11783 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_ITERATOR_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11784 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_ITERATOR_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11785 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_ENTRY_ITERATOR_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
11789 static GType gee_tree_map_sub_entry_iterator_gee_traversable_get_g_type (GeeTreeMapSubEntryIterator* self) {
11790 return GEE_MAP_TYPE_ENTRY;
11794 static GBoxedCopyFunc gee_tree_map_sub_entry_iterator_gee_traversable_get_g_dup_func (GeeTreeMapSubEntryIterator* self) {
11795 return g_object_ref;
11799 static GDestroyNotify gee_tree_map_sub_entry_iterator_gee_traversable_get_g_destroy_func (GeeTreeMapSubEntryIterator* self) {
11800 return g_object_unref;
11804 static void gee_tree_map_sub_entry_iterator_gee_traversable_interface_init (GeeTraversableIface * iface) {
11805 gee_tree_map_sub_entry_iterator_gee_traversable_parent_iface = g_type_interface_peek_parent (iface);
11806 iface->foreach = (gboolean (*)(GeeTraversable*, GeeForallFunc, void*)) gee_tree_map_sub_entry_iterator_real_foreach;
11807 iface->get_g_type = (GType(*)(GeeTraversable*)) gee_tree_map_sub_entry_iterator_gee_traversable_get_g_type;
11808 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeTraversable*)) gee_tree_map_sub_entry_iterator_gee_traversable_get_g_dup_func;
11809 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeTraversable*)) gee_tree_map_sub_entry_iterator_gee_traversable_get_g_destroy_func;
11813 static void gee_tree_map_sub_entry_iterator_gee_iterator_interface_init (GeeIteratorIface * iface) {
11814 gee_tree_map_sub_entry_iterator_gee_iterator_parent_iface = g_type_interface_peek_parent (iface);
11815 iface->get = (gpointer (*)(GeeIterator*)) gee_tree_map_sub_entry_iterator_real_get;
11816 iface->remove = (void (*)(GeeIterator*)) gee_tree_map_sub_entry_iterator_real_remove;
11817 iface->next = (gboolean (*)(GeeIterator*)) gee_tree_map_sub_node_iterator_next;
11818 iface->has_next = (gboolean (*)(GeeIterator*)) gee_tree_map_sub_node_iterator_has_next;
11819 iface->get_valid = (gboolean (*) (GeeIterator *)) gee_tree_map_sub_node_iterator_get_valid;
11820 iface->get_read_only = (gboolean (*) (GeeIterator *)) gee_tree_map_sub_node_iterator_get_read_only;
11824 static GType gee_tree_map_sub_entry_iterator_gee_bidir_iterator_get_g_type (GeeTreeMapSubEntryIterator* self) {
11825 return GEE_MAP_TYPE_ENTRY;
11829 static GBoxedCopyFunc gee_tree_map_sub_entry_iterator_gee_bidir_iterator_get_g_dup_func (GeeTreeMapSubEntryIterator* self) {
11830 return g_object_ref;
11834 static GDestroyNotify gee_tree_map_sub_entry_iterator_gee_bidir_iterator_get_g_destroy_func (GeeTreeMapSubEntryIterator* self) {
11835 return g_object_unref;
11839 static void gee_tree_map_sub_entry_iterator_gee_bidir_iterator_interface_init (GeeBidirIteratorIface * iface) {
11840 gee_tree_map_sub_entry_iterator_gee_bidir_iterator_parent_iface = g_type_interface_peek_parent (iface);
11841 iface->get_g_type = (GType(*)(GeeBidirIterator*)) gee_tree_map_sub_entry_iterator_gee_bidir_iterator_get_g_type;
11842 iface->get_g_dup_func = (GBoxedCopyFunc(*)(GeeBidirIterator*)) gee_tree_map_sub_entry_iterator_gee_bidir_iterator_get_g_dup_func;
11843 iface->get_g_destroy_func = (GDestroyNotify(*)(GeeBidirIterator*)) gee_tree_map_sub_entry_iterator_gee_bidir_iterator_get_g_destroy_func;
11844 iface->previous = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_sub_node_iterator_previous;
11845 iface->has_previous = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_sub_node_iterator_has_previous;
11846 iface->first = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_sub_node_iterator_first;
11847 iface->last = (gboolean (*)(GeeBidirIterator*)) gee_tree_map_sub_node_iterator_last;
11851 static void gee_tree_map_sub_entry_iterator_instance_init (GeeTreeMapSubEntryIterator * self) {
11852 self->priv = GEE_TREE_MAP_SUB_ENTRY_ITERATOR_GET_PRIVATE (self);
11856 static GType gee_tree_map_sub_entry_iterator_get_type (void) {
11857 static volatile gsize gee_tree_map_sub_entry_iterator_type_id__volatile = 0;
11858 if (g_once_init_enter (&gee_tree_map_sub_entry_iterator_type_id__volatile)) {
11859 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 };
11860 static const GInterfaceInfo gee_traversable_info = { (GInterfaceInitFunc) gee_tree_map_sub_entry_iterator_gee_traversable_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
11861 static const GInterfaceInfo gee_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_entry_iterator_gee_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
11862 static const GInterfaceInfo gee_bidir_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_entry_iterator_gee_bidir_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
11863 GType gee_tree_map_sub_entry_iterator_type_id;
11864 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);
11865 g_type_add_interface_static (gee_tree_map_sub_entry_iterator_type_id, GEE_TYPE_TRAVERSABLE, &gee_traversable_info);
11866 g_type_add_interface_static (gee_tree_map_sub_entry_iterator_type_id, GEE_TYPE_ITERATOR, &gee_iterator_info);
11867 g_type_add_interface_static (gee_tree_map_sub_entry_iterator_type_id, GEE_TYPE_BIDIR_ITERATOR, &gee_bidir_iterator_info);
11868 g_once_init_leave (&gee_tree_map_sub_entry_iterator_type_id__volatile, gee_tree_map_sub_entry_iterator_type_id);
11870 return gee_tree_map_sub_entry_iterator_type_id__volatile;
11874 static void _vala_gee_tree_map_sub_entry_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
11875 GeeTreeMapSubEntryIterator * self;
11876 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_ENTRY_ITERATOR, GeeTreeMapSubEntryIterator);
11877 switch (property_id) {
11879 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
11885 static void _vala_gee_tree_map_sub_entry_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
11886 GeeTreeMapSubEntryIterator * self;
11887 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_ENTRY_ITERATOR, GeeTreeMapSubEntryIterator);
11888 switch (property_id) {
11889 case GEE_TREE_MAP_SUB_ENTRY_ITERATOR_K_TYPE:
11890 self->priv->k_type = g_value_get_gtype (value);
11892 case GEE_TREE_MAP_SUB_ENTRY_ITERATOR_K_DUP_FUNC:
11893 self->priv->k_dup_func = g_value_get_pointer (value);
11895 case GEE_TREE_MAP_SUB_ENTRY_ITERATOR_K_DESTROY_FUNC:
11896 self->priv->k_destroy_func = g_value_get_pointer (value);
11898 case GEE_TREE_MAP_SUB_ENTRY_ITERATOR_V_TYPE:
11899 self->priv->v_type = g_value_get_gtype (value);
11901 case GEE_TREE_MAP_SUB_ENTRY_ITERATOR_V_DUP_FUNC:
11902 self->priv->v_dup_func = g_value_get_pointer (value);
11904 case GEE_TREE_MAP_SUB_ENTRY_ITERATOR_V_DESTROY_FUNC:
11905 self->priv->v_destroy_func = g_value_get_pointer (value);
11908 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
11914 static GeeTreeMapMapIterator* gee_tree_map_map_iterator_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, GeeTreeMap* map) {
11915 GeeTreeMapMapIterator * self = NULL;
11916 GeeTreeMap* _tmp0_;
11917 g_return_val_if_fail (map != NULL, NULL);
11919 self = (GeeTreeMapMapIterator*) gee_tree_map_node_iterator_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_);
11920 self->priv->k_type = k_type;
11921 self->priv->k_dup_func = k_dup_func;
11922 self->priv->k_destroy_func = k_destroy_func;
11923 self->priv->v_type = v_type;
11924 self->priv->v_dup_func = v_dup_func;
11925 self->priv->v_destroy_func = v_destroy_func;
11930 static GeeTreeMapMapIterator* gee_tree_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, GeeTreeMap* map) {
11931 return gee_tree_map_map_iterator_construct (GEE_TREE_MAP_TYPE_MAP_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map);
11935 static gpointer gee_tree_map_map_iterator_real_get_key (GeeMapIterator* base) {
11936 GeeTreeMapMapIterator * self;
11937 gpointer result = NULL;
11939 GeeTreeMap* _tmp1_;
11943 GeeTreeMapNode* _tmp5_;
11944 gconstpointer _tmp6_;
11946 self = (GeeTreeMapMapIterator*) base;
11947 _tmp0_ = ((GeeTreeMapNodeIterator*) self)->stamp;
11948 _tmp1_ = ((GeeTreeMapNodeIterator*) self)->_map;
11949 _tmp2_ = _tmp1_->priv->stamp;
11950 _vala_assert (_tmp0_ == _tmp2_, "stamp == _map.stamp");
11951 _tmp3_ = gee_map_iterator_get_valid ((GeeMapIterator*) self);
11953 _vala_assert (_tmp4_, "valid");
11954 _tmp5_ = ((GeeTreeMapNodeIterator*) self)->current;
11955 _tmp6_ = _tmp5_->key;
11956 _tmp7_ = ((_tmp6_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp6_) : ((gpointer) _tmp6_);
11962 static gpointer gee_tree_map_map_iterator_real_get_value (GeeMapIterator* base) {
11963 GeeTreeMapMapIterator * self;
11964 gpointer result = NULL;
11966 GeeTreeMap* _tmp1_;
11970 GeeTreeMapNode* _tmp5_;
11971 gconstpointer _tmp6_;
11973 self = (GeeTreeMapMapIterator*) base;
11974 _tmp0_ = ((GeeTreeMapNodeIterator*) self)->stamp;
11975 _tmp1_ = ((GeeTreeMapNodeIterator*) self)->_map;
11976 _tmp2_ = _tmp1_->priv->stamp;
11977 _vala_assert (_tmp0_ == _tmp2_, "stamp == _map.stamp");
11978 _tmp3_ = gee_map_iterator_get_valid ((GeeMapIterator*) self);
11980 _vala_assert (_tmp4_, "valid");
11981 _tmp5_ = ((GeeTreeMapNodeIterator*) self)->current;
11982 _tmp6_ = _tmp5_->value;
11983 _tmp7_ = ((_tmp6_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp6_) : ((gpointer) _tmp6_);
11989 static void gee_tree_map_map_iterator_real_set_value (GeeMapIterator* base, gconstpointer value) {
11990 GeeTreeMapMapIterator * self;
11992 GeeTreeMap* _tmp1_;
11996 GeeTreeMapNode* _tmp5_;
11997 gconstpointer _tmp6_;
11999 self = (GeeTreeMapMapIterator*) base;
12000 _tmp0_ = ((GeeTreeMapNodeIterator*) self)->stamp;
12001 _tmp1_ = ((GeeTreeMapNodeIterator*) self)->_map;
12002 _tmp2_ = _tmp1_->priv->stamp;
12003 _vala_assert (_tmp0_ == _tmp2_, "stamp == _map.stamp");
12004 _tmp3_ = gee_map_iterator_get_valid ((GeeMapIterator*) self);
12006 _vala_assert (_tmp4_, "valid");
12007 _tmp5_ = ((GeeTreeMapNodeIterator*) self)->current;
12009 _tmp7_ = ((_tmp6_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp6_) : ((gpointer) _tmp6_);
12010 ((_tmp5_->value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_tmp5_->value = (self->priv->v_destroy_func (_tmp5_->value), NULL));
12011 _tmp5_->value = _tmp7_;
12015 static gboolean gee_tree_map_map_iterator_real_get_read_only (GeeTreeMapNodeIterator* base) {
12017 GeeTreeMapMapIterator* self;
12018 self = (GeeTreeMapMapIterator*) base;
12024 static gboolean gee_tree_map_map_iterator_real_get_mutable (GeeMapIterator* base) {
12026 GeeTreeMapMapIterator* self;
12027 self = (GeeTreeMapMapIterator*) base;
12033 static void gee_tree_map_map_iterator_class_init (GeeTreeMapMapIteratorClass * klass) {
12034 gee_tree_map_map_iterator_parent_class = g_type_class_peek_parent (klass);
12035 g_type_class_add_private (klass, sizeof (GeeTreeMapMapIteratorPrivate));
12036 GEE_TREE_MAP_NODE_ITERATOR_CLASS (klass)->get_read_only = gee_tree_map_map_iterator_real_get_read_only;
12037 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_map_iterator_get_property;
12038 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_map_iterator_set_property;
12039 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_MAP_ITERATOR_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12040 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_MAP_ITERATOR_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12041 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_MAP_ITERATOR_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12042 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_MAP_ITERATOR_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12043 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_MAP_ITERATOR_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12044 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_MAP_ITERATOR_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12045 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_MAP_ITERATOR_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
12046 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_MAP_ITERATOR_MUTABLE, g_param_spec_boolean ("mutable", "mutable", "mutable", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
12050 static GType gee_tree_map_map_iterator_gee_map_iterator_get_k_type (GeeTreeMapMapIterator* self) {
12051 return self->priv->k_type;
12055 static GBoxedCopyFunc gee_tree_map_map_iterator_gee_map_iterator_get_k_dup_func (GeeTreeMapMapIterator* self) {
12056 return self->priv->k_dup_func;
12060 static GDestroyNotify gee_tree_map_map_iterator_gee_map_iterator_get_k_destroy_func (GeeTreeMapMapIterator* self) {
12061 return self->priv->k_destroy_func;
12065 static GType gee_tree_map_map_iterator_gee_map_iterator_get_v_type (GeeTreeMapMapIterator* self) {
12066 return self->priv->v_type;
12070 static GBoxedCopyFunc gee_tree_map_map_iterator_gee_map_iterator_get_v_dup_func (GeeTreeMapMapIterator* self) {
12071 return self->priv->v_dup_func;
12075 static GDestroyNotify gee_tree_map_map_iterator_gee_map_iterator_get_v_destroy_func (GeeTreeMapMapIterator* self) {
12076 return self->priv->v_destroy_func;
12080 static void gee_tree_map_map_iterator_gee_map_iterator_interface_init (GeeMapIteratorIface * iface) {
12081 gee_tree_map_map_iterator_gee_map_iterator_parent_iface = g_type_interface_peek_parent (iface);
12082 iface->get_key = (gpointer (*)(GeeMapIterator*)) gee_tree_map_map_iterator_real_get_key;
12083 iface->get_value = (gpointer (*)(GeeMapIterator*)) gee_tree_map_map_iterator_real_get_value;
12084 iface->set_value = (void (*)(GeeMapIterator*, gconstpointer)) gee_tree_map_map_iterator_real_set_value;
12085 iface->get_k_type = (GType(*)(GeeMapIterator*)) gee_tree_map_map_iterator_gee_map_iterator_get_k_type;
12086 iface->get_k_dup_func = (GBoxedCopyFunc(*)(GeeMapIterator*)) gee_tree_map_map_iterator_gee_map_iterator_get_k_dup_func;
12087 iface->get_k_destroy_func = (GDestroyNotify(*)(GeeMapIterator*)) gee_tree_map_map_iterator_gee_map_iterator_get_k_destroy_func;
12088 iface->get_v_type = (GType(*)(GeeMapIterator*)) gee_tree_map_map_iterator_gee_map_iterator_get_v_type;
12089 iface->get_v_dup_func = (GBoxedCopyFunc(*)(GeeMapIterator*)) gee_tree_map_map_iterator_gee_map_iterator_get_v_dup_func;
12090 iface->get_v_destroy_func = (GDestroyNotify(*)(GeeMapIterator*)) gee_tree_map_map_iterator_gee_map_iterator_get_v_destroy_func;
12091 iface->next = (gboolean (*)(GeeMapIterator*)) gee_tree_map_node_iterator_next;
12092 iface->has_next = (gboolean (*)(GeeMapIterator*)) gee_tree_map_node_iterator_has_next;
12093 iface->unset = (void (*)(GeeMapIterator*)) gee_tree_map_node_iterator_unset;
12094 iface->get_read_only = gee_tree_map_map_iterator_real_get_read_only;
12095 iface->get_mutable = gee_tree_map_map_iterator_real_get_mutable;
12096 iface->get_valid = (gboolean (*) (GeeMapIterator *)) gee_tree_map_node_iterator_get_valid;
12100 static GType gee_tree_map_map_iterator_gee_bidir_map_iterator_get_k_type (GeeTreeMapMapIterator* self) {
12101 return self->priv->k_type;
12105 static GBoxedCopyFunc gee_tree_map_map_iterator_gee_bidir_map_iterator_get_k_dup_func (GeeTreeMapMapIterator* self) {
12106 return self->priv->k_dup_func;
12110 static GDestroyNotify gee_tree_map_map_iterator_gee_bidir_map_iterator_get_k_destroy_func (GeeTreeMapMapIterator* self) {
12111 return self->priv->k_destroy_func;
12115 static GType gee_tree_map_map_iterator_gee_bidir_map_iterator_get_v_type (GeeTreeMapMapIterator* self) {
12116 return self->priv->v_type;
12120 static GBoxedCopyFunc gee_tree_map_map_iterator_gee_bidir_map_iterator_get_v_dup_func (GeeTreeMapMapIterator* self) {
12121 return self->priv->v_dup_func;
12125 static GDestroyNotify gee_tree_map_map_iterator_gee_bidir_map_iterator_get_v_destroy_func (GeeTreeMapMapIterator* self) {
12126 return self->priv->v_destroy_func;
12130 static void gee_tree_map_map_iterator_gee_bidir_map_iterator_interface_init (GeeBidirMapIteratorIface * iface) {
12131 gee_tree_map_map_iterator_gee_bidir_map_iterator_parent_iface = g_type_interface_peek_parent (iface);
12132 iface->get_k_type = (GType(*)(GeeBidirMapIterator*)) gee_tree_map_map_iterator_gee_bidir_map_iterator_get_k_type;
12133 iface->get_k_dup_func = (GBoxedCopyFunc(*)(GeeBidirMapIterator*)) gee_tree_map_map_iterator_gee_bidir_map_iterator_get_k_dup_func;
12134 iface->get_k_destroy_func = (GDestroyNotify(*)(GeeBidirMapIterator*)) gee_tree_map_map_iterator_gee_bidir_map_iterator_get_k_destroy_func;
12135 iface->get_v_type = (GType(*)(GeeBidirMapIterator*)) gee_tree_map_map_iterator_gee_bidir_map_iterator_get_v_type;
12136 iface->get_v_dup_func = (GBoxedCopyFunc(*)(GeeBidirMapIterator*)) gee_tree_map_map_iterator_gee_bidir_map_iterator_get_v_dup_func;
12137 iface->get_v_destroy_func = (GDestroyNotify(*)(GeeBidirMapIterator*)) gee_tree_map_map_iterator_gee_bidir_map_iterator_get_v_destroy_func;
12138 iface->previous = (gboolean (*)(GeeBidirMapIterator*)) gee_tree_map_node_iterator_previous;
12139 iface->has_previous = (gboolean (*)(GeeBidirMapIterator*)) gee_tree_map_node_iterator_has_previous;
12140 iface->first = (gboolean (*)(GeeBidirMapIterator*)) gee_tree_map_node_iterator_first;
12141 iface->last = (gboolean (*)(GeeBidirMapIterator*)) gee_tree_map_node_iterator_last;
12145 static void gee_tree_map_map_iterator_instance_init (GeeTreeMapMapIterator * self) {
12146 self->priv = GEE_TREE_MAP_MAP_ITERATOR_GET_PRIVATE (self);
12150 static GType gee_tree_map_map_iterator_get_type (void) {
12151 static volatile gsize gee_tree_map_map_iterator_type_id__volatile = 0;
12152 if (g_once_init_enter (&gee_tree_map_map_iterator_type_id__volatile)) {
12153 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 };
12154 static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_tree_map_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
12155 static const GInterfaceInfo gee_bidir_map_iterator_info = { (GInterfaceInitFunc) gee_tree_map_map_iterator_gee_bidir_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
12156 GType gee_tree_map_map_iterator_type_id;
12157 gee_tree_map_map_iterator_type_id = g_type_register_static (GEE_TREE_MAP_TYPE_NODE_ITERATOR, "GeeTreeMapMapIterator", &g_define_type_info, 0);
12158 g_type_add_interface_static (gee_tree_map_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info);
12159 g_type_add_interface_static (gee_tree_map_map_iterator_type_id, GEE_TYPE_BIDIR_MAP_ITERATOR, &gee_bidir_map_iterator_info);
12160 g_once_init_leave (&gee_tree_map_map_iterator_type_id__volatile, gee_tree_map_map_iterator_type_id);
12162 return gee_tree_map_map_iterator_type_id__volatile;
12166 static void _vala_gee_tree_map_map_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
12167 GeeTreeMapMapIterator * self;
12168 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_MAP_ITERATOR, GeeTreeMapMapIterator);
12169 switch (property_id) {
12170 case GEE_TREE_MAP_MAP_ITERATOR_READ_ONLY:
12171 g_value_set_boolean (value, gee_tree_map_node_iterator_get_read_only ((GeeTreeMapNodeIterator*) self));
12173 case GEE_TREE_MAP_MAP_ITERATOR_MUTABLE:
12174 g_value_set_boolean (value, gee_map_iterator_get_mutable ((GeeMapIterator*) self));
12177 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
12183 static void _vala_gee_tree_map_map_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
12184 GeeTreeMapMapIterator * self;
12185 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_MAP_ITERATOR, GeeTreeMapMapIterator);
12186 switch (property_id) {
12187 case GEE_TREE_MAP_MAP_ITERATOR_K_TYPE:
12188 self->priv->k_type = g_value_get_gtype (value);
12190 case GEE_TREE_MAP_MAP_ITERATOR_K_DUP_FUNC:
12191 self->priv->k_dup_func = g_value_get_pointer (value);
12193 case GEE_TREE_MAP_MAP_ITERATOR_K_DESTROY_FUNC:
12194 self->priv->k_destroy_func = g_value_get_pointer (value);
12196 case GEE_TREE_MAP_MAP_ITERATOR_V_TYPE:
12197 self->priv->v_type = g_value_get_gtype (value);
12199 case GEE_TREE_MAP_MAP_ITERATOR_V_DUP_FUNC:
12200 self->priv->v_dup_func = g_value_get_pointer (value);
12202 case GEE_TREE_MAP_MAP_ITERATOR_V_DESTROY_FUNC:
12203 self->priv->v_destroy_func = g_value_get_pointer (value);
12206 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
12212 static GeeTreeMapSubMapIterator* gee_tree_map_sub_map_iterator_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, GeeTreeMap* map, GeeTreeMapRange* range) {
12213 GeeTreeMapSubMapIterator * self = NULL;
12214 GeeTreeMap* _tmp0_;
12215 GeeTreeMapRange* _tmp1_;
12216 g_return_val_if_fail (map != NULL, NULL);
12217 g_return_val_if_fail (range != NULL, NULL);
12220 self = (GeeTreeMapSubMapIterator*) gee_tree_map_sub_node_iterator_construct (object_type, k_type, (GBoxedCopyFunc) k_dup_func, k_destroy_func, v_type, (GBoxedCopyFunc) v_dup_func, v_destroy_func, _tmp0_, _tmp1_);
12221 self->priv->k_type = k_type;
12222 self->priv->k_dup_func = k_dup_func;
12223 self->priv->k_destroy_func = k_destroy_func;
12224 self->priv->v_type = v_type;
12225 self->priv->v_dup_func = v_dup_func;
12226 self->priv->v_destroy_func = v_destroy_func;
12231 static GeeTreeMapSubMapIterator* gee_tree_map_sub_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, GeeTreeMap* map, GeeTreeMapRange* range) {
12232 return gee_tree_map_sub_map_iterator_construct (GEE_TREE_MAP_TYPE_SUB_MAP_ITERATOR, k_type, k_dup_func, k_destroy_func, v_type, v_dup_func, v_destroy_func, map, range);
12236 static gpointer gee_tree_map_sub_map_iterator_real_get_key (GeeMapIterator* base) {
12237 GeeTreeMapSubMapIterator * self;
12238 gpointer result = NULL;
12241 GeeTreeMapNodeIterator* _tmp2_;
12242 GeeTreeMapNode* _tmp3_;
12243 gconstpointer _tmp4_;
12245 self = (GeeTreeMapSubMapIterator*) base;
12246 _tmp0_ = gee_map_iterator_get_valid ((GeeMapIterator*) self);
12248 _vala_assert (_tmp1_, "valid");
12249 _tmp2_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
12250 _tmp3_ = _tmp2_->current;
12251 _tmp4_ = _tmp3_->key;
12252 _tmp5_ = ((_tmp4_ != NULL) && (self->priv->k_dup_func != NULL)) ? self->priv->k_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_);
12258 static gpointer gee_tree_map_sub_map_iterator_real_get_value (GeeMapIterator* base) {
12259 GeeTreeMapSubMapIterator * self;
12260 gpointer result = NULL;
12263 GeeTreeMapNodeIterator* _tmp2_;
12264 GeeTreeMapNode* _tmp3_;
12265 gconstpointer _tmp4_;
12267 self = (GeeTreeMapSubMapIterator*) base;
12268 _tmp0_ = gee_map_iterator_get_valid ((GeeMapIterator*) self);
12270 _vala_assert (_tmp1_, "valid");
12271 _tmp2_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
12272 _tmp3_ = _tmp2_->current;
12273 _tmp4_ = _tmp3_->value;
12274 _tmp5_ = ((_tmp4_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_);
12280 static void gee_tree_map_sub_map_iterator_real_set_value (GeeMapIterator* base, gconstpointer value) {
12281 GeeTreeMapSubMapIterator * self;
12284 GeeTreeMapNodeIterator* _tmp2_;
12285 GeeTreeMapNode* _tmp3_;
12286 gconstpointer _tmp4_;
12288 self = (GeeTreeMapSubMapIterator*) base;
12289 _tmp0_ = gee_map_iterator_get_valid ((GeeMapIterator*) self);
12291 _vala_assert (_tmp1_, "valid");
12292 _tmp2_ = ((GeeTreeMapSubNodeIterator*) self)->iterator;
12293 _tmp3_ = _tmp2_->current;
12295 _tmp5_ = ((_tmp4_ != NULL) && (self->priv->v_dup_func != NULL)) ? self->priv->v_dup_func ((gpointer) _tmp4_) : ((gpointer) _tmp4_);
12296 ((_tmp3_->value == NULL) || (self->priv->v_destroy_func == NULL)) ? NULL : (_tmp3_->value = (self->priv->v_destroy_func (_tmp3_->value), NULL));
12297 _tmp3_->value = _tmp5_;
12301 static gboolean gee_tree_map_sub_map_iterator_real_get_read_only (GeeTreeMapSubNodeIterator* base) {
12303 GeeTreeMapSubMapIterator* self;
12304 self = (GeeTreeMapSubMapIterator*) base;
12310 static gboolean gee_tree_map_sub_map_iterator_real_get_mutable (GeeMapIterator* base) {
12312 GeeTreeMapSubMapIterator* self;
12313 self = (GeeTreeMapSubMapIterator*) base;
12319 static void gee_tree_map_sub_map_iterator_class_init (GeeTreeMapSubMapIteratorClass * klass) {
12320 gee_tree_map_sub_map_iterator_parent_class = g_type_class_peek_parent (klass);
12321 g_type_class_add_private (klass, sizeof (GeeTreeMapSubMapIteratorPrivate));
12322 GEE_TREE_MAP_SUB_NODE_ITERATOR_CLASS (klass)->get_read_only = gee_tree_map_sub_map_iterator_real_get_read_only;
12323 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_sub_map_iterator_get_property;
12324 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_sub_map_iterator_set_property;
12325 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_ITERATOR_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12326 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_ITERATOR_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12327 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_ITERATOR_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12328 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_ITERATOR_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12329 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_ITERATOR_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12330 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_ITERATOR_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12331 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_ITERATOR_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
12332 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SUB_MAP_ITERATOR_MUTABLE, g_param_spec_boolean ("mutable", "mutable", "mutable", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
12336 static GType gee_tree_map_sub_map_iterator_gee_map_iterator_get_k_type (GeeTreeMapSubMapIterator* self) {
12337 return self->priv->k_type;
12341 static GBoxedCopyFunc gee_tree_map_sub_map_iterator_gee_map_iterator_get_k_dup_func (GeeTreeMapSubMapIterator* self) {
12342 return self->priv->k_dup_func;
12346 static GDestroyNotify gee_tree_map_sub_map_iterator_gee_map_iterator_get_k_destroy_func (GeeTreeMapSubMapIterator* self) {
12347 return self->priv->k_destroy_func;
12351 static GType gee_tree_map_sub_map_iterator_gee_map_iterator_get_v_type (GeeTreeMapSubMapIterator* self) {
12352 return self->priv->v_type;
12356 static GBoxedCopyFunc gee_tree_map_sub_map_iterator_gee_map_iterator_get_v_dup_func (GeeTreeMapSubMapIterator* self) {
12357 return self->priv->v_dup_func;
12361 static GDestroyNotify gee_tree_map_sub_map_iterator_gee_map_iterator_get_v_destroy_func (GeeTreeMapSubMapIterator* self) {
12362 return self->priv->v_destroy_func;
12366 static void gee_tree_map_sub_map_iterator_gee_map_iterator_interface_init (GeeMapIteratorIface * iface) {
12367 gee_tree_map_sub_map_iterator_gee_map_iterator_parent_iface = g_type_interface_peek_parent (iface);
12368 iface->get_key = (gpointer (*)(GeeMapIterator*)) gee_tree_map_sub_map_iterator_real_get_key;
12369 iface->get_value = (gpointer (*)(GeeMapIterator*)) gee_tree_map_sub_map_iterator_real_get_value;
12370 iface->set_value = (void (*)(GeeMapIterator*, gconstpointer)) gee_tree_map_sub_map_iterator_real_set_value;
12371 iface->get_k_type = (GType(*)(GeeMapIterator*)) gee_tree_map_sub_map_iterator_gee_map_iterator_get_k_type;
12372 iface->get_k_dup_func = (GBoxedCopyFunc(*)(GeeMapIterator*)) gee_tree_map_sub_map_iterator_gee_map_iterator_get_k_dup_func;
12373 iface->get_k_destroy_func = (GDestroyNotify(*)(GeeMapIterator*)) gee_tree_map_sub_map_iterator_gee_map_iterator_get_k_destroy_func;
12374 iface->get_v_type = (GType(*)(GeeMapIterator*)) gee_tree_map_sub_map_iterator_gee_map_iterator_get_v_type;
12375 iface->get_v_dup_func = (GBoxedCopyFunc(*)(GeeMapIterator*)) gee_tree_map_sub_map_iterator_gee_map_iterator_get_v_dup_func;
12376 iface->get_v_destroy_func = (GDestroyNotify(*)(GeeMapIterator*)) gee_tree_map_sub_map_iterator_gee_map_iterator_get_v_destroy_func;
12377 iface->next = (gboolean (*)(GeeMapIterator*)) gee_tree_map_sub_node_iterator_next;
12378 iface->has_next = (gboolean (*)(GeeMapIterator*)) gee_tree_map_sub_node_iterator_has_next;
12379 iface->unset = (void (*)(GeeMapIterator*)) gee_tree_map_sub_node_iterator_unset;
12380 iface->get_read_only = gee_tree_map_sub_map_iterator_real_get_read_only;
12381 iface->get_mutable = gee_tree_map_sub_map_iterator_real_get_mutable;
12382 iface->get_valid = (gboolean (*) (GeeMapIterator *)) gee_tree_map_sub_node_iterator_get_valid;
12386 static GType gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_k_type (GeeTreeMapSubMapIterator* self) {
12387 return self->priv->k_type;
12391 static GBoxedCopyFunc gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_k_dup_func (GeeTreeMapSubMapIterator* self) {
12392 return self->priv->k_dup_func;
12396 static GDestroyNotify gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_k_destroy_func (GeeTreeMapSubMapIterator* self) {
12397 return self->priv->k_destroy_func;
12401 static GType gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_v_type (GeeTreeMapSubMapIterator* self) {
12402 return self->priv->v_type;
12406 static GBoxedCopyFunc gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_v_dup_func (GeeTreeMapSubMapIterator* self) {
12407 return self->priv->v_dup_func;
12411 static GDestroyNotify gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_v_destroy_func (GeeTreeMapSubMapIterator* self) {
12412 return self->priv->v_destroy_func;
12416 static void gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_interface_init (GeeBidirMapIteratorIface * iface) {
12417 gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_parent_iface = g_type_interface_peek_parent (iface);
12418 iface->get_k_type = (GType(*)(GeeBidirMapIterator*)) gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_k_type;
12419 iface->get_k_dup_func = (GBoxedCopyFunc(*)(GeeBidirMapIterator*)) gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_k_dup_func;
12420 iface->get_k_destroy_func = (GDestroyNotify(*)(GeeBidirMapIterator*)) gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_k_destroy_func;
12421 iface->get_v_type = (GType(*)(GeeBidirMapIterator*)) gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_v_type;
12422 iface->get_v_dup_func = (GBoxedCopyFunc(*)(GeeBidirMapIterator*)) gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_v_dup_func;
12423 iface->get_v_destroy_func = (GDestroyNotify(*)(GeeBidirMapIterator*)) gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_get_v_destroy_func;
12424 iface->previous = (gboolean (*)(GeeBidirMapIterator*)) gee_tree_map_sub_node_iterator_previous;
12425 iface->has_previous = (gboolean (*)(GeeBidirMapIterator*)) gee_tree_map_sub_node_iterator_has_previous;
12426 iface->first = (gboolean (*)(GeeBidirMapIterator*)) gee_tree_map_sub_node_iterator_first;
12427 iface->last = (gboolean (*)(GeeBidirMapIterator*)) gee_tree_map_sub_node_iterator_last;
12431 static void gee_tree_map_sub_map_iterator_instance_init (GeeTreeMapSubMapIterator * self) {
12432 self->priv = GEE_TREE_MAP_SUB_MAP_ITERATOR_GET_PRIVATE (self);
12436 static GType gee_tree_map_sub_map_iterator_get_type (void) {
12437 static volatile gsize gee_tree_map_sub_map_iterator_type_id__volatile = 0;
12438 if (g_once_init_enter (&gee_tree_map_sub_map_iterator_type_id__volatile)) {
12439 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 };
12440 static const GInterfaceInfo gee_map_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_map_iterator_gee_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
12441 static const GInterfaceInfo gee_bidir_map_iterator_info = { (GInterfaceInitFunc) gee_tree_map_sub_map_iterator_gee_bidir_map_iterator_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
12442 GType gee_tree_map_sub_map_iterator_type_id;
12443 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);
12444 g_type_add_interface_static (gee_tree_map_sub_map_iterator_type_id, GEE_TYPE_MAP_ITERATOR, &gee_map_iterator_info);
12445 g_type_add_interface_static (gee_tree_map_sub_map_iterator_type_id, GEE_TYPE_BIDIR_MAP_ITERATOR, &gee_bidir_map_iterator_info);
12446 g_once_init_leave (&gee_tree_map_sub_map_iterator_type_id__volatile, gee_tree_map_sub_map_iterator_type_id);
12448 return gee_tree_map_sub_map_iterator_type_id__volatile;
12452 static void _vala_gee_tree_map_sub_map_iterator_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
12453 GeeTreeMapSubMapIterator * self;
12454 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_MAP_ITERATOR, GeeTreeMapSubMapIterator);
12455 switch (property_id) {
12456 case GEE_TREE_MAP_SUB_MAP_ITERATOR_READ_ONLY:
12457 g_value_set_boolean (value, gee_tree_map_sub_node_iterator_get_read_only ((GeeTreeMapSubNodeIterator*) self));
12459 case GEE_TREE_MAP_SUB_MAP_ITERATOR_MUTABLE:
12460 g_value_set_boolean (value, gee_map_iterator_get_mutable ((GeeMapIterator*) self));
12463 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
12469 static void _vala_gee_tree_map_sub_map_iterator_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
12470 GeeTreeMapSubMapIterator * self;
12471 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TREE_MAP_TYPE_SUB_MAP_ITERATOR, GeeTreeMapSubMapIterator);
12472 switch (property_id) {
12473 case GEE_TREE_MAP_SUB_MAP_ITERATOR_K_TYPE:
12474 self->priv->k_type = g_value_get_gtype (value);
12476 case GEE_TREE_MAP_SUB_MAP_ITERATOR_K_DUP_FUNC:
12477 self->priv->k_dup_func = g_value_get_pointer (value);
12479 case GEE_TREE_MAP_SUB_MAP_ITERATOR_K_DESTROY_FUNC:
12480 self->priv->k_destroy_func = g_value_get_pointer (value);
12482 case GEE_TREE_MAP_SUB_MAP_ITERATOR_V_TYPE:
12483 self->priv->v_type = g_value_get_gtype (value);
12485 case GEE_TREE_MAP_SUB_MAP_ITERATOR_V_DUP_FUNC:
12486 self->priv->v_dup_func = g_value_get_pointer (value);
12488 case GEE_TREE_MAP_SUB_MAP_ITERATOR_V_DESTROY_FUNC:
12489 self->priv->v_destroy_func = g_value_get_pointer (value);
12492 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
12498 static void gee_tree_map_class_init (GeeTreeMapClass * klass) {
12499 gee_tree_map_parent_class = g_type_class_peek_parent (klass);
12500 g_type_class_add_private (klass, sizeof (GeeTreeMapPrivate));
12501 GEE_ABSTRACT_MAP_CLASS (klass)->has_key = gee_tree_map_real_has_key;
12502 GEE_ABSTRACT_MAP_CLASS (klass)->has = gee_tree_map_real_has;
12503 GEE_ABSTRACT_MAP_CLASS (klass)->get = gee_tree_map_real_get;
12504 GEE_ABSTRACT_MAP_CLASS (klass)->set = gee_tree_map_real_set;
12505 GEE_ABSTRACT_MAP_CLASS (klass)->unset = gee_tree_map_real_unset;
12506 GEE_ABSTRACT_MAP_CLASS (klass)->clear = gee_tree_map_real_clear;
12507 GEE_ABSTRACT_SORTED_MAP_CLASS (klass)->head_map = gee_tree_map_real_head_map;
12508 GEE_ABSTRACT_SORTED_MAP_CLASS (klass)->tail_map = gee_tree_map_real_tail_map;
12509 GEE_ABSTRACT_SORTED_MAP_CLASS (klass)->sub_map = gee_tree_map_real_sub_map;
12510 GEE_ABSTRACT_MAP_CLASS (klass)->map_iterator = gee_tree_map_real_map_iterator;
12511 GEE_ABSTRACT_BIDIR_SORTED_MAP_CLASS (klass)->bidir_map_iterator = gee_tree_map_real_bidir_map_iterator;
12512 GEE_ABSTRACT_MAP_CLASS (klass)->get_size = gee_tree_map_real_get_size;
12513 GEE_ABSTRACT_MAP_CLASS (klass)->get_read_only = gee_tree_map_real_get_read_only;
12514 GEE_ABSTRACT_MAP_CLASS (klass)->get_keys = gee_tree_map_real_get_keys;
12515 GEE_ABSTRACT_MAP_CLASS (klass)->get_values = gee_tree_map_real_get_values;
12516 GEE_ABSTRACT_MAP_CLASS (klass)->get_entries = gee_tree_map_real_get_entries;
12517 GEE_ABSTRACT_SORTED_MAP_CLASS (klass)->get_ascending_keys = gee_tree_map_real_get_ascending_keys;
12518 GEE_ABSTRACT_SORTED_MAP_CLASS (klass)->get_ascending_entries = gee_tree_map_real_get_ascending_entries;
12519 G_OBJECT_CLASS (klass)->get_property = _vala_gee_tree_map_get_property;
12520 G_OBJECT_CLASS (klass)->set_property = _vala_gee_tree_map_set_property;
12521 G_OBJECT_CLASS (klass)->finalize = gee_tree_map_finalize;
12522 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_K_TYPE, g_param_spec_gtype ("k-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12523 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_K_DUP_FUNC, g_param_spec_pointer ("k-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12524 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_K_DESTROY_FUNC, g_param_spec_pointer ("k-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12525 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_V_TYPE, g_param_spec_gtype ("v-type", "type", "type", G_TYPE_NONE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12526 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_V_DUP_FUNC, g_param_spec_pointer ("v-dup-func", "dup func", "dup func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12527 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_V_DESTROY_FUNC, g_param_spec_pointer ("v-destroy-func", "destroy func", "destroy func", G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
12531 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_SIZE, g_param_spec_int ("size", "size", "size", G_MININT, G_MAXINT, 0, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
12532 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_READ_ONLY, g_param_spec_boolean ("read-only", "read-only", "read-only", FALSE, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
12536 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_KEYS, g_param_spec_object ("keys", "keys", "keys", GEE_TYPE_SET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
12540 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_VALUES, g_param_spec_object ("values", "values", "values", GEE_TYPE_COLLECTION, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
12544 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ENTRIES, g_param_spec_object ("entries", "entries", "entries", GEE_TYPE_SET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
12548 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ASCENDING_KEYS, g_param_spec_object ("ascending-keys", "ascending-keys", "ascending-keys", GEE_TYPE_SORTED_SET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
12552 g_object_class_install_property (G_OBJECT_CLASS (klass), GEE_TREE_MAP_ASCENDING_ENTRIES, g_param_spec_object ("ascending-entries", "ascending-entries", "ascending-entries", GEE_TYPE_SORTED_SET, G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE));
12556 static void gee_tree_map_instance_init (GeeTreeMap * self) {
12557 self->priv = GEE_TREE_MAP_GET_PRIVATE (self);
12558 self->priv->_size = 0;
12559 self->priv->root = NULL;
12560 self->priv->first = NULL;
12561 self->priv->last = NULL;
12562 self->priv->stamp = 0;
12566 static void gee_tree_map_finalize (GObject* obj) {
12568 self = G_TYPE_CHECK_INSTANCE_CAST (obj, GEE_TYPE_TREE_MAP, GeeTreeMap);
12569 gee_abstract_map_clear ((GeeAbstractMap*) self);
12570 (self->priv->_key_compare_func_target_destroy_notify == NULL) ? NULL : (self->priv->_key_compare_func_target_destroy_notify (self->priv->_key_compare_func_target), NULL);
12571 self->priv->_key_compare_func = NULL;
12572 self->priv->_key_compare_func_target = NULL;
12573 self->priv->_key_compare_func_target_destroy_notify = NULL;
12574 (self->priv->_value_equal_func_target_destroy_notify == NULL) ? NULL : (self->priv->_value_equal_func_target_destroy_notify (self->priv->_value_equal_func_target), NULL);
12575 self->priv->_value_equal_func = NULL;
12576 self->priv->_value_equal_func_target = NULL;
12577 self->priv->_value_equal_func_target_destroy_notify = NULL;
12578 _gee_tree_map_node_free0 (self->priv->root);
12579 G_OBJECT_CLASS (gee_tree_map_parent_class)->finalize (obj);
12584 * Left-leaning red-black tree implementation of the {@link Map} interface.
12586 * This implementation is especially well designed for large quantity of
12587 * data. The (balanced) tree implementation insure that the set and get
12588 * methods are in logarithmic complexity.
12592 GType gee_tree_map_get_type (void) {
12593 static volatile gsize gee_tree_map_type_id__volatile = 0;
12594 if (g_once_init_enter (&gee_tree_map_type_id__volatile)) {
12595 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 };
12596 GType gee_tree_map_type_id;
12597 gee_tree_map_type_id = g_type_register_static (GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, "GeeTreeMap", &g_define_type_info, 0);
12598 g_once_init_leave (&gee_tree_map_type_id__volatile, gee_tree_map_type_id);
12600 return gee_tree_map_type_id__volatile;
12604 static void _vala_gee_tree_map_get_property (GObject * object, guint property_id, GValue * value, GParamSpec * pspec) {
12606 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_TREE_MAP, GeeTreeMap);
12607 switch (property_id) {
12608 case GEE_TREE_MAP_SIZE:
12609 g_value_set_int (value, gee_abstract_map_get_size ((GeeAbstractMap*) self));
12611 case GEE_TREE_MAP_READ_ONLY:
12612 g_value_set_boolean (value, gee_abstract_map_get_read_only ((GeeAbstractMap*) self));
12614 case GEE_TREE_MAP_KEYS:
12615 g_value_take_object (value, gee_abstract_map_get_keys ((GeeAbstractMap*) self));
12617 case GEE_TREE_MAP_VALUES:
12618 g_value_take_object (value, gee_abstract_map_get_values ((GeeAbstractMap*) self));
12620 case GEE_TREE_MAP_ENTRIES:
12621 g_value_take_object (value, gee_abstract_map_get_entries ((GeeAbstractMap*) self));
12623 case GEE_TREE_MAP_ASCENDING_KEYS:
12624 g_value_take_object (value, gee_abstract_sorted_map_get_ascending_keys ((GeeAbstractSortedMap*) self));
12626 case GEE_TREE_MAP_ASCENDING_ENTRIES:
12627 g_value_take_object (value, gee_abstract_sorted_map_get_ascending_entries ((GeeAbstractSortedMap*) self));
12630 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
12636 static void _vala_gee_tree_map_set_property (GObject * object, guint property_id, const GValue * value, GParamSpec * pspec) {
12638 self = G_TYPE_CHECK_INSTANCE_CAST (object, GEE_TYPE_TREE_MAP, GeeTreeMap);
12639 switch (property_id) {
12640 case GEE_TREE_MAP_K_TYPE:
12641 self->priv->k_type = g_value_get_gtype (value);
12643 case GEE_TREE_MAP_K_DUP_FUNC:
12644 self->priv->k_dup_func = g_value_get_pointer (value);
12646 case GEE_TREE_MAP_K_DESTROY_FUNC:
12647 self->priv->k_destroy_func = g_value_get_pointer (value);
12649 case GEE_TREE_MAP_V_TYPE:
12650 self->priv->v_type = g_value_get_gtype (value);
12652 case GEE_TREE_MAP_V_DUP_FUNC:
12653 self->priv->v_dup_func = g_value_get_pointer (value);
12655 case GEE_TREE_MAP_V_DESTROY_FUNC:
12656 self->priv->v_destroy_func = g_value_get_pointer (value);
12659 G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);