seed r770 - trunk/libseed
- From: racarr svn gnome org
- To: svn-commits-list gnome org
- Subject: seed r770 - trunk/libseed
- Date: Mon, 19 Jan 2009 16:43:05 +0000 (UTC)
Author: racarr
Date: Mon Jan 19 16:43:04 2009
New Revision: 770
URL: http://svn.gnome.org/viewvc/seed?rev=770&view=rev
Log:
Add support for UINT8 arrays
Modified:
trunk/libseed/seed-types.c
Modified: trunk/libseed/seed-types.c
==============================================================================
--- trunk/libseed/seed-types.c (original)
+++ trunk/libseed/seed-types.c Mon Jan 19 16:43:04 2009
@@ -128,6 +128,7 @@
break;
case GI_TYPE_TAG_GTYPE:
case GI_TYPE_TAG_FLOAT:
+ case GI_TYPE_TAG_UINT8:
g_free(arg->v_pointer);
break;
default:
@@ -271,7 +272,9 @@
element_type = g_type_info_get_tag(param_type);
- if (element_type == GI_TYPE_TAG_UTF8)
+ switch (element_type)
+ {
+ case GI_TYPE_TAG_UTF8:
{
char **result;
guint i;
@@ -289,7 +292,8 @@
*array_p = result;
}
- else if (element_type == GI_TYPE_TAG_GTYPE)
+ break;
+ case GI_TYPE_TAG_GTYPE:
{
GType *result;
guint i;
@@ -307,7 +311,8 @@
*array_p = result;
}
- else if (element_type == GI_TYPE_TAG_FLOAT)
+ break;
+ case GI_TYPE_TAG_FLOAT:
{
gfloat * result;
guint i;
@@ -325,8 +330,27 @@
*array_p = result;
}
- else
+ break;
+ case GI_TYPE_TAG_UINT8:
{
+ guint8 * result;
+ guint i;
+
+ result = g_new0(guint8, length+1);
+
+ for (i = 0; i < length; i++)
+ {
+ JSValueRef elem = JSObjectGetPropertyAtIndex(ctx,
+ (JSObjectRef) array,
+ i,
+ exception);
+ result[i] = seed_value_to_uchar(ctx, elem, exception);
+ }
+
+ *array_p = result;
+ }
+ break;
+ default:
seed_make_exception(ctx, exception, "ArgumentError",
"Unhandled array element type");
return FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]