From 135bb29ba6caf3b31f7157acb1836d97cced1ad2 Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
Date: Wed, 10 Dec 2008 01:09:06 +0000
Subject: [PATCH] Finish conversion to using ARRAY_LEN and remove it as a
 janitor project. (closes issue #14032) Reported by: bkruse Patches:      
 14032.patch uploaded by bkruse (license 132)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@162542 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_voicemail.c     | 2 +-
 channels/iax2-parser.c   | 4 ++--
 doc/janitor-projects.txt | 8 --------
 3 files changed, 3 insertions(+), 11 deletions(-)

diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index 698f6d211f..0206e221a3 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -1422,7 +1422,7 @@ static const char *mbox(int id)
 		"Deleted",
 		"Urgent"
 	};
-	return (id >= 0 && id < (sizeof(msgs)/sizeof(msgs[0]))) ? msgs[id] : "Unknown";
+	return (id >= 0 && id < ARRAY_LEN(msgs)) ? msgs[id] : "Unknown";
 }
 
 static void free_user(struct ast_vm_user *vmu)
diff --git a/channels/iax2-parser.c b/channels/iax2-parser.c
index b9af6fd6e5..224a924ced 100644
--- a/channels/iax2-parser.c
+++ b/channels/iax2-parser.c
@@ -533,14 +533,14 @@ void iax_showframe(struct iax_frame *f, struct ast_iax2_full_hdr *fhi, int rx, s
 		sprintf(subclass2, "%c", fh->csub);
 		subclass = subclass2;
 	} else if (fh->type == AST_FRAME_IAX) {
-		if (fh->csub >= (int)sizeof(iaxs)/(int)sizeof(iaxs[0])) {
+		if (fh->csub >= ARRAY_LEN(iaxs)) {
 			snprintf(subclass2, sizeof(subclass2), "(%d?)", fh->csub);
 			subclass = subclass2;
 		} else {
 			subclass = iaxs[(int)fh->csub];
 		}
 	} else if (fh->type == AST_FRAME_CONTROL) {
-		if (fh->csub >= (int)sizeof(cmds)/(int)sizeof(cmds[0])) {
+		if (fh->csub >= ARRAY_LEN(cmds)) {
 			snprintf(subclass2, sizeof(subclass2), "(%d?)", fh->csub);
 			subclass = subclass2;
 		} else {
diff --git a/doc/janitor-projects.txt b/doc/janitor-projects.txt
index b3c1a75dff..a43f9c9579 100644
--- a/doc/janitor-projects.txt
+++ b/doc/janitor-projects.txt
@@ -32,11 +32,3 @@
  -- Audit all channel/res/app/etc. modules to ensure that they do not register any entrypoints with the Asterisk core until after they are ready to service requests; all config file reading/processing, structure allocation, etc. must be completed before Asterisk is made aware of any services the module offers.
 
  -- Ensure that Realtime-enabled modules do not depend on the order of columns returned by the database lookup (example: outboundproxy and host settings in chan_sip).
-
- -- There are several places in the code where the length of arrays is calculated in-line with sizeof() and division. A common place to find this is in for loops, like this:
-
- 	for (i = 0; i < sizeof(array)/sizeof(array[0]); i++)
-
-	There is a macro in utils.h called ARRAY_LEN which should be used instead for readability's sake.
-
-	for (i = 0; i < ARRAY_LEN(array); i++)
-- 
GitLab