hash_table_new.add_argument (new CCodeIdentifier ("g_direct_equal"));
}
- if (key_type.type_symbol.is_subtype_of (string_type.type_symbol)) {
- hash_table_new.add_argument (new CCodeIdentifier ("g_free"));
- } else if (key_type.type_symbol == gvariant_type) {
- hash_table_new.add_argument (new CCodeCastExpression (new CCodeIdentifier ("g_variant_unref"), "GDestroyNotify"));
- } else if (key_type.type_symbol.get_full_name () == "GLib.HashTable") {
- hash_table_new.add_argument (new CCodeCastExpression (new CCodeIdentifier ("g_hash_table_unref"), "GDestroyNotify"));
- } else {
- hash_table_new.add_argument (new CCodeConstant ("NULL"));
- }
+ hash_table_new.add_argument (new CCodeCastExpression (get_destroy_func_expression (key_type), "GDestroyNotify"));
+ hash_table_new.add_argument (new CCodeCastExpression (get_destroy_func_expression (value_type), "GDestroyNotify"));
- if (value_type.type_symbol.is_subtype_of (string_type.type_symbol)) {
- hash_table_new.add_argument (new CCodeIdentifier ("g_free"));
- } else if (value_type.type_symbol == gvariant_type) {
- hash_table_new.add_argument (new CCodeCastExpression (new CCodeIdentifier ("g_variant_unref"), "GDestroyNotify"));
- } else if (value_type.type_symbol.get_full_name () == "GLib.HashTable") {
- hash_table_new.add_argument (new CCodeCastExpression (new CCodeIdentifier ("g_hash_table_unref"), "GDestroyNotify"));
- } else {
- hash_table_new.add_argument (new CCodeConstant ("NULL"));
- }
ccode.add_assignment (new CCodeIdentifier (temp_name), hash_table_new);
var iter_call = new CCodeFunctionCall (new CCodeIdentifier ("g_variant_iter_init"));
GVariant* _tmp3_;
GVariant* _tmp4_;
GHashTable* _tmp5_;
- _tmp1_ = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+ _tmp1_ = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) g_free);
g_variant_iter_init (&_tmp2_, value);
while (g_variant_iter_loop (&_tmp2_, "{?*}", &_tmp3_, &_tmp4_)) {
g_hash_table_insert (_tmp1_, g_variant_dup_string (_tmp3_, NULL), g_variant_dup_string (_tmp4_, NULL));
GVariant* _tmp3_;
GVariant* _tmp4_;
GHashTable* _tmp5_;
- _tmp1_ = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_free);
+ _tmp1_ = g_hash_table_new_full (g_direct_hash, g_direct_equal, (GDestroyNotify) NULL, (GDestroyNotify) g_free);
g_variant_iter_init (&_tmp2_, value);
while (g_variant_iter_loop (&_tmp2_, "{?*}", &_tmp3_, &_tmp4_)) {
g_hash_table_insert (_tmp1_, (gpointer) ((gintptr) g_variant_get_int32 (_tmp3_)), g_variant_dup_string (_tmp4_, NULL));
}
g_variant_iter_init (&_reply_iter, _reply);
_tmp0_ = g_variant_iter_next_value (&_reply_iter);
- _tmp1_ = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_hash_table_unref);
+ _tmp1_ = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) g_hash_table_unref);
g_variant_iter_init (&_tmp2_, _tmp0_);
while (g_variant_iter_loop (&_tmp2_, "{?*}", &_tmp3_, &_tmp4_)) {
GHashTable* _tmp5_;
GVariantIter _tmp6_;
GVariant* _tmp7_;
GVariant* _tmp8_;
- _tmp5_ = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_variant_unref);
+ _tmp5_ = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) g_variant_unref);
g_variant_iter_init (&_tmp6_, _tmp4_);
while (g_variant_iter_loop (&_tmp6_, "{?*}", &_tmp7_, &_tmp8_)) {
g_hash_table_insert (_tmp5_, g_variant_dup_string (_tmp7_, NULL), g_variant_get_variant (_tmp8_));
}
g_variant_iter_init (&_reply_iter, _reply);
_tmp0_ = g_variant_iter_next_value (&_reply_iter);
- _tmp1_ = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_variant_unref);
+ _tmp1_ = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) g_variant_unref);
g_variant_iter_init (&_tmp2_, _tmp0_);
while (g_variant_iter_loop (&_tmp2_, "{?*}", &_tmp3_, &_tmp4_)) {
g_hash_table_insert (_tmp1_, g_variant_dup_string (_tmp3_, NULL), g_variant_get_variant (_tmp4_));
}
g_variant_iter_init (&_reply_iter, _reply);
_tmp4_ = g_variant_iter_next_value (&_reply_iter);
- _tmp5_ = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_variant_unref);
+ _tmp5_ = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) g_variant_unref);
g_variant_iter_init (&_tmp6_, _tmp4_);
while (g_variant_iter_loop (&_tmp6_, "{?*}", &_tmp7_, &_tmp8_)) {
g_hash_table_insert (_tmp5_, g_variant_dup_string (_tmp7_, NULL), g_variant_get_variant (_tmp8_));
_ready_data->a = g_variant_get_int32 (_tmp20_);
g_variant_unref (_tmp20_);
_tmp21_ = g_variant_iter_next_value (&_arguments_iter);
- _tmp22_ = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ _tmp22_ = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) NULL);
g_variant_iter_init (&_tmp23_, _tmp21_);
while (g_variant_iter_loop (&_tmp23_, "{?*}", &_tmp24_, &_tmp25_)) {
g_hash_table_insert (_tmp22_, g_variant_dup_string (_tmp24_, NULL), (gpointer) ((gintptr) g_variant_get_int32 (_tmp25_)));
_ready_data->a = g_variant_get_int32 (_tmp26_);
g_variant_unref (_tmp26_);
_tmp27_ = g_variant_iter_next_value (&_arguments_iter);
- _tmp28_ = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ _tmp28_ = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) NULL);
g_variant_iter_init (&_tmp29_, _tmp27_);
while (g_variant_iter_loop (&_tmp29_, "{?*}", &_tmp30_, &_tmp31_)) {
g_hash_table_insert (_tmp28_, g_variant_dup_string (_tmp30_, NULL), (gpointer) ((gintptr) g_variant_get_int32 (_tmp31_)));
_ready_data->a = g_variant_get_int32 (_tmp32_);
g_variant_unref (_tmp32_);
_tmp33_ = g_variant_iter_next_value (&_arguments_iter);
- _tmp34_ = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ _tmp34_ = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) NULL);
g_variant_iter_init (&_tmp35_, _tmp33_);
while (g_variant_iter_loop (&_tmp35_, "{?*}", &_tmp36_, &_tmp37_)) {
g_hash_table_insert (_tmp34_, g_variant_dup_string (_tmp36_, NULL), (gpointer) ((gintptr) g_variant_get_int32 (_tmp37_)));
a = g_variant_get_int32 (_tmp0_);
g_variant_unref (_tmp0_);
_tmp1_ = g_variant_iter_next_value (&_arguments_iter);
- _tmp2_ = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ _tmp2_ = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) NULL);
g_variant_iter_init (&_tmp3_, _tmp1_);
while (g_variant_iter_loop (&_tmp3_, "{?*}", &_tmp4_, &_tmp5_)) {
g_hash_table_insert (_tmp2_, g_variant_dup_string (_tmp4_, NULL), (gpointer) ((gintptr) g_variant_get_int32 (_tmp5_)));
a = g_variant_get_int64 (_tmp6_);
g_variant_unref (_tmp6_);
_tmp7_ = g_variant_iter_next_value (&_arguments_iter);
- _tmp8_ = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ _tmp8_ = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) NULL);
g_variant_iter_init (&_tmp9_, _tmp7_);
while (g_variant_iter_loop (&_tmp9_, "{?*}", &_tmp10_, &_tmp11_)) {
g_hash_table_insert (_tmp8_, g_variant_dup_string (_tmp10_, NULL), (gpointer) ((gintptr) g_variant_get_int32 (_tmp11_)));
a = g_variant_get_int32 (_tmp12_);
g_variant_unref (_tmp12_);
_tmp13_ = g_variant_iter_next_value (&_arguments_iter);
- _tmp14_ = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ _tmp14_ = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) NULL);
g_variant_iter_init (&_tmp15_, _tmp13_);
while (g_variant_iter_loop (&_tmp15_, "{?*}", &_tmp16_, &_tmp17_)) {
g_hash_table_insert (_tmp14_, g_variant_dup_string (_tmp16_, NULL), (gpointer) ((gintptr) g_variant_get_int32 (_tmp17_)));