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