OSSP CVS Repository

ossp - Difference in ossp-pkg/xds/vencode.c versions 1.12.2.2 and 1.12.2.3
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [History

ossp-pkg/xds/vencode.c 1.12.2.2 -> 1.12.2.3

--- vencode.c    2001/08/01 11:26:16     1.12.2.2
+++ vencode.c    2001/08/01 12:01:32     1.12.2.3
@@ -63,26 +63,6 @@
         xds->we_own_buffer = XDS_TRUE;
         }
 
-    /* Ensure the buffer has free space. */
-
-    assert(xds->buffer_len <= xds->buffer_capacity);
-    if (xds->buffer_len == xds->buffer_capacity)
-        {
-        if (xds->we_own_buffer)
-            {
-            rc = xds_set_capacity((void**)&xds->buffer,
-                                  &xds->buffer_capacity,
-                                  xds->buffer_len + 1,
-                                  sizeof(char),
-                                  XDS_INITIAL_BUFFER_CAPACITY);
-            assert(rc == XDS_OK || rc == XDS_ERR_NO_MEM);
-            if (rc != XDS_OK)
-                return rc;
-            }
-        else
-            return XDS_ERR_OVERFLOW;
-        }
-
     /* Iterate through the items in the format string and execute the
        apropriate engines. */
 
@@ -101,37 +81,28 @@
 
         if (strlen(name) > 0)
             {
+            int restart_engine;
+            size_t used_buffer_size;
             size_t pos;
-            if (xds_find_engine(xds->engines, xds->engines_len, name, &pos))
+
+            if (xds_find_engine(xds->engines, xds->engines_len, name, &pos) == XDS_FALSE)
                 {
-                int restart_engine;
-                size_t used_buffer_size;
-                do
-                    {
-                    args_backup = args;
-                    rc = (*xds->engines[pos].engine)(xds,
-                                                     xds->engines[pos].context,
-                                                     xds->buffer + xds->buffer_len,
-                                                     xds->buffer_capacity - xds->buffer_len,
-                                                     &used_buffer_size,
-                                                     &args);
-                    assert(rc <= 0);
-                    if (rc == XDS_OK)
-                        {
-                        restart_engine = XDS_FALSE;
-                        xds->buffer_len += used_buffer_size;
-                        }
-                    else if (rc == XDS_ERR_OVERFLOW)
-                        {               /* enlarge buffer */
-                        if (!xds->we_own_buffer)
-                            goto leave;
+                rc = XDS_ERR_UNKNOWN_ENGINE;
+                goto leave;
+                }
 
-                        restart_engine = XDS_TRUE;
-                        args = args_backup;
+            do
+                {
+                /* Ensure the buffer has free space. */
 
+                assert(xds->buffer_len <= xds->buffer_capacity);
+                if (xds->buffer_len == xds->buffer_capacity)
+                    {
+                    if (xds->we_own_buffer)
+                        {
                         rc = xds_set_capacity((void**)&xds->buffer,
                                               &xds->buffer_capacity,
-                                              xds->buffer_capacity + 1,
+                                              xds->buffer_len + 1,
                                               sizeof(char),
                                               XDS_INITIAL_BUFFER_CAPACITY);
                         assert(rc == XDS_OK || rc == XDS_ERR_NO_MEM);
@@ -139,15 +110,48 @@
                             goto leave;
                         }
                     else
+                        {
+                        rc = XDS_ERR_OVERFLOW;
                         goto leave;
+                        }
                     }
-                while (restart_engine);
-                }
-            else
-                {
-                rc = XDS_ERR_UNKNOWN_ENGINE;
-                goto leave;
+
+                /* Execute the engine. */
+
+                args_backup = args;
+                rc = (*xds->engines[pos].engine)(xds,
+                                                 xds->engines[pos].context,
+                                                 xds->buffer + xds->buffer_len,
+                                                 xds->buffer_capacity - xds->buffer_len,
+                                                 &used_buffer_size,
+                                                 &args);
+                assert(rc <= 0);
+                if (rc == XDS_OK)
+                    {
+                    restart_engine = XDS_FALSE;
+                    xds->buffer_len += used_buffer_size;
+                    }
+                else if (rc == XDS_ERR_OVERFLOW)
+                    {           /* enlarge buffer */
+                    if (!xds->we_own_buffer)
+                        goto leave;
+
+                    restart_engine = XDS_TRUE;
+                    args = args_backup;
+
+                    rc = xds_set_capacity((void**)&xds->buffer,
+                                          &xds->buffer_capacity,
+                                          xds->buffer_capacity + 1,
+                                          sizeof(char),
+                                          XDS_INITIAL_BUFFER_CAPACITY);
+                    assert(rc == XDS_OK || rc == XDS_ERR_NO_MEM);
+                    if (rc != XDS_OK)
+                        goto leave;
+                    }
+                else
+                    goto leave;
                 }
+            while (restart_engine);
             }
         }
     rc = XDS_OK;

CVSTrac 2.0.1