Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

2Kladov : Bug Fix OnIdle?   Найти похожие ветки 

 
ecm   (2004-08-17 19:37) [0]

Ув. Владимир я тут вам посылал письмо. По-поводу найденых
ошибок в OnIdle. Может оно не дошло?
Вот его содержание:

Здравствуйте, Vladimir.

Заметил одну "неприятность" в механизме OnIdle.
Может я чего пропустил в форуме, но в последней версии
(я проверил еще раз - скачав V1.90 и применив update 190to192)
предлагаю поправить следующее:

//[function FindIdleHandler]
function FindIdleHandler( const OnIdle: TOnEvent ): integer;
var
 i: integer;
begin
 i := 0;
 if (not AppletTerminated) and (IdleHandlers <> nil) then //+ {Maxim Pushkar}
                           ========================= 1) После UnRegisterIdleHandler список уже может
                                                        быть разрушен!
 with TMethod(OnIdle), IdleHandlers{-}^{+} do
   while i < Count do begin
     if (Items[i] = Code) and (Items[i + 1] = Data) then
     begin
       Result := i;
       exit;
     end;
     Inc(i, 2);
   end;
 Result := -1;
end;
//[END FindIdleHandler]

//[procedure UnRegisterIdleHandler]
procedure UnRegisterIdleHandler( const OnIdle: TOnEvent );
var
 i: integer;
begin
 i := FindIdleHandler(OnIdle);
 if i <> -1 then
 with IdleHandlers{-}^{+} do
 begin
   Delete(i);
   Delete(i);
   {added by dominiko:}
   if IdleHandlers.Count = 0 then begin  // 2) Проверка на 0 только, если найден обработчик -> i<>-1!
     ProcessIdle := DummyObjProc;        // 3) либо в ProcessIdle проверять в начале, что IdleHandlers <> nil
     Free_And_Nil(IdleHandlers);
   end;
 end;
end;

Последовательность действий для проявления ошибки:
- Исходно обработчиков еще нет;
- RegisterIdleHandler(..);
- UnRegisterIdleHandler(..) - при отсутствии изменения 3 - падение  в ProcessIdle
                             т.к. IdleHandlers = nil;
- еще раз UnRegisterIdleHandler(..)/Имею я право разрегистировать
незарегистрированный обработчик? :=)/ - при отсутствии 1 - падение в Find..  2 - падение в UnRegister..
                                       т.к. IdleHandlers = nil;
--
С уважением,
ECM                          mailto:ecm@ua.fm

Хотелось бы услышать ваше мнение ...
Непонятно что будет дальше IdleHandler-ами?


 
ecm   (2004-08-17 23:03) [1]

Вопрос остается!


 
SPeller ©   (2004-08-18 03:09) [2]

Исправь у себя и жди когда Владимир м.б. внесет эти изменения. У меня у самого своих изменений куча, которые вручную качуют из одной версии в другую :)


 
ecm   (2004-08-18 11:46) [3]

2Speller & 2Kladov может быть стоит перенести проект в CVS
чтобы "корифеи" могли править самостоятельно?!
В крайнем случае Кладов всегда мог бы сделать Rollback!


 
ecm   (2004-08-18 12:02) [4]

По-моему надо как-то помогать Кладову - он же
не железный!


 
SPeller ©   (2004-08-18 13:00) [5]

Да мы и так помогаем. У него просто нет времени просмотреть то что мы предлагаем и внести это всё в конечный модуль.


 
ecm   (2004-08-18 13:05) [6]

Ну дык CVS для этого и предназначен.
А Кладов мог бы там быть "модератором" (root)


 
SPeller ©   (2004-08-18 15:20) [7]

И так нормально. Просто Владимир как никто другой знает идеологию всей библиотеки, и, я думаю, никто кроме него содержать ее в нормальном состоянии, в том числе и концептуальном не сможет.


 
Vladimir Kladov   (2004-08-18 17:09) [8]

исправлять ошибки, если обнаруживаются, конечно надо. Но прежде чем вносить что-то новое, очень хотелось бы быть уверенным:
1. что это не вносит ошибок
2. что это не увеличивает код
3. и насчет лицензионной чистоты тоже. А потом всякие SCO купят права на тот продукт, из которого это вытащено, и начнут права качать...

из того, что уже есть в KOL, хотелось бы видеть доведенными до ума:
1. прозрачность/двойная буферизация
2. выравнивание (Align) - иногда бывает, что все-таки не работает само, приходится подталкивать вызовом Global_Align( родитель ) а то и просто писать свой код на OnResize
3. MDI - просто нужен специалист, который умеет делать это на API
4. Чтение-запись иконок (записанные иконки не всегда потом читаются)

А времени никогда не хватает... И не заниматься же мне все время одним только KOL"ом, у меня тоже есть другие интересы. То что работает - этим я сам очень здорово пользуюсь, но опять же не всем, так что баги иногда все еще обнаруживаются.

Так что, начинайте помогать. Нашли ошибку - делайте исправление, тестируйте, присылайте список изменений или upd-файл. По возможности буду вносить корректировки.


 
SPeller ©   (2004-08-19 06:40) [9]


> 4. Чтение-запись иконок (записанные иконки не всегда потом
> читаются)

Чтение-запись в файл?



Страницы: 1 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
1-1109416806
Kwt
2005-02-26 14:20
2005.03.13
Border Style


14-1108858295
АНТИспаммер
2005-02-20 03:11
2005.03.13
Как отличить спам от не спама ?


1-1109262876
AlexanderVas
2005-02-24 19:34
2005.03.13
Можно ли поменять тип записи во время исполнения программы


14-1109105043
olookin
2005-02-22 23:44
2005.03.13
Пункт меню в Outlook...


6-1104840203
Sergio
2005-01-04 15:03
2005.03.13
Зарубежный трафик