Sha256: 850c1f304916bba2cf17e153d97a2493b8981632858508376bbc971e9d626067
Contents?: true
Size: 1.42 KB
Versions: 6
Compression:
Stored size: 1.42 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; guint i; GValueArray *array = (GValueArray *)g_value_get_boxed(from); if (array == NULL) return Qnil; ary = rb_ary_new(); for (i = 0; i < array->n_values; i++) rb_ary_push(ary, GVAL2RVAL(g_value_array_get_nth(array, i))); return ary; } static void value_array_from_ruby(const 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(RARRAY_LEN(from)); 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
6 entries across 6 versions & 1 rubygems