eriksson                Tue Feb 20 07:18:26 2001 EDT

  Modified files:              
    /php4/ext/satellite object.c 
  Log:
  Stop leaking ParameterType data
  
Index: php4/ext/satellite/object.c
diff -u php4/ext/satellite/object.c:1.4 php4/ext/satellite/object.c:1.5
--- php4/ext/satellite/object.c:1.4     Thu Nov 30 14:01:57 2000
+++ php4/ext/satellite/object.c Tue Feb 20 07:18:26 2001
@@ -17,7 +17,7 @@
  */
 
 /*
- * $Id: object.c,v 1.4 2000/11/30 22:01:57 eriksson Exp $
+ * $Id: object.c,v 1.5 2001/02/20 15:18:26 eriksson Exp $
  * vim: syntax=c tabstop=2 shiftwidth=2
  */
 
@@ -391,13 +391,18 @@
                CORBA_Request request, OperationType * pOperation, int argumentCount, 
                const zval ** ppArguments, CORBA_NamedValue ** ppNamedValue)
 {
-       ParameterType * p_parameter = OperationType_GetFirstParameter(pOperation);
+       ParameterType * p_parameter = NULL;
        int i = 0;
-       zend_bool success;
+       zend_bool success = FALSE;
 
        if (argumentCount < 1)
                return TRUE;    /* nothing to do */
 
+       p_parameter = OperationType_GetFirstParameter(pOperation);
+
+       if (NULL == p_parameter)
+               return FALSE; /* oups! */
+       
        do
        {
                ppNamedValue[i] = satellite_new(CORBA_NamedValue);
@@ -405,7 +410,7 @@
                                request, p_parameter, ppArguments[i], ppNamedValue[i]);
 
                if (!success)
-                       return FALSE;
+                       goto error;
 
                i++;
        } while (i < argumentCount && ParameterType_GetNext(p_parameter));
@@ -417,10 +422,19 @@
                
                /* bad number of arguments */
                wrong_param_count();
-               return FALSE;
+               goto error;
        }
 
-       return TRUE;
+       success = TRUE;
+       goto exit;
+
+error:
+       success = FALSE;
+
+exit:
+       orbit_delete(p_parameter);
+       return success;
+
 }
 
 /*



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to