Левое выражение составного присваивания является неинициализированным значением. Вычисленное значение также будет мусором - PullRequest
0 голосов
/ 08 октября 2019

Когда я запускаю сборку для своего проекта iOS, выдается логическая ошибка: Левое выражение составного присваивания является неинициализированным значением. Вычисленное значение также будет мусором.

Это выбрасывается в пакет Yoga, который можно найти здесь .

Я проверил различные переполнения стека иТемы Github, но я не смог найти никого с такой же проблемой.

(performLayout ? layoutMarkerData.cachedLayouts
                   : layoutMarkerData.cachedMeasures) += 1;

Это должно сработать без этой ошибки.

1 Ответ

1 голос
/ 08 октября 2019

Никогда раньше не использовал Yoga, но, скорее всего, из-за ошибки я пытаюсь увеличить неинициализированную память, основываясь на layoutMarkerData , который выглядит как экземпляр Layout Data :

struct LayoutData {
    int layouts;
    int measures;
    int maxMeasureCache;
    int cachedLayouts;
    int cachedMeasures;
    int measureCallbacks;
    std::array<int, static_cast<uint8_t>(LayoutPassReason::COUNT)>
    measureCallbackReasonsCount;
};

cachedLayouts и cachedLayouts - оба типа, для которых не задано значение по умолчанию, поэтому если LayoutData имеет значение инициализировано по умолчанию , они имеют значениевсе, что было в памяти или мусор.

Так что я думаю, что исправление состоит в том, чтобы присвоить им значение перед строкой, которую вы указали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...