Разбираясь в том, как работает код, я в первую очередь пытался уменьшить объем кода для анализа и куча публичных методов этому мешают. Поэтому я постарался проанализировать, какие из них действительно используются где-то вовне .c файла, где они определены, и оказалось, что часть из них вполне локальны. Если это зафиксировать в коде, то дальнейший анализ программы упрощается.
Таким образом, я удалил часть косвенных вызовов через указатель, сделав их прямыми. При этом в большинстве случаев плагины (если бы хоть какие-то существовали) все равно не имели к доступа к удаленным функциям, так что это не ломает API. Исключение -- предпоследний коммит (95f09af), где удаляется функция, которая потенциально доступна плагинам, но вызывать они ее вряд ли станут, т.к. это все поломает.
Разбираясь в том, как работает код, я в первую очередь пытался уменьшить объем кода для анализа и куча публичных методов этому мешают. Поэтому я постарался проанализировать, какие из них действительно используются где-то вовне
.c
файла, где они определены, и оказалось, что часть из них вполне локальны. Если это зафиксировать в коде, то дальнейший анализ программы упрощается.Таким образом, я удалил часть косвенных вызовов через указатель, сделав их прямыми. При этом в большинстве случаев плагины (если бы хоть какие-то существовали) все равно не имели к доступа к удаленным функциям, так что это не ломает API. Исключение -- предпоследний коммит (95f09af), где удаляется функция, которая потенциально доступна плагинам, но вызывать они ее вряд ли станут, т.к. это все поломает.