while (count < size) {
struct apparam_tag *tag;
gsize parsed;
+ guint id;
tag = apparam_tag_decode(data + count, size - count, &parsed);
if (tag == NULL)
break;
- g_hash_table_insert(tags, GUINT_TO_POINTER(tag->id), tag);
+ id = tag->id;
+ g_hash_table_insert(tags, GUINT_TO_POINTER(id), tag);
count += parsed;
}
const void *value, gsize len)
{
struct apparam_tag *tag;
+ guint uid = id;
if (apparam == NULL)
apparam = g_obex_apparam_new();
tag = tag_new(id, len, value);
- g_hash_table_replace(apparam->tags, GUINT_TO_POINTER(id), tag);
+ g_hash_table_replace(apparam->tags, GUINT_TO_POINTER(uid), tag);
return apparam;
}
return g_obex_apparam_set_bytes(apparam, id, value, len);
}
+static struct apparam_tag *g_obex_apparam_find_tag(GObexApparam *apparam,
+ guint id)
+{
+ return g_hash_table_lookup(apparam->tags, GUINT_TO_POINTER(id));
+}
+
gboolean g_obex_apparam_get_uint8(GObexApparam *apparam, guint8 id,
guint8 *dest)
{
g_obex_debug(G_OBEX_DEBUG_APPARAM, "tag 0x%02x", id);
- tag = g_hash_table_lookup(apparam->tags, GUINT_TO_POINTER(id));
+ tag = g_obex_apparam_find_tag(apparam, id);
if (tag == NULL)
return FALSE;
g_obex_debug(G_OBEX_DEBUG_APPARAM, "tag 0x%02x", id);
- tag = g_hash_table_lookup(apparam->tags, GUINT_TO_POINTER(id));
+ tag = g_obex_apparam_find_tag(apparam, id);
if (tag == NULL)
return FALSE;
g_obex_debug(G_OBEX_DEBUG_APPARAM, "tag 0x%02x", id);
- tag = g_hash_table_lookup(apparam->tags, GUINT_TO_POINTER(id));
+ tag = g_obex_apparam_find_tag(apparam, id);
if (tag == NULL)
return FALSE;
g_obex_debug(G_OBEX_DEBUG_APPARAM, "tag 0x%02x", id);
- tag = g_hash_table_lookup(apparam->tags, GUINT_TO_POINTER(id));
+ tag = g_obex_apparam_find_tag(apparam, id);
if (tag == NULL)
return FALSE;
g_obex_debug(G_OBEX_DEBUG_APPARAM, "tag 0x%02x", id);
- tag = g_hash_table_lookup(apparam->tags, GUINT_TO_POINTER(id));
+ tag = g_obex_apparam_find_tag(apparam, id);
if (tag == NULL)
return NULL;
g_obex_debug(G_OBEX_DEBUG_APPARAM, "tag 0x%02x", id);
- tag = g_hash_table_lookup(apparam->tags, GUINT_TO_POINTER(id));
+ tag = g_obex_apparam_find_tag(apparam, id);
if (tag == NULL)
return FALSE;