From: Mikel Astiz <mikel.astiz@xxxxxxxxxxxx> Trivial changes in buffer getters in both session and transfer: - const qualifiers added, to avoid unwanted frees - Buffers are now returned as void* instead of guint8* Also, obc_session_get_buffer does not clear the internal buffer any more. This doesn't have any impact in the current code though, since transfers are unregistered immediately after. --- client/pbap.c | 2 +- client/session.c | 22 +++++----------------- client/session.h | 4 ++-- client/transfer.c | 17 +++++++---------- client/transfer.h | 10 +++++----- 5 files changed, 20 insertions(+), 35 deletions(-) diff --git a/client/pbap.c b/client/pbap.c index 53a608e..2e1cc10 100644 --- a/client/pbap.c +++ b/client/pbap.c @@ -294,7 +294,7 @@ static void pbap_setpath_cb(struct obc_session *session, GError *err, static void read_return_apparam(struct obc_session *session, guint16 *phone_book_size, guint8 *new_missed_calls) { - struct apparam_hdr *hdr; + const struct apparam_hdr *hdr; size_t size; *phone_book_size = 0; diff --git a/client/session.c b/client/session.c index a9883c7..c597bac 100644 --- a/client/session.c +++ b/client/session.c @@ -1156,10 +1156,9 @@ static struct obc_transfer *obc_session_get_transfer( return session->p->transfer; } -const char *obc_session_get_buffer(struct obc_session *session, size_t *size) +const void *obc_session_get_buffer(struct obc_session *session, size_t *size) { struct obc_transfer *transfer; - const char *buf; transfer = obc_session_get_transfer(session); if (transfer == NULL) { @@ -1169,29 +1168,18 @@ const char *obc_session_get_buffer(struct obc_session *session, size_t *size) return NULL; } - buf = obc_transfer_get_buffer(transfer, size); - - obc_transfer_clear_buffer(transfer); - - return buf; + return obc_transfer_get_buffer(transfer, size); } -void *obc_session_get_params(struct obc_session *session, size_t *size) +const void *obc_session_get_params(struct obc_session *session, size_t *size) { struct obc_transfer *transfer; - struct obc_transfer_params params; - transfer= obc_session_get_transfer(session); + transfer = obc_session_get_transfer(session); if (transfer == NULL) return NULL; - if (obc_transfer_get_params(transfer, ¶ms) < 0) - return NULL; - - if (size) - *size = params.size; - - return params.data; + return obc_transfer_get_params(transfer, size); } static void setpath_complete(struct obc_session *session, GError *err, diff --git a/client/session.h b/client/session.h index 4bfb41d..40be9ca 100644 --- a/client/session.h +++ b/client/session.h @@ -52,8 +52,8 @@ const char *obc_session_get_agent(struct obc_session *session); const char *obc_session_get_path(struct obc_session *session); const char *obc_session_get_target(struct obc_session *session); -const char *obc_session_get_buffer(struct obc_session *session, size_t *size); -void *obc_session_get_params(struct obc_session *session, size_t *size); +const void *obc_session_get_buffer(struct obc_session *session, size_t *size); +const void *obc_session_get_params(struct obc_session *session, size_t *size); int obc_session_send(struct obc_session *session, const char *filename, const char *name); diff --git a/client/transfer.c b/client/transfer.c index 60c2e4f..988ec10 100644 --- a/client/transfer.c +++ b/client/transfer.c @@ -610,21 +610,18 @@ done: return 0; } -int obc_transfer_get_params(struct obc_transfer *transfer, - struct obc_transfer_params *params) +const void *obc_transfer_get_params(struct obc_transfer *transfer, size_t *size) { - params->data = transfer->params->data; - params->size = transfer->params->size; + if (transfer->params == NULL) + return NULL; - return 0; -} + if (size != NULL) + *size = transfer->params->size; -void obc_transfer_clear_buffer(struct obc_transfer *transfer) -{ - transfer->filled = 0; + return transfer->params->data; } -const char *obc_transfer_get_buffer(struct obc_transfer *transfer, size_t *size) +const void *obc_transfer_get_buffer(struct obc_transfer *transfer, size_t *size) { if (size) *size = transfer->filled; diff --git a/client/transfer.h b/client/transfer.h index da7d151..c399129 100644 --- a/client/transfer.h +++ b/client/transfer.h @@ -22,7 +22,7 @@ */ struct obc_transfer_params { - guint8 *data; + void *data; size_t size; }; @@ -49,11 +49,11 @@ gboolean obc_transfer_set_callback(struct obc_transfer *transfer, int obc_transfer_get(struct obc_transfer *transfer); int obc_transfer_put(struct obc_transfer *transfer); -int obc_transfer_get_params(struct obc_transfer *transfer, - struct obc_transfer_params *params); -const char *obc_transfer_get_buffer(struct obc_transfer *transfer, size_t *size); +const void *obc_transfer_get_params(struct obc_transfer *transfer, + size_t *size); +const void *obc_transfer_get_buffer(struct obc_transfer *transfer, + size_t *size); void obc_transfer_set_buffer(struct obc_transfer *transfer, char *buffer); -void obc_transfer_clear_buffer(struct obc_transfer *transfer); void obc_transfer_set_name(struct obc_transfer *transfer, const char *name); void obc_transfer_set_filename(struct obc_transfer *transfer, -- 1.7.7.6 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html