Tarantool development patches archive
 help / color / mirror / Atom feed
From: "Timur Safin" <tsafin@tarantool.org>
To: 'Vladislav Shpilevoy' <v.shpilevoy@tarantool.org>,
	tarantool-patches@dev.tarantool.org, alyapunov@tarantool.org,
	korablev@tarantool.org
Subject: Re: [Tarantool-patches] [PATCH v2 06/10] region: use aligned allocations where necessary
Date: Thu, 28 May 2020 23:35:55 +0300	[thread overview]
Message-ID: <049e01d6352f$96a7e950$c3f7bbf0$@tarantool.org> (raw)
In-Reply-To: <31172635747a4f2d20c37525379285aa5ba69ab2.1590622225.git.v.shpilevoy@tarantool.org>



: From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
: Subject: [PATCH v2 06/10] region: use aligned allocations where necessary
: 


: diff --git a/src/box/alter.cc b/src/box/alter.cc
: index dbbbcbc44..bb4254878 100644
: --- a/src/box/alter.cc
: +++ b/src/box/alter.cc
: @@ -537,11 +537,13 @@ space_format_decode(const char *data, uint32_t
: *out_count,
:  		*fields = NULL;
:  		return 0;
:  	}
: -	size_t size = count * sizeof(struct field_def);
: +	size_t size;
:  	struct field_def *region_defs =
: -		(struct field_def *) region_alloc(region, size);
: +		region_alloc_array(region, typeof(region_defs[0]), count,
: +				   &size);

I'd say that `typeof(region_defs[0])` is very indirect way to write 
`struct field_def` :) Why you've chosen this way (and not 
simpler/clearer) way?


: @@ -2452,10 +2454,12 @@ on_replace_dd_space(struct trigger * /* trigger
: */, void *event)
:  		 * comparators must be updated.
:  		 */
:  		struct key_def **keys;
: -		size_t bsize = old_space->index_count * sizeof(keys[0]);
: -		keys = (struct key_def **) region_alloc(&fiber()->gc, bsize);
: +		size_t bsize;
: +		keys = region_alloc_array(&fiber()->gc, typeof(keys[0]),
: +					  old_space->index_count, &bsize);

Oh, now I see - for copy-paste sake :)
(I still think though the explicit `struct key_def*` would be 
clearer for the stranger passing by.)

The same question is applying multiple times below in the patch.

...
...

And joking aside, putting aside all debatable complains about 
simpler/clearer code which might be used (which you could ignore
in general), here is real complain - this is gcc preprocessor
extension, which might be not working under other C99/C11-compliant
compilers. Which we would rather avoid in a longer run (if standard 
C compatible code would not require much efforts from us, like in
these cases)

Regards,
Timur

  reply	other threads:[~2020-05-28 20:35 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-27 23:32 [Tarantool-patches] [PATCH v2 00/10] Sanitize unaligned access Vladislav Shpilevoy
2020-05-27 23:32 ` [Tarantool-patches] [PATCH v2 01/10] small: sanitized rlist and new region API Vladislav Shpilevoy
2020-05-28 20:41   ` Timur Safin
2020-05-28 22:56     ` Vladislav Shpilevoy
2020-06-08 23:01   ` Vladislav Shpilevoy
2020-05-27 23:32 ` [Tarantool-patches] [PATCH v2 10/10] xrow: use unaligned store operation in xrow_to_iovec() Vladislav Shpilevoy
2020-05-28 20:20   ` Timur Safin
2020-05-27 23:32 ` [Tarantool-patches] [PATCH v2 02/10] cmake: ignore warnings on alignof() and offsetof() Vladislav Shpilevoy
2020-05-28 20:18   ` Timur Safin
2020-05-29  6:24   ` Kirill Yukhin
2020-05-29 22:34     ` Vladislav Shpilevoy
2020-05-27 23:32 ` [Tarantool-patches] [PATCH v2 03/10] cmake: add option ENABLE_UB_SANITIZER Vladislav Shpilevoy
2020-05-28 20:42   ` Timur Safin
2020-05-29  8:53   ` Sergey Bronnikov
2020-05-29 22:36     ` Vladislav Shpilevoy
2020-05-27 23:32 ` [Tarantool-patches] [PATCH v2 04/10] crc32: align memory access Vladislav Shpilevoy
2020-05-28 20:11   ` Timur Safin
2020-05-28 23:23     ` Vladislav Shpilevoy
2020-05-28 23:32       ` Timur Safin
2020-06-08 22:33       ` Vladislav Shpilevoy
2020-05-27 23:32 ` [Tarantool-patches] [PATCH v2 05/10] sql: make BtCursor's memory aligned Vladislav Shpilevoy
2020-05-28 20:20   ` Timur Safin
2020-05-27 23:32 ` [Tarantool-patches] [PATCH v2 06/10] region: use aligned allocations where necessary Vladislav Shpilevoy
2020-05-28 20:35   ` Timur Safin [this message]
2020-05-28 23:07     ` Vladislav Shpilevoy
2020-05-27 23:32 ` [Tarantool-patches] [PATCH v2 07/10] vinyl: align statements and bps tree extents Vladislav Shpilevoy
2020-05-28 20:38   ` Timur Safin
2020-05-27 23:32 ` [Tarantool-patches] [PATCH v2 08/10] tuple: use unaligned store-load for field map Vladislav Shpilevoy
2020-05-28 20:22   ` Timur Safin
2020-05-27 23:32 ` [Tarantool-patches] [PATCH v2 09/10] port: make port_c_entry not PACKED Vladislav Shpilevoy
2020-05-28 20:42   ` Timur Safin
2020-06-03 21:27 ` [Tarantool-patches] [PATCH v2 00/10] Sanitize unaligned access Vladislav Shpilevoy
2020-06-08 22:33 ` Vladislav Shpilevoy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='049e01d6352f$96a7e950$c3f7bbf0$@tarantool.org' \
    --to=tsafin@tarantool.org \
    --cc=alyapunov@tarantool.org \
    --cc=korablev@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --cc=v.shpilevoy@tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v2 06/10] region: use aligned allocations where necessary' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox