- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
new = ngx_pnalloc(cf->pool, sizeof("; domain=") - 1 + domain->len);
if (new == NULL) {
return NGX_CONF_ERROR;
}
p = ngx_cpymem(new, "; domain=", sizeof("; domain=") - 1);
ngx_memcpy(p, domain->data, domain->len);
domain->len += sizeof("; domain=") - 1;
Но вообще всё это придирки, не говнокод.
З.Ы.Можно минусовать.
к-своему-стыду-забывающий-Си-и-С++-кун
Грабли возникнут, только если попытаться скомпилировать это компилятором С++.
тут дело не в памяти вообще-то. если чуваку придётся изменить это значение, он может забыть в одном месте что-нибудь изменить. т.е. в одном месте будет "; newdomain=", а в другом может остаться "; domain=".
в понятиях маинтабилити, это тоже самое, что писать some_code(0, SOME_CONSTANT); some_code(1, SOME_CONSTANT); some_code(2, SOME_CONSTANT); вместо for(i = 0; i < 3; i++) { some_code(i, SOME_CONSTANT); }
это неявный копипаст, что чревато чисто человеческими ошибками (компилер тут ни при чём)
поэтому выигрыш для вынесения в константу есть!
а минусуют в основном потому что "nginx - это круто и выше моего понимания, потому что я быдлокодер на жава, nginx-то уж писали тру-хоцкеры, которые не могут ошибиться"
Изменить на одной строке и не заметить на другой нереально, тем более что делается это не в блокноте
Кому-нибудь "лишний" пробел не понравится, или еще что.
Опять же, люди разные - один заменит везде, другой скажет "я типа не заметил, что их там много".