commit - 208fdab5eec3204b93e51c9ec7b591d918f2dce5
commit + ae02f0cd37af634db9ed2b3aed3e0604b34120ec
blob - 4f014c22ff59b564348f00e6c73cd124a5ae5b39
blob + 3bf77f4510f928c3a4bb4f63ee17e58a92198da6
--- src/box/lua/misc.cc
+++ src/box/lua/misc.cc
uint32_t count = lua_objlen(L, 1);
if (count == 0)
return lbox_push_tuple_format(L, tuple_format_runtime);
- size_t size;
struct region *region = &fiber()->gc;
size_t region_svp = region_used(region);
- struct field_def *fields =
- (struct field_def *)xregion_alloc_array(region,
- struct field_def, count,
- &size);
+ struct field_def *fields = xregion_alloc_array(region,
+ struct field_def, count);
for (uint32_t i = 0; i < count; ++i) {
size_t len;
fields[i] = field_def_default;
blob - 98f7f47f0740028e60ae8727f8c8add41fc690a1
blob + d0f84272a5c21c1a5578e3e68bd9f697a4138687
--- src/box/sql/select.c
+++ src/box/sql/select.c
*/
assert(space_def->fields == NULL);
struct region *region = &parse->region;
- size_t size;
space_def->fields =
xregion_alloc_array(region, typeof(space_def->fields[0]),
- column_count, &size);
+ column_count);
for (uint32_t i = 0; i < column_count; i++) {
memcpy(&space_def->fields[i], &field_def_default,
sizeof(field_def_default));
blob - dda3ee099405b5c3b6be893d61c37cbee0ad26d6
blob + 4a24acea4ad40b083f00ae1d3c178f295f95d777
--- src/box/tuple_constraint_def.c
+++ src/box/tuple_constraint_def.c
if (*count == 0)
return 0;
- size_t bytes;
- *def = xregion_alloc_array(region, struct tuple_constraint_def,
- *count, &bytes);
+ *def = xregion_alloc_array(region, struct tuple_constraint_def, *count);
for (uint32_t i = 0; i < old_count; i++)
(*def)[i] = old_def[i];
struct tuple_constraint_def *new_def = *def + old_count;
return -1;
}
fkey->field_mapping_size = mapping_size;
- size_t sz;
fkey->field_mapping = xregion_alloc_array(
region, struct tuple_constraint_fkey_field_mapping,
- mapping_size, &sz);
+ mapping_size);
for (uint32_t i = 0 ; i < 2 * mapping_size; i++) {
struct tuple_constraint_field_id *def = i % 2 == 0 ?
&fkey->field_mapping[i / 2].local_field :
if (*count == 0)
return 0;
- size_t bytes;
*def = xregion_alloc_array(region, struct tuple_constraint_def,
- *count, &bytes);
+ *count);
for (uint32_t i = 0; i < old_count; i++)
(*def)[i] = old_def[i];
struct tuple_constraint_def *new_def = *def + old_count;
blob - 652737713e105b49f2a3d9c2ff4cd459610e711b
blob + 6ed65bba53712e7fe8add56b2db46f9632907564
--- src/lib/core/fiber.c
+++ src/lib/core/fiber.c
return;
}
- size_t size;
fiber->first_alloc_bt =
xregion_alloc_object(&fiber->gc,
- typeof(*fiber->first_alloc_bt), &size);
+ typeof(*fiber->first_alloc_bt));
fiber->gc_initial_size = region_used(&fiber->gc);
region_set_callbacks(&fiber->gc,
fiber_on_gc_alloc, fiber_on_gc_truncate,
blob - ccfc9cd40df98bc0e64603e62f5be24be0d9dbb5
blob + f6f60110484866587fbcc0b17b2ff2260639c469
--- src/trivia/util.h
+++ src/trivia/util.h
#define xstrndup(s, n) xalloc_impl((n) + 1, strndup, (s), (n))
#define xmempool_alloc(p) xalloc_impl((p)->objsize, mempool_alloc, (p))
#define xregion_alloc(p, size) xalloc_impl((size), region_alloc, (p), (size))
-#define xregion_alloc_object(region, T, size) \
- xalloc_impl(size, region_alloc_object, region, T, size)
-#define xregion_alloc_array(p, T, count, size) \
- xalloc_impl(sizeof(T) * (count), region_alloc_array, (p), T, \
- (count), (size))
+#define xregion_aligned_alloc(p, size, align) \
+ xalloc_impl((size), region_aligned_alloc, (p), (size), (align))
#define xregion_join(p, size) xalloc_impl((size), region_join, (p), (size))
#define xibuf_alloc(p, size) xalloc_impl((size), ibuf_alloc, (p), (size))
#define xibuf_reserve(p, size) xalloc_impl((size), ibuf_reserve, (p), (size))
#define xruntime_memory_alloc(size) \
xalloc_impl((size), runtime_memory_alloc, (size))
+#define xregion_alloc_object(region, T) ({ \
+ (T *)xregion_aligned_alloc((region), sizeof(T), alignof(T)); \
+})
+#define xregion_alloc_array(region, T, count) ({ \
+ (T *)xregion_aligned_alloc((region), sizeof(T) * (count), alignof(T));\
+})
+
/** \cond public */
/**