Fix memory errors in third_party/ibus-chewing/files/src.

In src/IBusChewingEngine.gob, an uninitialized GValue object is passed in to ibus_config_get_value() API. This seems to cause an unexpected termination of the IBus connection:

Program received signal SIGPIPE, Broken pipe.
[Switching to Thread 0x6f7dd6c0 (LWP 3013)]
0x005b5416 in __kernel_vsyscall ()
(gdb) bt
#0  0x005b5416 in __kernel_vsyscall ()
#1  0x01075ac1 in writev () from /lib/libc.so.6
#2  0x00397b15 in _dbus_write_two (fd=4, buffer1=0x9ed259c, start1=0, len1=128, buffer2=0x9ed25d8, start2=0, len2=38) at dbus-sysdeps-unix.c:425
#3  0x00397954 in _dbus_write_socket_two (fd=4, buffer1=0x9ed259c, start1=0, len1=128, buffer2=0x9ed25d8, start2=0, len2=38) at dbus-sysdeps-unix.c:258
#4  0x0038e6d1 in do_writing (transport=0x9ed1910) at dbus-transport-socket.c:597
#5  0x0038edb8 in socket_do_iteration (transport=0x9ed1910, flags=1, timeout_milliseconds=-1) at dbus-transport-socket.c:1016
#6  0x0038d689 in _dbus_transport_do_iteration (transport=0x9ed1910, flags=1, timeout_milliseconds=-1) at dbus-transport.c:956
#7  0x0037146c in _dbus_connection_do_iteration_unlocked (connection=0x9ed1d30, flags=1, timeout_milliseconds=-1) at dbus-connection.c:1163
#8  0x00372436 in _dbus_connection_send_preallocated_unlocked_no_update (connection=0x9ed1d30, preallocated=0x0, message=0x9ed2598, client_serial=0x0)
    at dbus-connection.c:1984
#9  0x00373ba0 in _dbus_connection_send_unlocked_no_update (connection=0x9ed1d30, message=0x9ed2598, client_serial=0x0) at dbus-connection.c:3100
#10 0x00373f39 in dbus_connection_send_with_reply (connection=0x9ed1d30, message=0x9ed2598, pending_return=0x77aeae78, timeout_milliseconds=-1) at dbus-connection.c:3263
#11 0x0037413d in dbus_connection_send_with_reply_and_block (connection=0x9ed1d30, message=0x9ed2598, timeout_milliseconds=-1, error=0xa331c50) at dbus-connection.c:3341
#12 0x0032f6b0 in ibus_connection_send_with_reply_and_block (connection=0x9ebbe60, message=0x9ed2598, timeout_milliseconds=-1, error=0x77aeaf68) at ibusconnection.c:722
#13 0x003323a3 in ibus_proxy_call_with_reply_and_block (proxy=0x9ef36c0, method=0x351592 "GetValue", timeout_milliseconds=-1, error=0x77aeaf68, first_arg_type=64)
    at ibusproxy.c:750
#14 0x0033f444 in ibus_config_get_value (config=0x9ef36c0, section=0x8057032 "engine/Chewing", name=0x805a87c "hsuSelKeyType", value=0x77aeb07c) at ibusconfig.c:229
#15 0x0804f0c2 in ibus_chewing_engine_load_setting ()
#16 0x0805190d in ___1d_ibus_chewing_engine_enable ()
#17 0x002ad7dc in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#18 0x0029e6c9 in ?? () from /usr/lib/libgobject-2.0.so.0
#19 0x09ec9c08 in ?? ()
#20 0x00000000 in ?? ()
(gdb)

I'll try to upstream this change later, but let me submit this to our repo first to see if this patch actually fixes the bug.

BUG=crosbug.com/1253
TEST=see the bug

Review URL: http://codereview.chromium.org/668239
diff --git a/src/IBusChewingEngine.gob b/src/IBusChewingEngine.gob
index 7a1c075..9dda2a4 100644
--- a/src/IBusChewingEngine.gob
+++ b/src/IBusChewingEngine.gob
@@ -275,9 +275,10 @@
 	G_DEBUG_MSG(3,"[I3] load_setting()");
 	int i;
 	gchar buf[BUFFER_SIZE_LOCAL];
-	GValue gValue={0};
 
 	for (i=0; propSpecs[i].valueType!=G_TYPE_INVALID;i++){
+	    GValue gValue={0};
+
 	    G_DEBUG_MSG(4,"[I4]  load_setting(), i=%d",i);
 	    if (ibus_config_get_value(self->config, "engine/Chewing",propSpecs[i].key, &gValue)){
 		switch(propSpecs[i].valueType){
@@ -316,7 +317,9 @@
 	    /* Add property to dialog */
 	    maker_dialog_add_property(MAKER_DIALOG(self->setting_dialog),&propSpecs[i],buf,self);
 	    maker_dialog_apply_widget_value(MAKER_DIALOG(self->setting_dialog),propSpecs[i].key);
-	    g_value_unset(&gValue);
+	    if (G_IS_VALUE(&gValue)) {
+	        g_value_unset(&gValue);
+            }
 	}
 
 	for (i=0; page_labels[i]!=NULL;i++){