static gboolean ibus_attr_list_copy (IBusAttrList *dest, const IBusAttrList *src) { gboolean retval; retval = IBUS_SERIALIZABLE_CLASS (ibus_attr_list_parent_class)->copy ((IBusSerializable *)dest, (IBusSerializable *)src); g_return_val_if_fail (retval, FALSE); g_return_val_if_fail (IBUS_IS_ATTRIBUTE (dest), FALSE); g_return_val_if_fail (IBUS_IS_ATTRIBUTE (src), FALSE); gint i; for (i = 0; ; i++) { IBusAttribute *attr = ibus_attr_list_get ((IBusAttrList *)src, i); if (attr == NULL) { break; } attr = (IBusAttribute *) ibus_serializable_copy ((IBusSerializable *) attr); if (attr == NULL) { g_warning ("can not copy attribute"); continue; } ibus_attr_list_append (dest, attr); } return TRUE; }
static gboolean ibus_attribute_serialize (IBusAttribute *attr, IBusMessageIter *iter) { gboolean retval; retval = parent_class->serialize ((IBusSerializable *) attr, iter); g_return_val_if_fail (retval, FALSE); g_return_val_if_fail (IBUS_IS_ATTRIBUTE (attr), FALSE); retval = ibus_message_iter_append (iter, G_TYPE_UINT, &attr->type); g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_append (iter, G_TYPE_UINT, &attr->value); g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_append (iter, G_TYPE_UINT, &attr->start_index); g_return_val_if_fail (retval, FALSE); retval = ibus_message_iter_append (iter, G_TYPE_UINT, &attr->end_index); g_return_val_if_fail (retval, FALSE); return TRUE; }
void ibus_attr_list_append (IBusAttrList *attr_list, IBusAttribute *attr) { g_assert (IBUS_IS_ATTR_LIST (attr_list)); g_assert (IBUS_IS_ATTRIBUTE (attr)); g_object_ref_sink (attr); g_array_append_val (attr_list->attributes, attr); }
void ibus_attr_list_append (IBusAttrList *attr_list, IBusAttribute *attr) { g_return_if_fail (IBUS_IS_ATTR_LIST (attr_list)); g_return_if_fail (IBUS_IS_ATTRIBUTE (attr)); g_object_ref (attr); g_array_append_val (attr_list->attributes, attr); }
static gboolean ibus_attribute_copy (IBusAttribute *dest, const IBusAttribute *src) { gboolean retval; retval = parent_class->copy ((IBusSerializable *)dest, (IBusSerializable *)src); g_return_val_if_fail (retval, FALSE); g_return_val_if_fail (IBUS_IS_ATTRIBUTE (dest), FALSE); g_return_val_if_fail (IBUS_IS_ATTRIBUTE (src), FALSE); dest->type = src->type; dest->value = src->value; dest->start_index = src->start_index; dest->end_index = src->end_index; return TRUE; }