[asterisk-commits] kpfleming: branch 1.4 r133237 - in /branches/1.4: include/asterisk/ main/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Jul 23 16:05:23 CDT 2008


Author: kpfleming
Date: Wed Jul 23 16:05:22 2008
New Revision: 133237

URL: http://svn.digium.com/view/asterisk?view=rev&rev=133237
Log:
revert an optimization that broke ABI... thanks russell!

Modified:
    branches/1.4/include/asterisk/stringfields.h
    branches/1.4/main/utils.c

Modified: branches/1.4/include/asterisk/stringfields.h
URL: http://svn.digium.com/view/asterisk/branches/1.4/include/asterisk/stringfields.h?view=diff&rev=133237&r1=133236&r2=133237
==============================================================================
--- branches/1.4/include/asterisk/stringfields.h (original)
+++ branches/1.4/include/asterisk/stringfields.h Wed Jul 23 16:05:22 2008
@@ -123,7 +123,6 @@
 	size_t size;				/*!< the total size of the current pool */
 	size_t space;				/*!< the space available in the current pool */
 	size_t used;				/*!< the space used in the current pool */
-	ast_string_field last_alloc;		/*!< the last field allocated */
 };
 
 /*!
@@ -140,24 +139,6 @@
 
 /*!
   \internal
-  \brief Attempt to 'grow' an already allocated field to a larger size
-  \param mgr Pointer to the pool manager structure
-  \param needed Amount of space needed for this field
-  \param fields Pointer to the first entry of the field array
-  \param index Index position of the field within the structure
-  \return 0 on success, non-zero on failure
-
-  This function will attempt to increase the amount of space allocated to
-  an existing field to the amount requested; this is only possible if the
-  field was the last field allocated from the current storage pool and
-  the pool has enough space available. If so, the additional space will be
-  allocated to this field and the field's address will not be changed.
-*/
-int __ast_string_field_index_grow(struct ast_string_field_mgr *mgr, size_t needed,
-				  ast_string_field *fields, int index);
-
-/*!
-  \internal
   \brief Allocate space for a field
   \param mgr Pointer to the pool manager structure
   \param needed Amount of space needed for this field
@@ -258,7 +239,7 @@
     if ( __dlen__ == 1 ) {\
       (x)->__begin_field[index] = __ast_string_field_empty; \
     } else { \
-      if (!__ast_string_field_index_grow(&(x)->__field_mgr, __dlen__, &(x)->__begin_field[0], index)) { \
+      if ((__zz__[0] != 0) && (__dlen__ <= (strlen(__zz__) + 1))) { \
         memcpy(__zz__, data, __dlen__); \
       } else { \
         if (((x)->__begin_field[index] = __ast_string_field_alloc_space(&(x)->__field_mgr, __dlen__, &(x)->__begin_field[0], ast_string_field_count(x)))) \
@@ -273,7 +254,7 @@
     if ( __dlen__ == 1 ) {\
       (x)->__begin_field[index] = __ast_string_field_empty; \
     } else { \
-      if (!__ast_string_field_index_grow(&(x)->__field_mgr, __dlen__, &(x)->__begin_field[0], index)) { \
+      if ((__zz__[0] != 0) && (__dlen__ <= strlen(__zz__) + 1)) { \
         ast_verbose("%s: ======replacing '%s' with '%s'\n", logstr, __zz__, data); \
         memcpy(__zz__, data, __dlen__); \
       } else { \

Modified: branches/1.4/main/utils.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/main/utils.c?view=diff&rev=133237&r1=133236&r2=133237
==============================================================================
--- branches/1.4/main/utils.c (original)
+++ branches/1.4/main/utils.c Wed Jul 23 16:05:22 2008
@@ -1223,7 +1223,6 @@
 	mgr->size = size;
 	mgr->space = size;
 	mgr->used = 0;
-	mgr->last_alloc = NULL;
 
 	return 0;
 }
@@ -1260,31 +1259,7 @@
 	result = mgr->pool->base + mgr->used;
 	mgr->used += needed;
 	mgr->space -= needed;
-	mgr->last_alloc = result;
 	return result;
-}
-
-int __ast_string_field_index_grow(struct ast_string_field_mgr *mgr, size_t needed,
-				  ast_string_field *fields, int index)
-{
-	int grow = needed - (strlen(fields[index]) + 1);
-
-	if (grow <= 0) {
-		return 0;
-	}
-
-	if (fields[index] != mgr->last_alloc) {
-		return 1;
-	}
-
-	if (mgr->space < grow) {
-		return 1;
-	}
-
-	mgr->space -= grow;
-	mgr->used += grow;
-
-	return 0;
 }
 
 void __ast_string_field_index_build_va(struct ast_string_field_mgr *mgr,
@@ -1310,7 +1285,6 @@
 	}
 
 	fields[index] = mgr->pool->base + mgr->used;
-	mgr->last_alloc = fields[index];
 	mgr->used += needed;
 	mgr->space -= needed;
 }




More information about the asterisk-commits mailing list