if (cookie == NULL)
return err;
+ if (cookie->cb != NULL)
+ cookie->cb(cookie->adapter_idx, cookie->target_idx, err);
+
if (cookie->ndef)
g_free(cookie->ndef->data);
if (err < 0)
goto out_tag;
+ /*
+ * As reading isn't complete,
+ * callback shouldn't be called while freeing the cookie
+ */
+ cookie->cb = NULL;
return t2_cookie_release(err, cookie);
out_tag:
g_free(t2_tag);
out_err:
- if (err < 0 && cookie->cb)
- cookie->cb(cookie->adapter_idx, cookie->target_idx, err);
-
return t2_cookie_release(err, cookie);
}
if (cookie->ndef->offset > cookie->ndef->length) {
DBG("Done writing");
- if (cookie->cb)
- cookie->cb(cookie->adapter_idx, cookie->target_idx, 0);
-
return t2_cookie_release(0, cookie);
}
t2_cookie_release);
out_err:
- if (err < 0 && cookie->cb)
- cookie->cb(cookie->adapter_idx, cookie->target_idx, err);
-
return t2_cookie_release(err, cookie);
}
if (length < 0)
err = -EIO;
- if (cookie->cb)
- cookie->cb(cookie->adapter_idx,
- cookie->target_idx, err);
-
return t2_cookie_release(err, cookie);
}
near_tag_set_blank(tag, FALSE);
out_err:
- if (cookie->cb)
- cookie->cb(cookie->adapter_idx, cookie->target_idx, err);
-
return t2_cookie_release(err, cookie);
}