Фар3: Зачем GetPluginInfoW заполняет StructSize?

Место, где разработчики плагинов могут поделиться своим опытом.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Фар3: Зачем GetPluginInfoW заполняет StructSize?

Post by Max Rusov »

Latest post of the previous page:

Согласен с NightRoman, поле StructSize всегда должен заполнять плагин и никогда - FAR.

Вообще со StructSize сейчас какой-то бардак. Большинство вызовов, получающие структуры, этот StructSize не проверяют. Соответственно N-ое количество плагинов его и не заполняют. В результате, когда размер структуры изменится и Far решит этот StructSize все таки проверить, то все такие плагины отвалятся. Спрашивается - за что боролись?..

DrKnS опередил на кнопке :)
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Фар3: Зачем GetPluginInfoW заполняет StructSize?

Post by Maximus5 »

Еще раз. Пока память под структуры выделяет фар, заполнение их из плагина есть бред.
Типа фар (или другой плагин) передал структуру размером 100 байт. А получивший эту структуру плагин установит StructSize в 200 байт и заполнит эти 200 байт. Ага, щас...
User avatar
GrAnD
Posts: 351
Joined: Thu 13 Oct, 2005 23:47
Location: Amsterdam
Been thanked: 3 times
Contact:

Re: Фар3: Зачем GetPluginInfoW заполняет StructSize?

Post by GrAnD »

поддерживаю NightRoman и Max Rusov.
сразу возникает с какими хедерами собран плагин что заполнил 200 байт.
не из "альтернативных" ли исходников.
не надо плодить сущьности - не появятся надуманные проблемы
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: Фар3: Зачем GetPluginInfoW заполняет StructSize?

Post by Max Rusov »

Maximus5 wrote:Еще раз. Пока память под структуры выделяет фар, заполнение их из плагина есть бред.
Нет. Смотри: есть TPluginInfo. Допустим в N+1 версии Far в него добавят новое поле, которое плагин должен установить. Естественно, старые плагины про это поле не знают и ничего туда не запишут. Far должен знать установил ли плагин это поле, а если нет - то должен принять для него некое умолчательное значение. Он может это сделать, если плагин установил StructSize, т.е. явно сказал сколько полей структуры он заполняет.

Очевидно, структуры могут меняться только путем добавления новых полей в конец. И никогда не должны уменьшаться.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: Фар3: Зачем GetPluginInfoW заполняет StructSize?

Post by Maximus5 »

уговорили
Post Reply

Return to “Разработка плагинов”