[asterisk-commits] kpfleming: branch kpfleming/aligner2 r154425 - /team/kpfleming/aligner2/main/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Nov 4 16:41:14 CST 2008


Author: kpfleming
Date: Tue Nov  4 16:41:13 2008
New Revision: 154425

URL: http://svn.digium.com/view/asterisk?view=rev&rev=154425
Log:
another attempt to make GCC on SPARC happy

Modified:
    team/kpfleming/aligner2/main/translate.c

Modified: team/kpfleming/aligner2/main/translate.c
URL: http://svn.digium.com/view/asterisk/team/kpfleming/aligner2/main/translate.c?view=diff&rev=154425&r1=154424&r2=154425
==============================================================================
--- team/kpfleming/aligner2/main/translate.c (original)
+++ team/kpfleming/aligner2/main/translate.c Tue Nov  4 16:41:13 2008
@@ -99,35 +99,37 @@
 static void *newpvt(struct ast_translator *t)
 {
 	struct ast_trans_pvt *pvt;
-	char *base;
 	unsigned char useplc = t->plc_samples > 0 && t->useplc;
 	struct template {
 		struct ast_trans_pvt pvt;
 		char desc[t->desc_size] AST_ALIGN_TO(uint32_t);
 		plc_state_t plc[useplc ? 1 : 0];
 		char friendly[AST_FRIENDLY_OFFSET] AST_ALIGN_TO(uint32_t);
-		char outbuf[t->buf_size] AST_ALIGN_TO(int16_t);
-	};
-
-	if (!(base = ast_calloc(sizeof(struct template), 1))) {
+		int16_t outbuf[t->buf_size / sizeof(int16_t)];
+	} *work;
+
+	if (!(work = ast_calloc(sizeof(*work), 1))) {
 		return NULL;
 	}
 
-	pvt = (struct ast_trans_pvt *) base;
+	pvt = &work->pvt;
 	pvt->t = t;
+
 	if (t->desc_size) {
-		pvt->pvt = base + offsetof(struct template, desc);
-	}
+		pvt->pvt = &work->desc;
+	}
+
 	if (useplc) {
-		pvt->plc = (plc_state_t *) (base + offsetof(struct template, plc));
-	}
+		pvt->plc = &work->plc[0];
+	}
+
 	if (t->buf_size) {
-		pvt->outbuf = (int16_t *) (base + offsetof(struct template, outbuf));
+		pvt->outbuf = &work->outbuf[0];
 	}
 
 	/* call local init routine, if present */
 	if (t->newpvt && t->newpvt(pvt)) {
-		free(base);
+		free(work);
 		return NULL;
 	}
 




More information about the asterisk-commits mailing list