[yt-svn] commit/yt-3.0: samskillman: Fixing memory freeing.
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Tue Sep 3 18:35:49 PDT 2013
1 new commit in yt-3.0:
https://bitbucket.org/yt_analysis/yt-3.0/commits/557607fcc8dd/
Changeset: 557607fcc8dd
Branch: yt-3.0
User: samskillman
Date: 2013-09-03 23:46:15
Summary: Fixing memory freeing.
Affected #: 1 file
diff -r 3aba7ca1ff0bebcbbcd8d1e2a526dea084e0fbdb -r 557607fcc8dd2175d821a8adb51d663b284d2eff yt/utilities/lib/amr_kdtools.pyx
--- a/yt/utilities/lib/amr_kdtools.pyx
+++ b/yt/utilities/lib/amr_kdtools.pyx
@@ -208,14 +208,16 @@
The entire purpose of this function is to move everything from ndarrays
to internal C pointers.
"""
- pgles = <np.float64_t *> alloca(3 * sizeof(np.float64_t))
- pgres = <np.float64_t *> alloca(3 * sizeof(np.float64_t))
+ pgles = <np.float64_t *> malloc(3 * sizeof(np.float64_t))
+ pgres = <np.float64_t *> malloc(3 * sizeof(np.float64_t))
cdef int j
for j in range(3):
pgles[j] = gle[j]
pgres[j] = gre[j]
add_grid(node, pgles, pgres, gid, rank, size)
+ free(pgles)
+ free(pgres)
@cython.boundscheck(False)
@cython.wraparound(False)
@@ -285,6 +287,8 @@
free(pgres[i])
free(pgles)
free(pgres)
+ free(pgids)
+
@cython.boundscheck(False)
@@ -363,17 +367,17 @@
for i in range(nless):
free(less_gles[i])
free(less_gres[i])
- free(l_ids)
- free(less_ids)
free(less_gles)
free(less_gres)
+ free(less_ids)
+ free(l_ids)
for i in range(ngreater):
free(greater_gles[i])
free(greater_gres[i])
- free(g_ids)
- free(greater_ids)
free(greater_gles)
free(greater_gres)
+ free(greater_ids)
+ free(g_ids)
return
@@ -491,10 +495,10 @@
):
cdef int i, j, k, dim, n_unique, best_dim, n_best, addit, my_split
cdef np.float64_t **uniquedims, *uniques, split
- uniquedims = <np.float64_t **> alloca(3 * sizeof(np.float64_t*))
+ uniquedims = <np.float64_t **> malloc(3 * sizeof(np.float64_t*))
for i in range(3):
uniquedims[i] = <np.float64_t *> \
- alloca(2*n_grids * sizeof(np.float64_t))
+ malloc(2*n_grids * sizeof(np.float64_t))
my_max = 0
my_split = 0
best_dim = -1
@@ -542,6 +546,11 @@
ngreater += 1
else:
greater_ids[i] = 0
+
+ for i in range(3):
+ free(uniquedims[i])
+ free(uniquedims)
+
# Return out unique values
return best_dim, split, nless, ngreater
@@ -574,13 +583,6 @@
kdtree_get_choices(ngrids, data, node.left_edge, node.right_edge,
less_ids, greater_ids)
- for i in range(ngrids):
- for j in range(2):
- free(data[i][j])
- free(data[i])
- free(data)
- free(less_ids)
- free(greater_ids)
# If best_dim is -1, then we have found a place where there are no choices.
# Exit out and set the node to None.
@@ -653,18 +655,25 @@
for i in range(nless):
free(less_gles[i])
free(less_gres[i])
- free(l_ids)
- free(less_index)
free(less_gles)
free(less_gres)
+ free(less_ids)
+ free(less_index)
+ free(l_ids)
for i in range(ngreater):
free(greater_gles[i])
free(greater_gres[i])
- free(g_ids)
- free(greater_index)
free(greater_gles)
free(greater_gres)
+ free(greater_ids)
+ free(greater_index)
+ free(g_ids)
+ for i in range(ngrids):
+ for j in range(2):
+ free(data[i][j])
+ free(data[i])
+ free(data)
return 0
Repository URL: https://bitbucket.org/yt_analysis/yt-3.0/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the yt-svn
mailing list