struct _sipc_marshal_object *tmp_obj = value;
gtype = ((GValue *) value)->g_type;
- if (gtype == G_TYPE_HASH_TABLE) {
- tmp_obj = g_value_get_boxed(value);
+ if (gtype == G_TYPE_POINTER) {
+ tmp_obj = g_value_get_pointer(value);
g_hash_table_destroy(tmp_obj->ht);
}
break;
case SIPC_MARSHAL_DATA_OBJECT_TYPE:
- g_value_init(value, G_TYPE_HASH_TABLE);
- g_value_set_boxed(value, (gpointer) data);
+ g_value_init(value, type);
+ g_value_set_pointer(value, (gpointer) data);
break;
default:
case SIPC_MARSHAL_DATA_OBJECT_TYPE:
tmp = g_new0(struct _sipc_marshal_object, 1);
- tmp->ht = g_value_dup_boxed(src);
+ tmp->ht = g_value_get_pointer(src);
*dest = tmp;
- //*dest = g_value_dup_boxed(src);
break;
default:
gboolean rv = FALSE;
if(dest_type == G_TYPE_HASH_TABLE)
- dest_type = G_TYPE_BOXED;
+ dest_type = G_TYPE_POINTER;
switch (dest_type) {
case G_TYPE_INT: {
g_value_set_double(dest, tmp);
}
break;
- case G_TYPE_BOXED:{
+ case G_TYPE_POINTER:{
GHashTable* tmp;
tmp = _sipc_util_marshal_object_deserializer(g_value_get_string(src));
- g_value_set_boxed(dest, tmp);
+ g_value_set_pointer(dest, tmp);
}
break;
default: {
gchar **tuple = NULL;
GHashTable *ht = NULL;
- ht = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, _sipc_util_remove_hashtable_value);
+ ht = g_hash_table_new_full(g_str_hash, g_str_equal, g_free,
+ _sipc_util_remove_hashtable_value);
+
if (strlen(inparam) == 0) {
return ht;
}
SIPC_CHECK_DATA_NULL( (mo&&key&&data), FALSE);
- dbg("key=%s, data type (%d)", key, type);
if (type >= SIPC_MARSHAL_DATA_STRING_MAX)
return FALSE;
value = g_new0(GValue, 1);
- if(type != SIPC_MARSHAL_DATA_OBJECT_TYPE)
+ if (type != SIPC_MARSHAL_DATA_OBJECT_TYPE) {
rv = _sipc_util_create_gvalue(value, data, type);
- else
- rv = _sipc_util_create_gvalue(value, ((struct _sipc_marshal_object*)data)->ht, type);
+ }
+ else {
+ rv = _sipc_util_create_gvalue(value, (struct _sipc_marshal_object*) data, type);
+ }
if (!rv)
return FALSE;
unsigned int gtype = 0;
gchar *tmp = NULL, *encoded_d = NULL;
GValue gval = { 0, { { 0 } } };
+
g_value_init(&gval, G_TYPE_STRING);
gtype = ((GValue *) value)->g_type;
- if (gtype != G_TYPE_HASH_TABLE) {
+ if (gtype != G_TYPE_POINTER) {
g_value_transform((GValue *) value, &gval);
tmp = g_value_dup_string(&gval);
- dbg("gtype = %d, tmp = [%s]", gtype, tmp);
}
else {
struct _sipc_marshal_object *tmp_obj;
- tmp_obj = g_value_get_boxed((GValue *) value);
- dbg("tmp_obj.ht = %p", tmp_obj->ht);
+ tmp_obj = g_value_get_pointer((GValue *) value);
tmp = sipc_util_marshal_object_serializer(tmp_obj);
}
rv_str = g_strdup(gstring_tmp->str);
g_string_free(gstring_tmp, TRUE);
+ dbg("serialized string [%s]", rv_str);
return rv_str;
}