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

Version Path
glib2-1.0.0-x86-mingw32 ext/glib2/rbgobj_valuearray.c
glib2-1.0.0 ext/glib2/rbgobj_valuearray.c
glib2-0.90.9 ext/glib2/rbgobj_valuearray.c
glib2-0.90.9-x86-mingw32 ext/glib2/rbgobj_valuearray.c
glib2-0.90.8-x86-mingw32 ext/glib2/rbgobj_valuearray.c
glib2-0.90.8 ext/glib2/rbgobj_valuearray.c
glib2-0.90.7-x86-mingw32 ext/glib2/rbgobj_valuearray.c
glib2-0.90.7 ext/glib2/rbgobj_valuearray.c
glib2-0.90.6 ext/glib2/rbgobj_valuearray.c
glib2-0.90.6-x86-mingw32 ext/glib2/rbgobj_valuearray.c
glib2-0.90.5 ext/glib2/rbgobj_valuearray.c
glib2-0.90.5-x86-mingw32 ext/glib2/rbgobj_valuearray.c
glib2-0.90.4 ext/glib2/rbgobj_valuearray.c
glib2-0.90.4-x86-mingw32 ext/glib2/rbgobj_valuearray.c
glib2-0.90.3 ext/glib2/rbgobj_valuearray.c
glib2-0.90.3-x86-mingw32 ext/glib2/rbgobj_valuearray.c
glib2-0.90.2 ext/glib2/rbgobj_valuearray.c
glib2-0.90.2-x86-mingw32 ext/glib2/rbgobj_valuearray.c
glib2-0.20.0 src/rbgobj_valuearray.c