- 1
- 2
- 3
- 4
- 5
- 6
private void executeUiOperation(final UiOperation operation, final Boolean documentReadOnly) {
boolean readOnly = !edit;
if (documentReadOnly != null) {
readOnly |= documentReadOnly;
}
//....
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+75
private void executeUiOperation(final UiOperation operation, final Boolean documentReadOnly) {
boolean readOnly = !edit;
if (documentReadOnly != null) {
readOnly |= documentReadOnly;
}
//....
Кручу-верчу запутать хочу...
ingenuus 20.07.2012 13:46 # 0
bormand 20.07.2012 14:02 # +8
Джавапроблемы ;)
absolut 20.07.2012 19:44 # 0
someone 21.07.2012 18:20 # −3
Убиться, и правда, в GCC и MSVC sizeof(bool) == 1.
Сколько живу и не знаю...
Lure Of Chaos 22.07.2012 00:05 # 0
Fai 22.07.2012 12:27 # 0
Lure Of Chaos 22.07.2012 12:30 # +5
Fai 22.07.2012 12:32 # 0
Lure Of Chaos 22.07.2012 12:41 # +2
все зависит от компилятора
bormand 22.07.2012 15:29 # +2
Однобайтовость же при размещении в памяти скажется только положительно - за счет меньшего размера структур с таким булом будет меньше промахов при обращениях к кешу.
USB 23.07.2012 00:42 # −1
В данном случае b соснет. Обращение к нему будет не выравненным и может печально закончится. Так что однобафтовый bull плохо. В любом случае это медленнее.
bormand 23.07.2012 05:29 # +1
И раз тут применили #pragma pack, то был вполне определенный протокол, в котором было написано 1 байт того-то и 4 байта сего-то. Поэтому все претензии не к однобайтовому булу, а к автору протокола.
P.S. Не надоело еще грызть кактусы и реализовывать сериализацию накладыванием структур? Ну я понимаю в embedded это актуально, и, возможно, в движках СУБД где надо быстро сохранять\загружать данные в непереносимом на другие машины формате (но там #pragma pack можно с чистой совестью выкинуть).
3.14159265 23.07.2012 16:01 # +1
Логикой это было никак не объяснить.
А суть была вот в чем - false=0, а вот true= -1.
Бейсиковский Byte был unsigned, то есть 0..255. Потому использовался 2-байтный Integer, в который можно было записать -1.
Вот такое вот говно.
Lure Of Chaos 23.07.2012 16:30 # +2
ну логично, ~ 0 == -1