From 16ac456e590e11bc2028a697c586a6c7d00fc41a Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Wed, 4 Jun 2014 16:16:03 -0400 Subject: csg: Avoid copying the child array for unions. --- libdimension-python/dimension.pyx | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'libdimension-python/dimension.pyx') diff --git a/libdimension-python/dimension.pyx b/libdimension-python/dimension.pyx index d3f880c..0c4d665 100644 --- a/libdimension-python/dimension.pyx +++ b/libdimension-python/dimension.pyx @@ -1283,17 +1283,14 @@ cdef class Union(Object): if len(objects) < 1: raise TypeError("expected a list of one or more Objects") - cdef dmnsn_array *array = dmnsn_new_array(sizeof(dmnsn_object *)) + cdef dmnsn_array *array = dmnsn_palloc_array(_get_pool(), sizeof(dmnsn_object *)) cdef dmnsn_object *o - try: - for obj in objects: - o = (obj)._object - dmnsn_array_push(array, &o) + for obj in objects: + o = (obj)._object + dmnsn_array_push(array, &o) - self._object = dmnsn_new_csg_union(_get_pool(), array) - finally: - dmnsn_delete_array(array) + self._object = dmnsn_new_csg_union(_get_pool(), array) Object.__init__(self, *args, **kwargs) -- cgit v1.2.3