LINUX.ORG.RU

История изменений

Исправление bonta, (текущая версия) :

Нет, это я невнимательный. Действительно дело в ней.. Вернее в том что я не правильно ее вызвал.

Всем спасибо.

Вот:

       const char firtSymbolFillers = std::abs(8 - firstSymbolPosIn7bit);

        if (UHDI_present && firtSymbolFillers) {
            unsigned char firstSymbol;
            HexToBin(&payloadText[1], &firstSymbol, 2);
        }

Видно что я вызываю ее с 2-йкой, двойка это сколько байтов читать. А передаю ей для сохранения переменную длинной в один байт.

И возможно _fastcall реализация конвекции о вызовах работает так что HexToBin берет в стеке переменную firstSymbol а коль ей нужно записать не один байт а два, то берет следующую переменную стека Inc(Buffer); - а это как раз константная firtSymbolFillers.

Исходная версия bonta, :

Нет, это я невнимательный. Действительно дело в ней.. Вернее в том что я не правильно ее вызвал.

Всем спасибо.

Вот:

       const char firtSymbolFillers = std::abs(8 - firstSymbolPosIn7bit);

        if (UHDI_present && firtSymbolFillers) {
            unsigned char firstSymbol;
            HexToBin(&payloadText[1], &firstSymbol, 2);
        }

Видно что я вызываю ее с 2-йкой, двойка это сколько байтов читать. А передаю ей для сохранения переменную длинной в один байт.

И возможно _fastcall реализация конвекции о вызовах работает так что HexToBin берет в стеке переменную firstSymbol а коль ей нужно записать не один байт а два, то берет следующую переменную стека - а это как раз константная firtSymbolFillers.