seed r34 - trunk/libseed



Author: racarr
Date: Fri Oct 24 18:01:08 2008
New Revision: 34
URL: http://svn.gnome.org/viewvc/seed?rev=34&view=rev

Log:
Fix lots of unused variables, a few bugs, functions not returning 
anything, and bad readline headers.


Modified:
   trunk/libseed/seed-builtins.c
   trunk/libseed/seed-engine.c
   trunk/libseed/seed-signals.c
   trunk/libseed/seed-structs.c
   trunk/libseed/seed-types.c

Modified: trunk/libseed/seed-builtins.c
==============================================================================
--- trunk/libseed/seed-builtins.c	(original)
+++ trunk/libseed/seed-builtins.c	Fri Oct 24 18:01:08 2008
@@ -20,6 +20,7 @@
 
 #include "seed-private.h"
 #include <readline/readline.h>
+#include <readline/history.h>
 #include <string.h>
 
 JSValueRef
@@ -61,7 +62,8 @@
 	walk = strdup(walk);
 	g_free(buffer);
 	
-	JSEvaluateScript(ctx, JSStringCreateWithUTF8CString(walk), NULL, JSStringCreateWithUTF8CString(import_file), 0, NULL);
+	JSEvaluateScript(ctx, JSStringCreateWithUTF8CString(walk), 
+					 NULL, JSStringCreateWithUTF8CString(import_file), 0, NULL);
 	
 	return 0;
 }

Modified: trunk/libseed/seed-engine.c
==============================================================================
--- trunk/libseed/seed-engine.c	(original)
+++ trunk/libseed/seed-engine.c	Fri Oct 24 18:01:08 2008
@@ -425,7 +425,6 @@
 static void seed_gobject_finalize(JSObjectRef object)
 {
 		GObject * gobject;
-		GIBaseInfo * base;
 	
 		gobject = seed_value_to_object((JSValueRef)object);
 		if (!gobject)
@@ -468,10 +467,10 @@
 		int length;
 		SeedValue ret;
 		int i, len;
-		GType parent;
 
 		b = seed_value_to_object((JSValueRef)object);
-		g_return_if_fail((b));
+		if (!b)
+			return 0;
 
 		length = JSStringGetMaximumUTF8CStringSize(property_name);
 		cproperty_name = malloc(length * sizeof(gchar));
@@ -713,7 +712,7 @@
 	{0, 0, 0}
 };
 
