-
[-] Исправления в KOL: WStrRScan - код скопирован из StrRScan. Исходная версия WStrRScan работала некорректно в случае отсутствия искомого образца.
[-] Исправления в обработчике WM_NCDESTROY для корректного уничтожения меню (не мог быть разрушен после разрушения окна-владельца).
[*] Улучшена функция ClipboardHasText - удален ненужный код.
[+] Метод TBitmap.CopyToClipboard переименован в CopyToClipboardAsDIB, добавлена другая версия CopyToClipboard, использующая формат CF_BITMAP (существенно более короткий код).
-
> для корректного уничтожения меню
и какие такие дефины в проекте должны стоять, чтоб до этого исправления дошёл код вообще????
при закрытии в тестовом приложении как были утечки меню из под дельфи, так и остались, а в крупном проекте еще и ошибки памяти вылезли, попытка модификации после освобождения
-
-
> чтоб до этого исправления дошё
Да, я забыл про kol_asm.inc. Перевыложил, заодно и в kol.pas пару исправлений внес. В частности, добавил, что по заклинанию LET_MENU_LEAK все будет как раньше. Еще раз проверил в MemProof 0.9.4.8 и с FastMM3. Все чисто. > какая связь между этими адресами?http://sourceforge.net/projects/kolmck/http: > //sourceforge.net/projects/keyobjectslibrary/
Один из них не мой.
-
> Один из них не мой.
не ну я так-то догадался, просто они тож чето там улучшают вы типа не скооперированы вообще?
-
> Да, я забыл про kol_asm.inc. Перевыложил, заодно и в kol. > pas пару исправлений внес. В частности, добавил, что по > заклинанию LET_MENU_LEAK все будет как раньше. Еще раз проверил > в MemProof 0.9.4.8 и с FastMM3. Все чисто.
не, не работает вот проверь тут полный комплект https://yadi.sk/d/1JxuHV9kedCXf запускай из под среды
-
если это - это, то это копец, такая куча дефинов что до Final вообще недоходит
WM_NCDESTROY: {$IFnDEF SMALLER_CODE} if fHandle = Msg.hwnd then {$ENDIF} begin {$IFNDEF LET_MENU_LEAK} if IsForm then begin {$IFNDEF SMALLER_CODE} Hide; // VK: to destroy form visually faster, 18.02.2015 {$ENDIF} {$IFNDEF SMALLEST_CODE} Final; // VK: to provide correct menu destroying, 18.02.2015 {$ENDIF} end; {$ENDIF} {$IFnDEF SMALLER_CODE} {$IFDEF USE_PROP} RemoveProp( fHandle, ID_SELF ); //********* Added By M.Gerasimov {$ELSE} SetWindowLong( fHandle, GWL_USERDATA, 0 ); // VK + Alexey Kirov, 23.02.2012 {$ENDIF} {$ENDIF} //------------------------------------------- Default; Exit; end;
с PAS_VERSION вообще ниодна строчка в function TControl.WndProc( var Msg: TMsg ): Integer; неактивна в KOL.Pas
-
Вообще-то, все доходит. Это у Вас что-то неправильно. Например, не та версия исходников компилируется.
Мои исправления вообще не касались утечек памяти. FastMM3 их не показывал. Я решал проблему утечки ресурса меню. Пытался решить. Сейчас выкладываю новое исправление. На этот раз удалось лучше. И заодно проблемы с FastMM4 устраняются. Но исправление слишком радикальное, меняется порядок уничтожения окон. Может вылезти что угодно. Поэтому все можно будет вернуть по заклинанию LET_MENU_LEAK.
Уже выложил.
-
ну во первых в комплекте отсутствует koladd.pas хотя требуется для установки
-
во вторых чую придется снимать кино....
-
-
Сразу: FastMM я скачал сам, версия 4.991, ваша 4.97. Вряд ли много отличий, но лучше, если Вы обновитесь. Дальше: я использовал Delphi7 под XP SP3 (виртуалка) со всеми обновлениями. delphi5 я давно не использую, но даже если с ней работать, для нее есть обновления. Слово нулевая нехорошо звучит.
Далее, для проверки с FastMM он должен быть первым в проекте. Рекомендую проверять это перед каждым билдом. MCK любит ссылку на KOL ставить на первое место.
Кроме того, для лучшей диагностики надо править опции проекта, убирать оптимизацию, добавлять в линкере символы TD32, тогда диагностика показывает красивше. Если до нее доходит дело, конечно.
-
> нулевая нехорошо звучит
это звучит как "с обновой, без экспертов, без компонентов, с дефолтными настройками" XP SP3 (виртуалка) со всеми обновлениями - тоже самое рабочий Delphi7 + полуживая Win7x64 - тот же результат кудаб не писал FastMM, даже в сам кол.пас - никакой разницы хоть с какими настройками отладки версию FastMM попробую канешн обновить, но веть логично, что если например в 2.79 такого не происходит, то проблема не в FastMM?
-
Да, не в нем. Потому что я уже попробовал и с вашей версией FastMM, и с Delphi5 уже (и даже без обновлений). И у меня все чисто. Еще подумал, может, FastMM молча падает. Нет, останавливается на строке кода FinalizeMemoryManager, по F8, выполняет и хочет работать дальше. Ни сообщений, ни логов. Добавляю опцию LET_MENU_LEAK, сообщения про утечки есть.
Проверьте, что с сайта KOL скачалась именно версия 3.23 (в начале kol.pas VERSION 3.23+). MCK я не менял с июня.
Если не компилятор (версия Delphi), остается только железо и ОС, а это очень странно.
-
вобщем с "новым" фастмм и всеми дебугами без оптимизаций без LET_MENU_LEAK без среде в винде также ошибка с LET_MENU_LEAK в винде без ошибки, а в среде вот такой вот файл с номерами строк, все по ГОСТу https://yadi.sk/i/znRAQNpxepuP4
-
Обновил только что, 3.23++. Удалось получить сообщения под win7. Не знаю, виртуалка виновата, или еще что, но под XP оно как-то не детектило.
-
если DEP включен для всех прог и делфи с проектным файлом не внесено в исключения, тогда может проглатывать
-
так так так... с меню вроде норм стало, по крайней мере, тестовый примитив и прога средней сложности молчит однако в навороченной есть косяк. но уже не с меню, а похоже на Tlist, тоже из под делфи
-
-
о еще косяк в другой поделке если я впихиваю формы-фрэймы в таб контрол вот так (может это через Ж..) NewForm2(Form2,TabControl1.Pages[2]); NewForm3(Form3,TabControl1.Pages[1]);
то из под делфи опятьже утечка по этим 2м вкладкам или фрэмам, когда табконтроле были панели такого не было https://yadi.sk/i/2iRkCf-NeqC5Pс какой версии эти глюки не скажу, ибо они прятались среди громадья глюков меню
|