Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.10.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
1-3849
Брат
2003-09-19 11:04
2003.10.02
Дочерние окна


3-3768
KDS
2003-09-11 18:15
2003.10.02
SUBSTR и сложение строк в SQL


3-3744
rh
2003-09-12 12:46
2003.10.02
Какой пользователь в MS SQL?


14-4135
чайник
2003-09-06 10:42
2003.10.02
Хочу писать игры


3-3715
Vadim
2003-09-13 19:29
2003.10.02
Что вместо BDE?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский