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

Вниз

Неукротимый варнинг.. Кто-то тормозит..   Найти похожие ветки 

 
Ihor Osov'yak ©   (2003-09-15 15:06) [0]

Как говорится, проблема на пустом месте.

Ниже фрагмент кода. Код локальных процедур удален, так как он не влияет на сабж.

В случае наличия выделенной строки, компилятор дает предупреждение, что
[Warning] fFileSetting.pas(355): Return value of function "GetXMLStrWithCurrentPrm" might be undefined

Причем я с такой трактовкой не согласен..
Зы - место положение строчки - немного выше, немного ниже на сабж не влияет.. Если некоторе колличество строчек кода перед соотв. строчкой закомментировать ( не важно какое) - варнинг исчезает. Если потои начинать откомментировать - снова появляется. Причем наблюдается триггерный эффект..

Еще. Если второй параметр сменить с s_FolderAdsMsgs2 на другой - сабж исчезает.. s_FolderAdsMsgs2 - глобальная статическая строка, ничем ни приметная..


function GetXMLStrWithCurrentPrm: string;

var iDoc:IXMLDOMDocument;
iNode:IXMLDOMNode;

procedure SetIntAttr(const aKey:string; aVal:integer);
begin

end;

procedure SetAttr(const aKey:string; aVal:string);
begin
end;

procedure SetBoolAttr(const aKey:string; aVal:boolean);
begin
end;

begin

result := str_EmptyParam; // line 355

iDoc := CreateXMLDocFromString(result);
if not assigned(iDoc) then exit;

iNode := iDoc.selectSingleNode("hmsiCfg");
if not assigned(iNode) then exit;

SetAttr(pmUsersFileName, sUsersFileName);

SetAttr(pmMessageFileName, sMessageFileName);
SetAttr(pmMessageFileName2, sMessageFileName2);
SetAttr(pmEmailsFileName, sEmailsFileName);

SetAttr(pmExclusionEmailFileName, sExclusionEmailFileName);
SetAttr(pmExclusionEmailFileName2, sExclusionEmailFileName2);

SetAttr(pmLogFileName, sLogFileName);

SetIntAttr(pmModeLogFile, ModeLogFile);
SetIntAttr(pm_ModeDelOldLetter, ModeDelOldLetter);
SetIntAttr(pmModeStartUrl, ModeStartUrl);
SetIntAttr(pmMaxCountEMails, MaxCountEMails);

SetBoolAttr(pmCustomProxySetting, sCustomProxySetting);
SetBoolAttr(pmEnProxy, sEnProxy);
SetAttr(pmProxyAddr, sProxyAddr);
SetAttr(pmProxyPort, sProxyPort);

SetBoolAttr(pmGotoNextAccountAfterDownloadWrongPade,
sGotoNextAccountAfterDownloadWrongPade);
SetBoolAttr(pmEnRemoveEmailFeadture, sEnRemoveEmailFeadture);
SetAttr(pmRemoveEmailFileName, sRemoveEmailFileName);
SetAttr(pmRemoveEmailKeywordFileName, sRemoveEmailKeywordFileName);

SetBoolAttr(pmEnBounceEmailFeadture, sEnBounceEmailFeadture);
SetAttr(pmBounceEmailFileName, sBounceEmailFileName);
SetAttr(pmBounceEmailKeywordFileName, sBounceEmailKeywordFileName);

SetIntAttr(pmModemsg, sModeMsg);
SetAttr(pmMessageFileName, sMessageFileName);
SetAttr(pmFolderAdsMsgs, s_FolderAdsMsgs);
SetAttr(pmMaskAdsMsgs, sMaskAdsMsgs);
SetAttr(pmFileMsgTemplate, sFileMsgTemplate);

SetIntAttr(pmModemsg2, sModeMsg2);
SetAttr(pmMessageFileName2, sMessageFileName2);

SetAttr(pmFolderAdsMsgs2, s_FolderAdsMsgs2);

SetAttr(pmFileMsgTemplate2, sFileMsgTemplate2);
SetAttr(pmMaskAdsMsgs2, sMaskAdsMsgs2);

SetIntAttr(pmModeWork, sModeWork);

result := iDoc.xml;

end;


Дело также не в str_EmptyParam - это обычная нетипизированная констатна. Если ее менять на пустую строку - "" ситуация не меняется..

Делфи - пятый, оба сервиспака..

Зы - какие есть соображения по этому поводу?


 
AlexKniga ©   (2003-09-15 15:33) [1]

Если не слишком много, то зашарь весь проект, или хоть этот модуль.


 
Игорь Шевченко ©   (2003-09-15 15:36) [2]

Может, все-таки кода побольше ?


 
Ihor Osov'yak ©   (2003-09-15 15:54) [3]

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

http://www.users.bit.te.ua/osi/download/bug.zip

весит 22к

Туда же вложено MSXML_TLB.pas, используемый мною, на всякий случай..

Сейчас имеем

[Warning] badUnit.pas(210): Return value of function "GetXMLStrWithCurrentPrm" might be undefined

Спасибо за внимание..


 
Ihor Osov'yak ©   (2003-09-15 16:01) [4]

Да, при компиляции варнинга нет. Варнинг только при билде..
И в демке для бага, и в оригинальном проекте..


 
Игорь Шевченко ©   (2003-09-15 17:23) [5]

Угу, ошибка наличествует :)


 
troits ©   (2003-09-15 17:26) [6]

Если в globResp.pas глобальные var- ы заменить на типизированные кончтанты, варнинг, вроде, пропадает. Почему, непонятно. Я пробовал в инициализационной части юнита инициализировать var-ы, но варнинг оставался.


 
Игорь Шевченко ©   (2003-09-15 17:30) [7]

Если сделать вложенные процедуры (SetIntAttr и SetAttr) невложенными, то ошибка тоже пропадает :)


 
Ihor Osov'yak ©   (2003-09-15 18:08) [8]

2 Игорь Шевченко, troits

Спасибо.

Советами по обходу варнинга, конечно, воспользуюсь.. Как я понял, можно сделать несмелое предположение о не совсем адекватном поведении компилятора для этого случая?


 
AlexKniga ©   (2003-09-15 19:11) [9]

Если сменить константу на Char (со сменой типа функции), то предупреждение исчезает.


 
AlexKniga ©   (2003-09-15 19:19) [10]

[off]Как копировать из окна CPU?[/off]


 
Ihor Osov'yak ©   (2003-09-15 19:31) [11]

2 [10] AlexKniga © (15.09.03 19:19)

У меня не получилось. Ручками переписывал в свое время.. А что, там что-то разлядел?

Вообще то, на досуге я собирался посмотреть, что там он (компилятор) нагенерил.. Правда, досуг у меня намечается не раньше, чем сегодня после одинадцати вечера... Да и в данном случае, меня интересовало, почему варнинг, ведь по всем канонам там должно быть без него.. А не то, какой код он делает..

Зы - если там чего рассмотрел - скажи на уровне идеи - я понятлив :-)



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

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

Наверх




Память: 0.5 MB
Время: 0.017 c
1-3992
GhostDog
2003-09-11 20:42
2003.10.02
Фильтры


3-3755
Wild
2003-09-11 17:57
2003.10.02
RecNo в SQL запросе


1-3844
Vitaliygavrilov
2003-09-16 11:16
2003.10.02
Возможно ли разместить gif и как


1-3910
Максим
2003-09-22 11:32
2003.10.02
Работа с датой


1-3953
Jiura32d
2003-09-20 19:11
2003.10.02
Не могу понять,как распространяется компонент???