From 040a5f20f9fd04805dcb8b5dd5cc6028d11fa617 Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Tue, 28 Aug 2007 18:32:56 +0000 Subject: * Constify the uid field of channel datastores * Convert some spaces to tabs in func_volume * Add a note in channel.h making it clear that none of the datastore API calls lock the channel they are given, so the channel should be locked before calling the functions that take a channel argument. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81260 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- funcs/func_volume.c | 4 ++-- include/asterisk/channel.h | 14 ++++++++++---- main/channel.c | 6 +++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/funcs/func_volume.c b/funcs/func_volume.c index 79fc13f30..aca13fd47 100644 --- a/funcs/func_volume.c +++ b/funcs/func_volume.c @@ -58,8 +58,8 @@ static void destroy_callback(void *data) /*! \brief Static structure for datastore information */ static const struct ast_datastore_info volume_datastore = { - .type = "volume", - .destroy = destroy_callback + .type = "volume", + .destroy = destroy_callback }; static int volume_callback(struct ast_audiohook *audiohook, struct ast_channel *chan, struct ast_frame *frame, enum ast_audiohook_direction direction) diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h index b24b25c79..11fb1df38 100644 --- a/include/asterisk/channel.h +++ b/include/asterisk/channel.h @@ -195,7 +195,7 @@ struct ast_datastore_info { /*! \brief Structure for a channel data store */ struct ast_datastore { - char *uid; /*!< Unique data store identifier */ + const char *uid; /*!< Unique data store identifier */ void *data; /*!< Contained data */ const struct ast_datastore_info *info; /*!< Data store type information */ unsigned int inheritance; /*!< Number of levels this item will continue to be inherited */ @@ -615,8 +615,14 @@ enum channelreloadreason { CHANNEL_MANAGER_RELOAD, }; -/*! \brief Create a channel datastore structure */ -struct ast_datastore *ast_channel_datastore_alloc(const struct ast_datastore_info *info, char *uid); +/*! + * \brief Create a channel datastore structure + * + * \note None of the datastore API calls lock the ast_channel they are using. + * So, the channel should be locked before calling the functions that + * take a channel argument. + */ +struct ast_datastore *ast_channel_datastore_alloc(const struct ast_datastore_info *info, const char *uid); /*! \brief Free a channel datastore structure */ int ast_channel_datastore_free(struct ast_datastore *datastore); @@ -631,7 +637,7 @@ int ast_channel_datastore_add(struct ast_channel *chan, struct ast_datastore *da int ast_channel_datastore_remove(struct ast_channel *chan, struct ast_datastore *datastore); /*! \brief Find a datastore on a channel */ -struct ast_datastore *ast_channel_datastore_find(struct ast_channel *chan, const struct ast_datastore_info *info, char *uid); +struct ast_datastore *ast_channel_datastore_find(struct ast_channel *chan, const struct ast_datastore_info *info, const char *uid); /*! \brief Change the state of a channel */ int ast_setstate(struct ast_channel *chan, enum ast_channel_state); diff --git a/main/channel.c b/main/channel.c index 9d2460633..1b4971eb1 100644 --- a/main/channel.c +++ b/main/channel.c @@ -1167,7 +1167,7 @@ void ast_channel_free(struct ast_channel *chan) ast_device_state_changed_literal(name); } -struct ast_datastore *ast_channel_datastore_alloc(const struct ast_datastore_info *info, char *uid) +struct ast_datastore *ast_channel_datastore_alloc(const struct ast_datastore_info *info, const char *uid) { struct ast_datastore *datastore = NULL; @@ -1201,7 +1201,7 @@ int ast_channel_datastore_free(struct ast_datastore *datastore) /* Free allocated UID memory */ if (datastore->uid != NULL) { - ast_free(datastore->uid); + ast_free((void *) datastore->uid); datastore->uid = NULL; } @@ -1255,7 +1255,7 @@ int ast_channel_datastore_remove(struct ast_channel *chan, struct ast_datastore return res; } -struct ast_datastore *ast_channel_datastore_find(struct ast_channel *chan, const struct ast_datastore_info *info, char *uid) +struct ast_datastore *ast_channel_datastore_find(struct ast_channel *chan, const struct ast_datastore_info *info, const char *uid) { struct ast_datastore *datastore = NULL; -- cgit v1.2.3