[Tarantool-patches] [PATCH 5/5] qsync: sanitize txn_limbo_on_rollback
Cyrill Gorcunov
gorcunov at gmail.com
Sat Jul 11 18:46:51 MSK 2020
On Fri, Jul 10, 2020 at 10:38:39PM +0200, Vladislav Shpilevoy wrote:
> > @@ -691,13 +691,12 @@ txn_commit_nop(struct txn *txn)
> > static int
> > txn_limbo_on_rollback(struct trigger *trig, void *event)
> > {
> > - (void) event;
> > - struct txn *txn = (struct txn *) event;
> > + struct txn *txn = event;
>
> У нас так принято в коде, делать касты явными, даже в С и
> даже из воида. Хотя мы это уже обсуждали вроде, я почти
> уверен.
Не, не было такого требования. Если у нас так принято, то надо
прописать в SOB (и добавить такие вещи везде, только тогда еще
придется и все вызовы malloc/calloc проверить). "C" стандарт
гарантирует приведение void* к другому типу (в отличие от C++).
Наверное отсюда и пошло, что в коде мешанина: где-то есть
приведение, где-то нет. Поскольку я меняю код этой функции заодно
убрал и этот момент. Мне не принципиально, если тебе нравится
явное приведение типов, то без проблем.
> > /* Check whether limbo has performed the cleanup. */
> > - if (txn->signature != TXN_SIGNATURE_ROLLBACK)
> > - return 0;
> > - struct txn_limbo_entry *entry = (struct txn_limbo_entry *) trig->data;
> > - txn_limbo_abort(&txn_limbo, entry);
> > + if (txn->signature == TXN_SIGNATURE_ROLLBACK) {
> > + struct txn_limbo_entry *e = trig->data;
> > + txn_limbo_abort(&txn_limbo, e);
> > + }
>
> Зачем это изменение? Что оно улучшает? Я правда не понимаю. В
> этом патчсете все коммиты выглядят как просто пощупывание кода
> в процессе его чтения, и как вкусовщина. Давай плиз таких
> изменений избегать.
Убирает лишний return. До этого их было два. Я думаю ты просто не
заметил, что удаляется первый return (и кода поменьше становится
как на уровне сорцов, так и на уровне бинарника).
More information about the Tarantool-patches
mailing list