return NULL;
data->pool = Pool(NULL);
- if (data->pool == NULL)
+ if (data->pool == NULL) {
+ PyObject_Del(data);
return NULL;
+ }
RUN_SVN_WITH_POOL(data->pool,
svn_config_get_config(&data->config, config_dir, data->pool));
if (pool == NULL)
return NULL;
hash_config = config_hash_from_object(config, pool);
- if (hash_config == NULL)
+ if (hash_config == NULL) {
+ apr_pool_destroy(pool);
return NULL;
- hash_fs_config = apr_hash_make(pool); /* FIXME */
+ }
+ hash_fs_config = apr_hash_make(pool); /* FIXME */
if (hash_fs_config == NULL) {
PyErr_SetString(PyExc_RuntimeError, "Unable to create fs config hash");
return NULL;
temp_pool = Pool(NULL);
if (temp_pool == NULL)
return NULL;
- RUN_SVN_WITH_POOL(temp_pool, svn_wc_get_prop_diffs(&propchanges, &original_props,
+ RUN_SVN_WITH_POOL(temp_pool, svn_wc_get_prop_diffs(&propchanges, &original_props,
svn_path_canonicalize(path, temp_pool), admobj->adm, temp_pool));
py_propchanges = PyList_New(propchanges->nelts);
if (py_propchanges == NULL) {
else
pyval = Py_BuildValue("(sO)", el.name, Py_None);
if (pyval == NULL) {
+ apr_pool_destroy(temp_pool);
+ Py_DECREF(py_propchanges);
+ return NULL;
+ }
+ if (!PyList_SetItem(py_propchanges, i, pyval)) {
+ Py_DECREF(py_propchanges);
apr_pool_destroy(temp_pool);
return NULL;
}
- PyList_SetItem(py_propchanges, i, pyval);
}
py_orig_props = prop_hash_to_dict(original_props);
apr_pool_destroy(temp_pool);
- if (py_orig_props == NULL)
+ if (py_orig_props == NULL) {
+ Py_DECREF(py_propchanges);
return NULL;
+ }
return Py_BuildValue("(NN)", py_propchanges, py_orig_props);
}