Mercurial > hg > octave-lyh
comparison liboctave/Array.h @ 9780:6dafc60dde31
rename oct-mem functions
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Thu, 05 Nov 2009 21:13:31 +0100 |
parents | 01f897d8a130 |
children | ef4c4186cb47 |
comparison
equal
deleted
inserted
replaced
9779:2941c1daf509 | 9780:6dafc60dde31 |
---|---|
60 T *data; | 60 T *data; |
61 octave_idx_type len; | 61 octave_idx_type len; |
62 int count; | 62 int count; |
63 | 63 |
64 ArrayRep (T *d, octave_idx_type l, bool copy = false) | 64 ArrayRep (T *d, octave_idx_type l, bool copy = false) |
65 : data (copy ? octave_new<T> (l) : d), len (l), count (1) | 65 : data (copy ? no_ctor_new<T> (l) : d), len (l), count (1) |
66 { | 66 { |
67 if (copy) | 67 if (copy) |
68 octave_ucopy (l, d, data); | 68 copy_or_memcpy (l, d, data); |
69 } | 69 } |
70 | 70 |
71 ArrayRep (void) : data (0), len (0), count (1) { } | 71 ArrayRep (void) : data (0), len (0), count (1) { } |
72 | 72 |
73 explicit ArrayRep (octave_idx_type n) : data (octave_new<T> (n)), len (n), count (1) { } | 73 explicit ArrayRep (octave_idx_type n) : data (no_ctor_new<T> (n)), len (n), count (1) { } |
74 | 74 |
75 explicit ArrayRep (octave_idx_type n, const T& val) | 75 explicit ArrayRep (octave_idx_type n, const T& val) |
76 : data (octave_new<T> (n)), len (n), count (1) | 76 : data (no_ctor_new<T> (n)), len (n), count (1) |
77 { | 77 { |
78 octave_fill (n, val, data); | 78 fill_or_memset (n, val, data); |
79 } | 79 } |
80 | 80 |
81 ArrayRep (const ArrayRep& a) | 81 ArrayRep (const ArrayRep& a) |
82 : data (octave_new<T> (a.len)), len (a.len), count (1) | 82 : data (no_ctor_new<T> (a.len)), len (a.len), count (1) |
83 { | 83 { |
84 octave_ucopy (a.len, a.data, data); | 84 copy_or_memcpy (a.len, a.data, data); |
85 } | 85 } |
86 | 86 |
87 ~ArrayRep (void) { octave_delete<T> (data); } | 87 ~ArrayRep (void) { no_ctor_delete<T> (data); } |
88 | 88 |
89 octave_idx_type length (void) const { return len; } | 89 octave_idx_type length (void) const { return len; } |
90 | 90 |
91 private: | 91 private: |
92 | 92 |
167 | 167 |
168 template <class U> | 168 template <class U> |
169 T * | 169 T * |
170 coerce (const U *a, octave_idx_type len) | 170 coerce (const U *a, octave_idx_type len) |
171 { | 171 { |
172 T *retval = octave_new<T> (len); | 172 T *retval = no_ctor_new<T> (len); |
173 | 173 |
174 for (octave_idx_type i = 0; i < len; i++) | 174 for (octave_idx_type i = 0; i < len; i++) |
175 retval[i] = T (a[i]); | 175 retval[i] = T (a[i]); |
176 | 176 |
177 return retval; | 177 return retval; |