seed r678 - trunk/libseed
- From: racarr svn gnome org
- To: svn-commits-list gnome org
- Subject: seed r678 - trunk/libseed
- Date: Thu, 8 Jan 2009 04:48:40 +0000 (UTC)
Author: racarr
Date: Thu Jan 8 04:48:40 2009
New Revision: 678
URL: http://svn.gnome.org/viewvc/seed?rev=678&view=rev
Log:
Base memory usage is down another 100k or so.
Modified:
trunk/libseed/seed-engine.c
trunk/libseed/seed-structs.c
Modified: trunk/libseed/seed-engine.c
==============================================================================
--- trunk/libseed/seed-engine.c (original)
+++ trunk/libseed/seed-engine.c Thu Jan 8 04:48:40 2009
@@ -1121,15 +1121,19 @@
else if (info && (g_base_info_get_type(info) == GI_INFO_TYPE_CONSTANT))
{
GArgument argument;
+ GITypeInfo * constant_type =
+ g_constant_info_get_type((GIConstantInfo *) info);
JSValueRef constant_value;
g_constant_info_get_value((GIConstantInfo *) info, &argument);
constant_value =
seed_gi_argument_make_js(ctx, &argument,
- g_constant_info_get_type((GIConstantInfo *) info), exception);
+ constant_type, exception);
seed_object_set_property(ctx, namespace_ref,
g_base_info_get_name(info),
constant_value);
+
+ g_base_info_unref((GIBaseInfo *)constant_type);
}
g_base_info_unref(info);
Modified: trunk/libseed/seed-structs.c
==============================================================================
--- trunk/libseed/seed-structs.c (original)
+++ trunk/libseed/seed-structs.c Thu Jan 8 04:48:40 2009
@@ -128,7 +128,7 @@
{
GITypeInfo *field_type;
GArgument field_value;
- JSValueRef ret;
+ JSValueRef ret = JSValueMakeNull(ctx);;
field_type = g_field_info_get_type(field);
if (!g_field_info_get_field(field, object, &field_value))
@@ -142,20 +142,26 @@
interface = g_type_info_get_interface(field_type);
gint offset = g_field_info_get_offset(field);
+
+ g_base_info_unref((GIBaseInfo *)field_type);
switch (g_base_info_get_type(interface))
{
case GI_INFO_TYPE_STRUCT:
- return seed_make_struct(ctx, (object + offset), interface);
+ ret = seed_make_struct(ctx, (object + offset), interface);
+ break;
case GI_INFO_TYPE_UNION:
- return seed_make_union(ctx, (object + offset), interface);
-
+ ret = seed_make_union(ctx, (object + offset), interface);
+ break;
case GI_INFO_TYPE_BOXED:
- return seed_make_boxed(ctx, (object + offset), interface);
-
+ ret = seed_make_boxed(ctx, (object + offset), interface);
+ break;
default:
- g_base_info_unref(interface);
+ break;
}
+ g_base_info_unref(interface);
+
+ return ret;
}
return JSValueMakeNull(ctx);
@@ -477,6 +483,10 @@
key,
proto);
}
+ else
+ {
+ g_free(key);
+ }
return proto;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]