summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
89c2781)
Change-Id: I2896dbde78b5d58dc706756f4c76632c303557ae
Signed-off-by: Damjan Marion <damarion@cisco.com>
if (h_user)
log2_pair_size = h_user->log2_pair_size;
if (h_user)
log2_pair_size = h_user->log2_pair_size;
+ v = _vec_resize ((void *) 0,
/* vec len: */ elts,
/* data bytes: */
(elts << log2_pair_size) * sizeof (hash_pair_t),
/* vec len: */ elts,
/* data bytes: */
(elts << log2_pair_size) * sizeof (hash_pair_t),
always_inline void *
_heap_new (u32 len, u32 n_elt_bytes)
{
always_inline void *
_heap_new (u32 len, u32 n_elt_bytes)
{
- void *v = _vec_resize (0, len, (uword) len * n_elt_bytes,
+ void *v = _vec_resize ((void *) 0, len, (uword) len * n_elt_bytes,
sizeof (heap_header_t),
HEAP_DATA_ALIGN);
heap_header (v)->elt_bytes = n_elt_bytes;
sizeof (heap_header_t),
HEAP_DATA_ALIGN);
heap_header (v)->elt_bytes = n_elt_bytes;
if (l > max_length)
serialize_error (&m->header,
clib_error_create ("bad vector length %d", l));
if (l > max_length)
serialize_error (&m->header,
clib_error_create ("bad vector length %d", l));
- p = v = _vec_resize (0, l, (uword) l * elt_bytes, header_bytes,
+ p = v = _vec_resize ((void *) 0, l, (uword) l * elt_bytes, header_bytes,
/* align */ align);
while (l != 0)
/* align */ align);
while (l != 0)
- v = _vec_resize (0, l, (uword) l * elt_bytes, sizeof (p[0]), align);
+ v = _vec_resize ((void *) 0, l, (uword) l * elt_bytes, sizeof (p[0]),
+ align);
p = pool_header (v);
vec_unserialize (m, &p->free_indices, unserialize_vec_32);
p = pool_header (v);
vec_unserialize (m, &p->free_indices, unserialize_vec_32);
ASSERT (sparse_index_bits <= 16);
ASSERT (sparse_index_bits <= 16);
+ v = _vec_resize ((void *) 0,
/* length increment */ 8,
/* data bytes */ 8 * elt_bytes,
/* header bytes */ sizeof (h[0]),
/* length increment */ 8,
/* data bytes */ 8 * elt_bytes,
/* header bytes */ sizeof (h[0]),
@return v_prime pointer to resized vector, may or may not equal v
*/
@return v_prime pointer to resized vector, may or may not equal v
*/
+#define _vec_resize(V,L,DB,HB,A) \
+ _vec_resize_inline(V,L,DB,HB,clib_max((__alignof__((V)[0])),(A)))
+
-_vec_resize (void *v,
- word length_increment,
- uword data_bytes, uword header_bytes, uword data_align)
+_vec_resize_inline (void *v,
+ word length_increment,
+ uword data_bytes, uword header_bytes, uword data_align)
{
vec_header_t *vh = _vec_find (v);
uword new_data_bytes, aligned_header_bytes;
{
vec_header_t *vh = _vec_find (v);
uword new_data_bytes, aligned_header_bytes;