var get_item = new CCodeFunctionCall (new CCodeIdentifier ("g_sequence_get"));
get_item.add_argument (get_variable_cexpression (sequence_iter));
+ CCodeExpression element_expr = get_item;
+
+ if (collection_type.get_type_arguments ().size != 1) {
+ Report.error (stmt.source_reference, "internal error: missing generic type argument");
+ stmt.error = true;
+ return;
+ }
+
var element_type = collection_type.get_type_arguments ().get (0).copy ();
element_type.value_owned = false;
- var element_expr = get_cvalue_ (transform_value (new GLibValue (element_type, get_item, true), stmt.type_reference, stmt));
+ element_expr = convert_from_generic_pointer (element_expr, element_type);
+ element_expr = get_cvalue_ (transform_value (new GLibValue (element_type, element_expr), stmt.type_reference, stmt));
visit_local_variable (stmt.element_variable);
ccode.add_assignment (get_variable_cexpression (get_local_cname (stmt.element_variable)), element_expr);
for (item_iter = g_sequence_get_begin_iter (item_collection); !g_sequence_iter_is_end (item_iter); item_iter = g_sequence_iter_next (item_iter)) {
GValue* _tmp0_;
GValue* item = NULL;
- _tmp0_ = __g_value_dup0 (g_sequence_get (item_iter));
+ _tmp0_ = __g_value_dup0 ((GValue*) g_sequence_get (item_iter));
item = _tmp0_;
{
guint _tmp1_;
item_collection = sequence;
for (item_iter = g_sequence_get_begin_iter (item_collection); !g_sequence_iter_is_end (item_iter); item_iter = g_sequence_iter_next (item_iter)) {
GValue* item = NULL;
- item = g_sequence_get (item_iter);
+ item = (GValue*) g_sequence_get (item_iter);
{
guint _tmp0_;
_tmp0_ = i;