Re[3]: kotlin всЁ?
От: Artifact  
Дата: 09.04.21 10:26
Оценка: +1 -1 :))
PJ>А вот если бы тебя позвали, то все было бы по-другому?

А почему ты так уверен, что нет?

PJ>Совершенно правильный вывод. Вывод, что во всем виноваты люди совершенно бесполезный. Так можно было и дальше ассемблера не ходить.


Все ошибки с памятью, которые можно допустить в C++, давно известны. Неужели так трудно научить своих сотрудников их не делать? Да, лучше, если компилятор будет бить по рукам, если делаешь, что-то нетак. Но в приведённой статье есть более интересный момент

For complex C/C++ code bases, often there are only a handful of people capable of developing and reviewing the fix, and even with a high amount of effort spent on fixing bugs, sometimes the fixes are incorrect.


complex C/C++ code bases — сложный C/C++ код.
there are only a handful of people capable of developing and reviewing the fix — немного людей, кто в состоянии устранить ошибку.

Иными словами гугл подтверждает, что в их коде чёрт ногу сломит.

Насколько мне известно, чтобы из сложного кода сделать код проще, требуется приложить определённые умственные усилия, а не просто поменять язык программирования.


Кстати, там есть интересная ссылка на найденный баг в гугловом коде https://googleprojectzero.blogspot.com/2015/09/stagefrightened.html

Прежде чем начать читать статью, я пробежал глазами по коду. Первое за что я зацепился было это
if ((size_t)(mDataSource->readAt(*offset, buffer + size, chunk_size))
            < chunk_size)


Зачем понадобился каст в size_t? Для любого опытного С++ программиста любой каст это сразу же намёк, что что-то тут нетак. Что возвращает mDataSource->readAt ? Это int? А если он вернёт -1, а мы это скастим в size_t, мы получим 18446744073709551615 (если это 64 битная платформа). Это точно то, чего добивался автор?

Это реально трудно заметить, или у меня дар божий?
__________________________________
Не ври себе.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.