[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-600?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gustavo Niemeyer updated ZOOKEEPER-600:
---------------------------------------

    Attachment: deallocate-vector.patch

The attached patch should fix this problem.  It also reuses existing code, and 
fixes a few other issues around the former problem, with return values not 
being properly checked for errors.

I'm afraid there are several instances of variables which are not checked for 
error conditions in the module, unfortunately. :-(  I'm not going to try fixing 
these in this JIRA, though.

> TODO pondering about allocation behavior in zkpython may be removed
> -------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-600
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-600
>             Project: Zookeeper
>          Issue Type: Bug
>          Components: contrib-bindings
>    Affects Versions: 3.2.1
>            Reporter: Gustavo Niemeyer
>            Assignee: Gustavo Niemeyer
>            Priority: Trivial
>             Fix For: 3.3.0
>
>         Attachments: deallocate-vector.patch
>
>
> I suppose the TODO below is referring to the "path" variable which is passed 
> in as an output variable to PyArg_ParseTuple right below.  The TODO may be 
> removed, since the code is right.  Code using PyArg_ParseTuple will borrow 
> the reference from the calling code, since there's a stack behind the call to 
> the enclosing function (pyzoo_get_children in this case) which won't go away 
> until the function returns.
> Index: src/contrib/zkpython/src/c/zookeeper.c
> ===================================================================
> --- src/contrib/zkpython/src/c/zookeeper.c    (revision 885582)
> +++ src/contrib/zkpython/src/c/zookeeper.c    (working copy)
> @@ -774,8 +774,6 @@
>  
>  static PyObject *pyzoo_get_children(PyObject *self, PyObject *args)
>  {
> -  // TO DO: Does Python copy the string or the reference? If it's the former
> -  // we should free the String_vector
>    int zkhid;
>    char *path;
>    PyObject *watcherfn = Py_None;

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to