Ден94, я люблю когда в меня втыкают тысячу ножей вместе с иглами и прокручивают мои кишки изнутри наворачивая их на шашлычки для бездомных шакалов, мряф ~ </3
При записи значения выделяется память на количество элементов, равное значению ближайшей сверху степени двойки.
При увеличении массива, его размер подстраивается так, чтобы быть кратным числу X, где X = требуемый размер, округленый вниз до ближайшей степени двойки, но не больше чем 64.
Локальные массивы с типом наследующим handle просто шикарно отстреливают жопы. При изменении размера будет утечка четырёх байт на каждое значение отличное от null. Поэтому таким массивам обязательно выделять память, гарантировано покрывающим все элементы. А так же при выходе их функции в таком массиве не должно быть значений отличных от null.
Глобальные и локальные массивы работают одинаково. Когда память перевыделяется, то старые елементы копируются в новый буфер, а старый буфер освобождается.
Если перед выходом из функции обнулять все элементы, содержащие agent'ы, то ссылки на таблицу хэндлов тоже не утекут. Тут всё как и с обычными переменными.
Из багов с массивами, могу припомнить краш при загрузке сохранения, в скрипте которого присутствует массив, размеров больше чем 8191, который происходит из-за неправильной проверки.
фрагмент кода для загрузки массива из потока данных
nazarpunk, я уже понял, что сам софт создан корпорацией, а ты делал только плагин. Посему извиняюсь за претензии к тормознутости и геморройности установки, это надо мне было им писать, а не сюда. Но всё равно я не понимаю, куда столько памяти софт просит, размером с пару микрософт офисов... ну и то, что он открывал какой то мелкий .j файл на 700кб аж 3 минуты (против 7 секунд у jasscraft) наводит на вопросы к разрабам - что они там вообще натворили? Каждый раз открывать прогу с танцами с бубнами, (особенно учитывая, что правлю я скрипты свои несколько раз за день, по желанию своей левой пятки) - не улыбается, честно говоря. Но ладно, я уже понял, что свои претензии пишу не по адресу )
Уже почти седьмой год IntelliJ является моей боевой IDE. Многие вещи там сделаны довольно таки удобно. А если сравнивать с VSCode, то это верх дизайнерского изыска. За всё это дело приходится платить оперативой, что собственно не сложно.
Ну и не забываем про API для разработчиков. Когда кто-то напишет Language Server для JASS то пинганите. Я пока что не видел ни одного редактора, который разбирает жасс семантически. Только унылая подсветка по шаблонам.
Комментарии проекта WarRaft
BLP - Blizzard Lossless Picture
Ред. ScorpioT1000
И там же можно создать иконки. Инструкция
Ред. konvan5
Переменные
Ред. IceFog
Если перед выходом из функции обнулять все элементы, содержащие agent'ы, то ссылки на таблицу хэндлов тоже не утекут. Тут всё как и с обычными переменными.
Выбор редакции
IntelliJASS