View Issue Details

IDProjectCategoryView StatusLast Update
0003665Wishes.PluginsLuaMacro / Macro Browserpublic2018-11-07 19:42
ReporterJohnDoeAssigned Toshmuel 
PrioritynormalSeverityminorReproducibilityN/A
Status closedResolutionfixed 
Platformx86OSWindowsOS VersionXP SP3
Product Version3.0 
Target VersionFixed in Version 
Summary0003665: far.FreeSettings: в документации акцентировать особенности использования
DescriptionЖелательно в мануале добавить примечание, поясняющее особенности функции, с перекрёстной ссылкой на метод схожего назначения.

https://forum.farmanager.com/viewtopic.php?p=151149#p151149
Additional InformationНеобходимость пояснения вытекает из факта, что функцией "злоупотребляют", используя её вместо метода конкретного экземляра настроек.
TagsNo tags attached.

Activities

shmuel

2018-11-02 18:23

developer   bugnote:0016280

OK, предложите формулировку, чтобы обойтись одной итерацией.

JohnDoe

2018-11-03 20:31

updater   bugnote:0016291

Например:

N.B.: For debug purposes only!
Normally you should use method ~Free~ to free each settings handle individually.

Выделить, или поставить перед описанием.

shmuel

2018-11-04 10:37

developer   bugnote:0016292

Давайте лучше всё-таки удалим данную функцию.
Как указано в документации:
LuaFAR Manual wrote

If Free() is never called, an object will eventually be freed by the garbage collector.

Другими словами, хэндл всё равно будет закрыт, даже если программист забудет это сделать (за исключением случаев крэша).

JohnDoe

2018-11-05 14:14

updater   bugnote:0016293

Меня тут беспокоит не возможная утечка памяти, а то, что неосвобождённые настройки не дают создать новый их экземпляр (0002940).

В этом случае даже принудительный вызов collectgarbage может не помочь, ведь переменная может быть всё ещё валидна.

shmuel

2018-11-05 22:28

developer   bugnote:0016294

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

Насчёт невозможности создать новый экземпляр настроек, то такого ограничения в SQLite, насколько я знаю, нет. По-видимому, это особенности реализации работы с базами в Фаре.

Короче, мне не нравится, что данный тикет висит. Надо будет в течение дня-двух определиться: либо предупреждение в документацию, либо удаление функции. Собственно, склоняюсь к 1-му, ибо это есть тема данного тикета. Если кто-то сильно хочет, чтобы функция была удалена, пусть создаёт новый тикет.

shmuel

2018-11-05 23:35

developer   bugnote:0016295

Last edited: 2018-11-05 23:35

View 2 revisions

В документацию добавлено предупреждение.

Issue History

Date Modified Username Field Change
2018-10-30 17:48 JohnDoe New Issue
2018-11-02 18:23 shmuel Note Added: 0016280
2018-11-03 20:31 JohnDoe Note Added: 0016291
2018-11-04 10:37 shmuel Note Added: 0016292
2018-11-05 14:14 JohnDoe Note Added: 0016293
2018-11-05 22:28 shmuel Note Added: 0016294
2018-11-05 23:35 shmuel Assigned To => shmuel
2018-11-05 23:35 shmuel Status new => feedback
2018-11-05 23:35 shmuel Note Added: 0016295
2018-11-05 23:35 shmuel Note Edited: 0016295 View Revisions
2018-11-06 12:10 JohnDoe Status feedback => resolved
2018-11-07 19:42 shmuel Status resolved => closed
2018-11-07 19:42 shmuel Resolution open => fixed