Проблемы со статическими переменными в плагинах приложений (например, в пакетах Mach-O) в macOS 10.14 - PullRequest
0 голосов
/ 20 октября 2018

Я поддерживаю несколько плагинов для экосистемы Adobe, и в macOS 10.14 (только) начало происходить что-то очень странное.

Эти плагины написаны на C ++ и используют Adobe C / C ++ SDK.На Mac это, по сути, пакеты Mach-O (AKA dylibs), которые Adobe загружает во время выполнения.Когда один плагин загружается, например, в Illustrator на macOS 10.14, все работает нормально (то есть, как 10.13 и ниже).Однако, когда несколько плагинов загружаются в Illustrator 10.14, статические / глобальные / и т. Д.переменные кажутся общими для каждого dylib (и иногда кажутся потерянными и / или неожиданно неопределенными).

Это очень отличается от поведения в 10.13 и ниже, где каждый dylibsiled и globals никогда не «взаимодействуют» друг с другом через dylibs.Я на 100% уверен, что эта проблема связана с macOS 10.14, поскольку те же самые файлы плагинов работают без проблем на 10.13 и ниже.Кроме того, проблема возникает в MacOS 10.14 в двух отдельных версиях, например, Illustrator.

Каждый плагин довольно большой (десятки тысяч строк кода, по крайней мере), поэтому я пока не уверен,Рассматриваемая проблема может быть сведена к простому контрольному случаю.В любом случае, Я пытаюсь определить, что, если что-то изменилось в отношении загрузки dylib, управления памятью и т. Д. В macOS 10.14 .Поиск изменений в dylibs в 10.14 не дал результатов.

...