Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

RTS2, работа над ошибками

Позавчера добавил в конфигурации RTS2 флаги "-Werror -Wextra" к CFLAGS и начал править
Два с половиной дня у меня заняло исправление всех (кроме одной) вещей, на которые ругался gcc. Лишь одну пришлось оставить: автор использует старую версию libjsoncpp, и gcc ругается, что кое-что уже "deprecated". Но с этим мне разбираться совсем никакого желания нет, если уж прижмет, заменю на свой JSON-парсер.

Самым распространенным у автора было не помечать как __attribute__((__unused__)) неиспользуемые аргументы функций. Вот и думай: то ли лишних аргументов он наделал ради того, чтобы в классах-наследниках их использовать, то ли это рудимент от старых версий и нужен рефакторинг.
Вторым по популярности была попытка присвоить const значениям, возвращаемым функциями.
Еще автор часто путал ssize_t и size_t (вроде size_t x = someth(); if(x < 0)…).
В одном месте вообще жесть была: мода вычислялась по прямой гистограмме! И ладно бы, было ограничение на 16 бит, так нет: даже для 64-битных выражений была попытка выделить 10¹⁹ байт и построить гистограмму.
В нескольких местах отсутствовала проверка кодов возврата system, open и т.п.
Случайно нашел утечку памяти (благодаря предупреждению о сравнении знаковой и беззнаковой величины в той же функции).

Понятно, что множество людей внесли вклад в RTS2: там содержатся куски не только на С++, но и на С. Но везде нет-нет, да какие-то огрехи появляются. Видимо, поэтому до сих пор в репозитории на гитхабе чуть ли не каждый день появляется по несколько коммитов с исправлением тех или иных ошибок.

Явно нужны 5-10 студентов, которые бы провели полный рефакторинг RTS2 с удалением deprecated конструкций, фиксированием проблем и приведением всего дерева кода в одинаковый стиль оформления. Жаль, что нельзя на С RTS2 переписать — из-за явного преимущества ООП в данном случае.
Tags: rts2
Subscribe

  • Чем бы таким заменить STM32F072C8T6?

    Полез сейчас на али цены посмотреть, а там… В среднем уже по 600-700 рублей за штучку просят! Вообще охамели. И это - гарантированно БУшные ведь!.. А…

  • Понаблюдал, блин!

    Опять у нас что-то с сетью поломали. Хотел было протестировать, как наша подвесная часть оптоволоконного спектрографа работает, а из дома связь с…

  • Дохлый SSD

    Писал уже о китайском SSD, сдохшем за полтора месяца работы. Вот он, герой: Сегодня у нас опять работы с оптоволоконным спектрографом на цейссе,…

promo eddy_em august 17, 2019 12:33 3
Buy for 10 tokens
Юра намедни напечатал корпус для хронометра. Для первого блина получилось неплохо: И еще немного фотографий:
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 2 comments