Sha256: d3172a3a6e6ec0d0733385ae3c814df2451dd9d5f140887a3b032af792756a07
Contents?: true
Size: 1.41 KB
Versions: 19
Compression:
Stored size: 1.41 KB
Contents
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */ /********************************************************************** rbgobj_valuearray.c - $Author: mutoh $ $Date: 2006/05/17 14:00:24 $ Copyright (C) 2006 Sjoerd Simons **********************************************************************/ #include "rbgprivate.h" static VALUE value_array_to_ruby(const GValue* from) { VALUE ary; int i; GValueArray *val_array = (GValueArray*)g_value_get_boxed(from); if (!val_array) return Qnil; ary = rb_ary_new(); for (i = 0 ; i < val_array->n_values ; i++) { rb_ary_push(ary, GVAL2RVAL(g_value_array_get_nth(val_array, i))); } return ary; } static void value_array_from_ruby(VALUE from, GValue* to) { int i; GValueArray * array; if (NIL_P(from)) { g_value_set_boxed(to, NULL); return; } Check_Type(from, T_ARRAY); array = g_value_array_new(0); for (i = 0; i < RARRAY_LEN(from); i++) { GValue v = { 0, }; g_value_init(&v, RVAL2GTYPE(RARRAY_PTR(from)[i])); rbgobj_rvalue_to_gvalue(RARRAY_PTR(from)[i], &v); g_value_array_append(array, &v); } g_value_set_boxed(to, array); } void Init_gobject_value_array() { /* ValueArray is treated as Array */ rbgobj_register_g2r_func(G_TYPE_VALUE_ARRAY, value_array_to_ruby); rbgobj_register_r2g_func(G_TYPE_VALUE_ARRAY, value_array_from_ruby); }
Version data entries
19 entries across 19 versions & 1 rubygems