[svn-commits] qwell: trunk r49743 - in /trunk: ./ main/ pbx/ res/

svn-commits at lists.digium.com svn-commits at lists.digium.com
Fri Jan 5 17:28:17 MST 2007


Author: qwell
Date: Fri Jan  5 18:28:16 2007
New Revision: 49743

URL: http://svn.digium.com/view/asterisk?view=rev&rev=49743
Log:
Merged revisions 49742 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r49742 | qwell | 2007-01-05 18:24:38 -0600 (Fri, 05 Jan 2007) | 7 lines

Save 1 whopping byte of allocated memory!

This looks like it may have been a chicken/egg scenario..

You had to call a cleanup func, because everything was allocated.
Then since you had to call a cleanup func, you were forced to allocate - ie; strdup("").

........

Modified:
    trunk/   (props changed)
    trunk/main/pbx.c
    trunk/pbx/pbx_config.c
    trunk/res/res_features.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Modified: trunk/main/pbx.c
URL: http://svn.digium.com/view/asterisk/trunk/main/pbx.c?view=diff&rev=49743&r1=49742&r2=49743
==============================================================================
--- trunk/main/pbx.c (original)
+++ trunk/main/pbx.c Fri Jan  5 18:28:16 2007
@@ -4556,10 +4556,6 @@
 	return count;
 }
 
-static void null_datad(void *foo)
-{
-}
-
 /*! \brief add the extension in the priority chain.
  * returns 0 on success, -1 on failure
  */
@@ -4581,7 +4577,8 @@
 		   replacement?  If so, replace, otherwise, bonk. */
 		if (!replace) {
 			ast_log(LOG_WARNING, "Unable to register extension '%s', priority %d in '%s', already in use\n", tmp->exten, tmp->priority, con->name);
-			tmp->datad(tmp->data);
+			if (tmp->datad)
+				tmp->datad(tmp->data);
 			free(tmp);
 			return -1;
 		}
@@ -4599,7 +4596,8 @@
 		if (tmp->priority == PRIORITY_HINT)
 			ast_change_hint(e,tmp);
 		/* Destroy the old one */
-		e->datad(e->data);
+		if (e->datad)
+			e->datad(e->data);
 		free(e);
 	} else {	/* Slip ourselves in just before e */
 		tmp->peer = e;
@@ -4683,8 +4681,6 @@
 		length ++;	/* just the '\0' */
 
 	/* Be optimistic:  Build the extension structure first */
-	if (datad == NULL)
-		datad = null_datad;
 	if (!(tmp = ast_calloc(1, length)))
 		return -1;
 

Modified: trunk/pbx/pbx_config.c
URL: http://svn.digium.com/view/asterisk/trunk/pbx/pbx_config.c?view=diff&rev=49743&r1=49742&r2=49743
==============================================================================
--- trunk/pbx/pbx_config.c (original)
+++ trunk/pbx/pbx_config.c Fri Jan  5 18:28:16 2007
@@ -1576,7 +1576,7 @@
 		}
 		if (!ast_strlen_zero(iface)) {
 			/* Add hint */
-			ast_add_extension2(con, 0, cat, -1, NULL, NULL, iface, strdup(""), ast_free, registrar);
+			ast_add_extension2(con, 0, cat, -1, NULL, NULL, iface, NULL, NULL, registrar);
 			/* If voicemail, use "stdexten" else use plain old dial */
 			if (hasvoicemail) {
 				snprintf(tmp, sizeof(tmp), "stdexten|%s|${HINT}", cat);

Modified: trunk/res/res_features.c
URL: http://svn.digium.com/view/asterisk/trunk/res/res_features.c?view=diff&rev=49743&r1=49742&r2=49743
==============================================================================
--- trunk/res/res_features.c (original)
+++ trunk/res/res_features.c Fri Jan  5 18:28:16 2007
@@ -2285,7 +2285,7 @@
 		ast_log(LOG_ERROR, "Parking context '%s' does not exist and unable to create\n", parking_con);
 		return -1;
 	}
-	res = ast_add_extension2(con, 1, ast_parking_ext(), 1, NULL, NULL, parkcall, strdup(""), ast_free, registrar);
+	res = ast_add_extension2(con, 1, ast_parking_ext(), 1, NULL, NULL, parkcall, NULL, NULL, registrar);
 	if (parkaddhints)
 		park_add_hints(parking_con, parking_start, parking_stop);
 	if (!res)



More information about the svn-commits mailing list