From eb10026dbaee45f359084fcdd8fca23b4072268a Mon Sep 17 00:00:00 2001
From: Mark Michelson <mmichelson@digium.com>
Date: Fri, 21 Dec 2007 21:19:19 +0000
Subject: [PATCH] Something I've been itching to do for a while now. A minor
 optimization in app_voicemail. Since the dtable in base_encode always gets
 populated with the same values every time and never changes, make it static
 and const and only initialize it once. Also, there's no reason to define
 BASEMAXINLINE twice, so remove the redundant #define.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@94593 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 apps/app_voicemail.c | 22 ++++------------------
 1 file changed, 4 insertions(+), 18 deletions(-)

diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index b6a65ed040..ad4bf46198 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -197,7 +197,6 @@ static AST_LIST_HEAD_STATIC(vmstates, vmstate);
 #define MAXMSG 100
 #define MAXMSGLIMIT 9999
 
-#define BASEMAXINLINE 256
 #define BASELINELEN 72
 #define BASEMAXINLINE 256
 #define eol "\r\n"
@@ -1793,7 +1792,10 @@ static int ochar(struct baseio *bio, int c, FILE *so)
 
 static int base_encode(char *filename, FILE *so)
 {
-	unsigned char dtable[BASEMAXINLINE];
+	static const unsigned char dtable[] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
+		'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
+		'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0',
+		'1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'};
 	int i,hiteof= 0;
 	FILE *fi;
 	struct baseio bio;
@@ -1806,22 +1808,6 @@ static int base_encode(char *filename, FILE *so)
 		return -1;
 	}
 
-	for (i= 0; i<9; i++) {
-		dtable[i]= 'A'+i;
-		dtable[i+9]= 'J'+i;
-		dtable[26+i]= 'a'+i;
-		dtable[26+i+9]= 'j'+i;
-	}
-	for (i= 0; i<8; i++) {
-		dtable[i+18]= 'S'+i;
-		dtable[26+i+18]= 's'+i;
-	}
-	for (i= 0; i<10; i++) {
-		dtable[52+i]= '0'+i;
-	}
-	dtable[62]= '+';
-	dtable[63]= '/';
-
 	while (!hiteof){
 		unsigned char igroup[3], ogroup[4];
 		int c,n;
-- 
GitLab