-JSClassDefinition gobject_def[] = {
+JSClassDefinition gobject_def = {
 		0, /* Version, always 0 */
 		kJSClassAttributeNoAutomaticPrototype, /* JSClassAttributes */
 		"gobject", /* Class Name */
@@ -733,7 +732,7 @@
 		NULL  /* Convert To Type */
 };
 
-JSClassDefinition gobject_method_def[] = {
+JSClassDefinition gobject_method_def = {
 		0, /* Version, always 0 */
 		0,
 		"gobject_method", /* Class Name */
@@ -753,7 +752,7 @@
 		NULL  /* Convert To Type */
 };
  
-JSClassDefinition gobject_constructor_def[] = {
+JSClassDefinition gobject_constructor_def = {
 		0, /* Version, always 0 */
 		0,
 		"gobject_constructor", /* Class Name */
@@ -784,7 +783,7 @@
 
 gboolean seed_init(int * argc, char *** argv)
 {
-	JSObjectRef import_namespace_ref, seed_obj_ref;
+	JSObjectRef seed_obj_ref;
 
 	g_type_init ();
 
@@ -795,11 +794,11 @@
 	
 	eng->context = JSGlobalContextCreateInGroup(NULL,NULL);
 	eng->global = JSContextGetGlobalObject(eng->context);
-	gobject_class = JSClassCreate(gobject_def);
+	gobject_class = JSClassCreate(&gobject_def);
 	JSClassRetain(gobject_class);
-	gobject_method_class = JSClassCreate(gobject_method_def);
+	gobject_method_class = JSClassCreate(&gobject_method_def);
 	JSClassRetain(gobject_method_class);
-	gobject_constructor_class = JSClassCreate(gobject_constructor_def);
+	gobject_constructor_class = JSClassCreate(&gobject_constructor_def);
 	JSClassRetain(gobject_constructor_class);
 	gobject_signal_class = JSClassCreate(seed_get_signal_class());
 	JSClassRetain(gobject_signal_class);

Modified: trunk/libseed/seed-signals.c
==============================================================================
--- trunk/libseed/seed-signals.c	(original)
+++ trunk/libseed/seed-signals.c	Fri Oct 24 18:01:08 2008
@@ -158,7 +158,6 @@
 			     const JSValueRef arguments[],
 			     JSValueRef * exception)
 {
-	JSObjectRef object;
 	signal_privates * privates;
 	GClosure * closure;
 	
@@ -194,7 +193,7 @@
 {{ "connect",seed_gobject_signal_connect,0},
  { 0, 0, 0}};
 
-JSClassDefinition gobject_signal_def[] = {
+JSClassDefinition gobject_signal_def = {
 	0, /* Version, always 0 */
 	kJSClassAttributeNoAutomaticPrototype,
 	"gobject_signal", /* Class Name */
@@ -216,7 +215,7 @@
 
 JSClassDefinition * seed_get_signal_class(void)
 {
-	return gobject_signal_def;
+	return &gobject_signal_def;
 }
 
 

Modified: trunk/libseed/seed-structs.c
==============================================================================
--- trunk/libseed/seed-structs.c	(original)
+++ trunk/libseed/seed-structs.c	Fri Oct 24 18:01:08 2008
@@ -19,7 +19,7 @@
 
 
 #include "seed-private.h"
-
+#include <string.h>
 JSClassRef seed_struct_class = 0;
 
 typedef struct _SeedStructPrivates
@@ -33,157 +33,7 @@
 		g_free(JSObjectGetPrivate(younion));
 }
 
-static JSValueRef seed_struct_get_property(JSContextRef context,
-					   JSObjectRef object,
-					   JSStringRef property_name,
-					   JSValueRef * exception)
-{
-	SeedStructPrivates * priv;
-	GIBaseInfo * info;
-	GIFieldInfo * field = 0;
-	GITypeInfo * prop_type;
-	GIInfoType obj_type;
-	GType prop_gtype;
-	gint num_fields = 0, i, length, offset = 0;
-	gchar * cproperty_name;
-	GValue gval = {0};
-	JSValueRef ret;
-	
-	priv = (SeedStructPrivates*)JSObjectGetPrivate(object);
-	info = (GIBaseInfo *)priv->info;
-	
-	obj_type = g_base_info_get_type(info);
-	
-	length = JSStringGetMaximumUTF8CStringSize(property_name);
-	cproperty_name = malloc(length * sizeof(gchar));
-	JSStringGetUTF8CString(property_name, cproperty_name, length);
-	
-	if (obj_type == GI_INFO_TYPE_UNION)
-			num_fields = g_union_info_get_n_fields((GIUnionInfo *)info);	
-	else if (obj_type == GI_INFO_TYPE_STRUCT)
-			num_fields = g_struct_info_get_n_fields((GIStructInfo *)info);
-	for (i = 0; i < num_fields; i++)
-	{
-			if (obj_type == GI_INFO_TYPE_UNION)
-					field = g_union_info_get_field((GIUnionInfo *)info, i);
-			else if (obj_type == GI_INFO_TYPE_STRUCT)
-					field = g_struct_info_get_field((GIStructInfo*)info, i);
-			offset += g_field_info_get_size(field);
-
-			if (!strcmp(g_base_info_get_name((GIBaseInfo*)field),
-											 cproperty_name))
-					break;
-			else
-					field = 0;
-	}
-	if (!field)
-			return 0;
-	
-	prop_type = g_field_info_get_type(field);
-	prop_gtype = seed_gi_type_to_gtype(prop_type, 
-									   g_type_info_get_tag(prop_type));
-	
-	if (prop_gtype)
-			g_value_init(&gval, prop_gtype);
-	switch (g_type_info_get_tag(prop_type))
-	{
-	case GI_TYPE_TAG_VOID:
-			return 0;
-	case GI_TYPE_TAG_BOOLEAN:
-			g_value_set_boolean(&gval,*(gboolean *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_INT8:
-			g_value_set_char(&gval,*(char *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_UINT8:
-			g_value_set_uchar(&gval,*(guchar *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_INT16:
-			g_value_set_int(&gval,*(short *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_UINT16:
-			g_value_set_uint(&gval,*(ushort *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_INT32:
-			g_value_set_int(&gval,*(gint32 *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_UINT32:
-			g_value_set_uint(&gval,*(guint32 *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_LONG:
-	case GI_TYPE_TAG_INT64:
-			g_value_set_long(&gval,*(glong *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_ULONG:
-	case GI_TYPE_TAG_UINT64:
-			g_value_set_ulong(&gval,*(gulong *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_INT:
-			g_value_set_int(&gval,*(gint *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_UINT:
-			g_value_set_uint(&gval,*(guint *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_SSIZE:
-			g_value_set_int(&gval,*(gint *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_SIZE:
-			g_value_set_int(&gval,*(gint *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_FLOAT:
-			g_value_set_float(&gval,*(gfloat *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_DOUBLE:
-			g_value_set_double(&gval,*(gdouble *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_UTF8:
-			g_value_set_string(&gval,(gchar *)(priv->object + offset));
-			break;
-	case GI_TYPE_TAG_INTERFACE:
-	{
-			GIBaseInfo *interface;
-			GIInfoType interface_type;
-			GType required_gtype;
-			GObject * gobject;
-			
-			interface = g_type_info_get_interface(prop_type);
-			interface_type = g_base_info_get_type(interface);
-			
-			
-			if (interface_type == GI_INFO_TYPE_OBJECT)
-			{
-					g_value_set_object(&gval,
-									   *(gpointer *)(priv->object + offset));
-					break;
-			}
-			else if (interface_type == GI_INFO_TYPE_ENUM)
-			{
-					g_value_set_long(&gval, 
-									 *(glong *)(priv->object + offset));
-					break;
-			}
-			else if ((interface_type == GI_INFO_TYPE_STRUCT) || 
-					 (interface_type == GI_INFO_TYPE_UNION))
-			{
-					return seed_make_struct(((gpointer *)
-											  (priv->object +offset)),
-											g_type_info_get_interface(prop_type));
-			}
-	}
-	
-	default:
-			return FALSE;
-			
-	}
-	ret = seed_value_from_gvalue(&gval);
-
-	g_value_unset(&gval);
-	g_free(cproperty_name);
-	return ret;
-}
-
-
-JSClassDefinition gobject_struct_def[] = {
+JSClassDefinition gobject_struct_def = {
 		0, /* Version, always 0 */
 		0,
 		"gobject_union", /* Class Name */
@@ -193,7 +43,7 @@
 		NULL,
 		seed_struct_finalize, /* Finalize */
 		NULL, /* Has Property */
-		seed_struct_get_property, /* Get Property */
+		0, 
 		NULL,  /* Set Property */
 		NULL, /* Delete Property */
 		NULL, /* Get Property Names */
@@ -207,7 +57,7 @@
 {
 	SeedStructPrivates * privates;
 	if (!seed_struct_class)
-		seed_struct_class = JSClassCreate(gobject_struct_def);
+		seed_struct_class = JSClassCreate(&gobject_struct_def);
 	
 	privates = g_new0(SeedStructPrivates, 1);
 
@@ -219,5 +69,5 @@
 
 JSObjectRef seed_make_struct(gpointer strukt, GIBaseInfo * info)
 {
-		seed_make_union(strukt, info);
+		return seed_make_union(strukt, info);
 }

Modified: trunk/libseed/seed-types.c
==============================================================================
--- trunk/libseed/seed-types.c	(original)
+++ trunk/libseed/seed-types.c	Fri Oct 24 18:01:08 2008
@@ -28,12 +28,9 @@
 
 static gboolean seed_value_is_gobject(SeedValue value)
 {
-		gboolean ret;
-	
 		if (!JSValueIsObject(eng->context, value) || 
 			JSValueIsNull(eng->context, value))
 				return FALSE;
-
 	
 		return JSValueIsObjectOfClass(eng->context, value, gobject_class);
 }
@@ -155,6 +152,8 @@
 		case GI_TYPE_TAG_GSLIST:
 		case GI_TYPE_TAG_GHASH:
 		case GI_TYPE_TAG_ERROR:
+		case GI_TYPE_TAG_TIME_T:
+		case GI_TYPE_TAG_GTYPE:
 				return G_TYPE_INVALID;
 		case GI_TYPE_TAG_INTERFACE:
 		{
@@ -364,8 +363,6 @@
 		{
 				GIBaseInfo *interface;
 				GIInfoType interface_type;
-				GType required_gtype;
-				GObject * gobject;
 
 				interface = g_type_info_get_interface(type_info);
 				interface_type = g_base_info_get_type(interface);
@@ -429,6 +426,7 @@
 		case GI_TYPE_TAG_FLOAT:
 		case GI_TYPE_TAG_DOUBLE:
 		case GI_TYPE_TAG_UTF8:
+		case GI_TYPE_TAG_INTERFACE:
 				return TRUE;
 	       
 		case GI_TYPE_TAG_FILENAME:
@@ -437,15 +435,14 @@
 		case GI_TYPE_TAG_GSLIST:
 		case GI_TYPE_TAG_GHASH:
 		case GI_TYPE_TAG_ERROR:
+			// We should support time_t easily.
+		case GI_TYPE_TAG_TIME_T:
+		case GI_TYPE_TAG_GTYPE:
 				return FALSE;
 		
-		case GI_TYPE_TAG_INTERFACE:
-		{
-				return TRUE;
-		}
-	
 	
 		}
+		return FALSE;
 }
 
 SeedValue seed_value_from_gvalue(GValue * gval)
@@ -455,8 +452,6 @@
 		return false;
 	}
 
-	JSValueRef val;
-
 	switch(G_VALUE_TYPE(gval))
 	{
 	case G_TYPE_BOOLEAN:
@@ -523,8 +518,6 @@
 									 GValue * ret)
 	
 {
-	gint32 cv;
-
 	switch(type)
 	{
 	case G_TYPE_BOOLEAN:
@@ -630,6 +623,8 @@
 			g_value_take_string(ret, cv);
 			return TRUE;
 		}
+		default:
+			break;
 		}
 		break;
 	}
@@ -663,9 +658,7 @@
 
 		g_object_unref(o);
 	}
-
-bad_type:
-	return 0;
+	return FALSE;
 }
 
 SeedValue seed_value_get_property(SeedValue val, 
@@ -701,7 +694,7 @@
 
 static void seed_value_wrong_type()
 {
-	g_printf("Wrong type in type conversion!\n");
+	printf("Wrong type in type conversion!\n");
 }
 
 gboolean	seed_value_to_boolean(JSValueRef val)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]