Author: kmoore
Date: Fri Aug  2 08:13:17 2013
New Revision: 396089

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=396089
Log:
Use a flexible array member instead of string fields

Modified:
    team/kmoore/cel_backend_refactor/main/cel.c

Modified: team/kmoore/cel_backend_refactor/main/cel.c
URL: 
http://svnview.digium.com/svn/asterisk/team/kmoore/cel_backend_refactor/main/cel.c?view=diff&rev=396089&r1=396088&r2=396089
==============================================================================
--- team/kmoore/cel_backend_refactor/main/cel.c (original)
+++ team/kmoore/cel_backend_refactor/main/cel.c Fri Aug  2 08:13:17 2013
@@ -330,19 +330,9 @@
 };
 
 struct cel_backend {
-       AST_DECLARE_STRING_FIELDS(
-               AST_STRING_FIELD(name); /*!< Name of this backend */
-       );
-       ast_cel_backend_cb callback;    /*!< Callback for this backend */
+       ast_cel_backend_cb callback; /*!< Callback for this backend */
+       char name[0];                /*!< Name of this backend */
 };
-
-/*! \brief Backend destructor */
-static void cel_backend_dtor(void *obj)
-{
-       struct cel_backend *backend = obj;
-       ast_string_field_free_memory(backend);
-       backend->callback = NULL;
-}
 
 /*! \brief Hashing function for cel_backend */
 static int cel_backend_hash(const void *obj, int flags)
@@ -1771,12 +1761,13 @@
                return -1;
        }
 
-       backend = ao2_alloc(sizeof(*backend), cel_backend_dtor);
-       if (!backend || ast_string_field_init(backend, 32)) {
-               return -1;
-       }
-
-       ast_string_field_set(backend, name, name);
+       backend = ao2_alloc(sizeof(*backend) + 1 + strlen(name), NULL);
+       if (!backend) {
+               return -1;
+       }
+
+       /* safe strcpy */
+       strcpy(backend->name, name);
        backend->callback = backend_callback;
        ao2_link(cel_backends, backend);
 


--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

svn-commits mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/svn-commits

Reply via email to