Use the linkedlists.h AST_LIST_NEXT macro for modifying the list of results.
authorJoshua Colp <jcolp@digium.com>
Wed, 11 Jul 2007 17:34:30 +0000 (17:34 +0000)
committerJoshua Colp <jcolp@digium.com>
Wed, 11 Jul 2007 17:34:30 +0000 (17:34 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@74616 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_speech_utils.c
include/asterisk/speech.h
res/res_speech.c

index 2df89ba..30d1737 100644 (file)
@@ -150,7 +150,7 @@ static struct ast_speech_result *find_result(struct ast_speech_result *results,
                if (i == wanted_num)
                        break;
                i++;
-       } while ((result = result->next));
+       } while ((result = AST_LIST_NEXT(result, list)));
 
        return result;
 }
@@ -315,11 +315,8 @@ static int speech_read(struct ast_channel *chan, const char *cmd, char *data,
                        ast_copy_string(buf, "0", len);
        } else if (!strcasecmp(data, "results")) {
                /* Count number of results */
-               result = speech->results;
-               while (result) {
+               for (result = speech->results; result; result = AST_LIST_NEXT(result, list))
                        results++;
-                       result = result->next;
-               }
                snprintf(tmp, sizeof(tmp), "%d", results);
                ast_copy_string(buf, tmp, len);
        }
index 81b45a7..02d056f 100644 (file)
@@ -110,7 +110,7 @@ struct ast_speech_result {
        /*! Matched grammar */
        char *grammar;
        /*! List information */
-       struct ast_speech_result *next;
+       AST_LIST_ENTRY(ast_speech_result) list;
 };
 
 /*! \brief Activate a grammar on a speech structure */
index e848b06..9047ad2 100644 (file)
@@ -113,7 +113,7 @@ int ast_speech_results_free(struct ast_speech_result *result)
                        current_result->grammar = NULL;
                }
                /* Move on and then free ourselves */
-               current_result = current_result->next;
+               current_result = AST_LIST_NEXT(current_result, list);
                ast_free(prev_result);
                prev_result = NULL;
        }