Commit Graph

6 Commits

Author SHA1 Message Date
Kenneth Moreland
726546419d ArrayHandle reallocations of 0
The basic storage has an implicit invariant that if the size of the
storage is 0 then the array is a null pointer. That invariant was broken
if the array was allocated and then Shrink or Allocate was called with
0. In that case, the array remained allocated by the size was set to 0.

This fixes the problem by making sure a Shrink(0) actually does an
Allocate(0) (to clear out the data) and that the basic storage always
frees its memory when allocating a 0 sized array.
2017-03-08 18:53:06 -05:00
Kenneth Moreland
3834afdd43 Merge topic 'empty-array'
58bbeb18 Support using empty array handles as input
6d5de0c3 Change make_ArrayHandle work with empty std::vector

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !694
2017-02-15 10:23:26 -05:00
Kenneth Moreland
58bbeb183a Support using empty array handles as input
Previously if you constructed an array handle without allocating it, you
would get an error if you tried to use the array as input. This
conflicted with some recent changes to accept empty vectors.

Now when you try to use an unallocated ArrayHandle as input (calling
PrepareForInput or PrepareForInPlace), it internally calls Allocate(0)
(to establish internal state) and sets up a valid execution ArrayPortal
of size 0.
2017-02-14 15:27:34 -07:00
Robert Maynard
94bd79b09c Leverage std::move to help FunctionInterface make less copies. 2017-02-14 17:02:32 -05:00
David C. Lonie
f601e38ba8 Simplify exception hierarchy.
Remove the ErrorControl class such that all subclasses now inherit from
error. Renamed all exception classes via s/ErrorControl/Error/.

See issue #57.
2017-02-07 15:42:38 -05:00
Robert Maynard
0a34a4027c vtkm_cont now contains explicit instantiations of common ArrayHandles.
To help reduce compile and library size the vtkm_cont library now holds
common instantiations.
2017-01-16 09:17:38 -05:00