[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