From 7cb3472e51185df9b69f327be7a63f57f4009a41 Mon Sep 17 00:00:00 2001 From: cxl Date: Sun, 17 May 2015 16:13:34 +0000 Subject: [PATCH] .cpp git-svn-id: svn://ultimatepp.org/upp/trunk@8457 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Core/Path.cpp | 1 - uppsrc/CppBase/cpp.cpp | 31 +++---- uppsrc/CppBase/ppfile.cpp | 106 +++++----------------- uppsrc/CtrlLib/Progress.cpp | 4 +- uppsrc/CtrlLib/Progress.h | 2 + uppsrc/CtrlLib/src.tpp/Progress$en-us.tpp | 88 ++---------------- uppsrc/ide/Browser/Base.cpp | 23 +---- 7 files changed, 52 insertions(+), 203 deletions(-) diff --git a/uppsrc/Core/Path.cpp b/uppsrc/Core/Path.cpp index 1360e7ac7..c7f917723 100644 --- a/uppsrc/Core/Path.cpp +++ b/uppsrc/Core/Path.cpp @@ -868,7 +868,6 @@ int Compare_FileTime(const FileTime& fa, const FileTime& fb) Time FileGetTime(const char *filename) { - RTIMING("FileGetTime"); #if defined(PLATFORM_WIN32) HANDLE handle; if(IsWinNT()) diff --git a/uppsrc/CppBase/cpp.cpp b/uppsrc/CppBase/cpp.cpp index 230a0d428..52f898832 100644 --- a/uppsrc/CppBase/cpp.cpp +++ b/uppsrc/CppBase/cpp.cpp @@ -152,26 +152,19 @@ String Cpp::Expand(const char *s) void Cpp::DoFlatInclude(const String& header_path) { - RTIMING("DoFlatInclude"); + LTIMING("DoFlatInclude"); LLOG("Flat include " << header_path); if(header_path.GetCount()) { if(visited.Find(header_path) >= 0) return; visited.Add(header_path); - const PPFile& pp = GetFlatPPFile(header_path); - DLOG("DoFlatInclude " << header_path << ", " << pp.item.GetCount() << " items"); - RTIMING("DoFlatInclude2"); - for(int i = 0; i < pp.item.GetCount(); i++) { - const PPItem& m = pp.item[i]; - if(m.type == PP_DEFINES) { - segment_id.FindAdd(m.segment_id); - // DDUMP(m.segment_id); - } - else - if(m.type == PP_USING) { - namespace_using.FindAdd(m.text); - usings << ";" << m.text; - } + const FlatPP& pp = GetFlatPPFile(header_path); + LLOG("DoFlatInclude " << header_path << ", " << pp.segment_id.GetCount() << " segments"); + for(int i = 0; i < pp.segment_id.GetCount(); i++) + segment_id.FindAdd(pp.segment_id[i]); + for(int i = 0; i < pp.usings.GetCount(); i++) { + namespace_using.FindAdd(pp.usings[i]); + usings << ";" << pp.usings[i]; } for(int i = 0; i < pp.includes.GetCount(); i++) visited.FindAdd(pp.includes[i]); @@ -186,7 +179,7 @@ void Cpp::Do(const String& sourcefile, Stream& in, const String& currentfile, bo String current_folder = GetFileFolder(currentfile); bool notthefile = sourcefile != currentfile; if(notthefile || get_macros) { - RTIMING("DO2"); + LTIMING("DO2"); const PPFile& pp = GetPPFile(currentfile); for(int i = 0; i < pp.item.GetCount() && !done; i++) { const PPItem& m = pp.item[i]; @@ -232,7 +225,7 @@ void Cpp::Do(const String& sourcefile, Stream& in, const String& currentfile, bo namespaces = Join(namespace_stack, ";"); if(!get_macros) { - RTIMING("Expand"); + LTIMING("Expand"); incomment = false; prefix_macro.Clear(); StringBuffer result; @@ -328,7 +321,7 @@ bool Cpp::Preprocess(const String& sourcefile, Stream& in, const String& current bool get_macros) { LLOG("===== Preprocess " << sourcefile << " <- " << currentfile); - RTIMING("Cpp::Preprocess"); + LTIMING("Cpp::Preprocess"); macro.Clear(); macro.Reserve(1000); segment_id.Clear(); @@ -382,7 +375,7 @@ String GetAllMacros(const String& id, Index& segment_id); String Cpp::GetIncludedMacroValues(const Vector& m) { String r; - RTIMING("GetUsedMacroValues"); + LTIMING("GetUsedMacroValues"); r << "##namespace\n" << namespaces << "\n" << "##usings\n" << usings << "\n"; for(int i = 0; i < m.GetCount(); i++) { diff --git a/uppsrc/CppBase/ppfile.cpp b/uppsrc/CppBase/ppfile.cpp index 8a9290168..d193dcc8a 100644 --- a/uppsrc/CppBase/ppfile.cpp +++ b/uppsrc/CppBase/ppfile.cpp @@ -327,7 +327,7 @@ void PPFile::Dump() const static VectorMap sIncludePath; static VectorMap sIncludes; -static ArrayMap sFlatPP; +static ArrayMap sFlatPP; static String sInclude_Path; void PPSync(const String& include_path) @@ -393,13 +393,13 @@ Time GetFileTimeCached(const String& p) String GetIncludePath(const String& s, const String& filedir) { - RTIMING("GetIncludePath"); + LTIMING("GetIncludePath"); String key; key << s << "#" << filedir; int q = sIncludePath.Find(key); if(q >= 0) return sIncludePath[q]; - RTIMING("GetIncludePath 2"); + LTIMING("GetIncludePath 2"); String p = GetIncludePath0(s, filedir); sIncludePath.Add(key, p); return p; @@ -407,12 +407,11 @@ String GetIncludePath(const String& s, const String& filedir) const PPFile& GetPPFile(const char *path) { - RTIMING("GetPPFile"); + LTIMING("GetPPFile"); Time tm = GetFileTimeCached(path); PPFile& f = sPPfile.GetPut(path); if(f.filetime != tm) { f.filetime = tm; - RTIMING("PP read"); FileIn in(path); f.Parse(in); } @@ -424,108 +423,45 @@ bool IsSameFile(const String& f1, const String& f2) return NormalizePath(f1) == NormalizePath(f2); } -bool IncludesFile0(const String& parent_path, const String& path, Index& visited) +const FlatPP& GetFlatPPFile(const char *path, Index& visited) { - RHITCOUNT("IncludesFile0"); - if(visited.Find(parent_path) >= 0) - return false; - visited.Add(parent_path); - if(IsSameFile(parent_path, path)) - return true; - { - RTIMING("GetPPFile"); - GetPPFile(parent_path); - } - const PPFile& f = GetPPFile(parent_path); - for(int i = 0; i < f.includes.GetCount(); i++) { - String key = path + "#" + f.includes[i]; - int q = sIncludes.Find(key); - if(q >= 0) { - HITCOUNT("IncludesFile cached"); - if(sIncludes[q]) - return true; - } - else { - HITCOUNT("IncludesFile getpath"); - String p = GetIncludePath(f.includes[i], GetFileFolder(parent_path)); - bool b = p.GetCount() && IncludesFile0(p, path, visited); - sIncludes.Add(key, b); - if(b) - return true; - } - } - return false; -} - -#if 0 // TODO: remove? -bool IncludesFile(const String& parent_path, const String& path) -{ - RTIMING("IncludesFile"); - Index visited; - String key = path + "#" + parent_path; - int q = sIncludes.Find(key); - if(q >= 0) - return sIncludes[q]; - bool b = IncludesFile0(parent_path, path, visited); - sIncludes.Add(key, b); - return b; -} - -void CreateFlatPP(PPFile& fp, const char *path, Index& visited) -{ - if(visited.Find(path) >= 0) - return; - visited.Add(path); - LLOG("CreateFlatPP " << path << LOG_BEGIN); - const PPFile& pp = GetPPFile(path); - for(int i = 0; i < pp.item.GetCount(); i++) { - const PPItem& m = pp.item[i]; - if(m.type == PP_INCLUDE) { - String s = GetIncludePath(m.text, GetFileFolder(path)); - if(s.GetCount()) - CreateFlatPP(fp, s, visited); - } - else - fp.item.Add(m); - } - LLOG(LOG_END); -} - -#endif - -const PPFile& GetFlatPPFile(const char *path, Index& visited) -{ - RTIMING("GetFlatPPFile"); - DLOG("GetFlatPPFile " << path); - LOGBEGIN(); + LTIMING("GetFlatPPFile"); int q = sFlatPP.Find(path); if(q >= 0) return sFlatPP[q]; FlatPP& fp = sFlatPP.Add(path); const PPFile& pp = GetPPFile(path); + int n = visited.GetCount(); + visited.FindAdd(path); for(int i = 0; i < pp.item.GetCount(); i++) { const PPItem& m = pp.item[i]; if(m.type == PP_INCLUDE) { String s = GetIncludePath(m.text, GetFileFolder(path)); - DLOG("#include " << m.text << " -> " << s); + LLOG("#include " << m.text << " -> " << s); if(s.GetCount() && visited.Find(s) < 0) { visited.Add(s); const FlatPP& pp = GetFlatPPFile(s, visited); - for(int i = 0; i < pp.item.GetCount(); i++) - fp.item.Add(pp.item[i]); - fp.includes.Add(s); + for(int i = 0; i < pp.segment_id.GetCount(); i++) + fp.segment_id.Add(pp.segment_id[i]); + for(int i = 0; i < pp.usings.GetCount(); i++) + fp.usings.Add(pp.usings[i]); + fp.includes.FindAdd(s); for(int i = 0; i < pp.includes.GetCount(); i++) fp.includes.FindAdd(pp.includes[i]); } } else - fp.item.Add(m); + if(m.type == PP_DEFINES) + fp.segment_id.FindAdd(m.segment_id); + else + if(m.type == PP_USING) + fp.usings.FindAdd(m.text); } - LOGEND(); + visited.Trim(n); return fp; } -const PPFile& GetFlatPPFile(const char *path) +const FlatPP& GetFlatPPFile(const char *path) { Index visited; visited.Add(path); diff --git a/uppsrc/CtrlLib/Progress.cpp b/uppsrc/CtrlLib/Progress.cpp index a883e8c3b..9b44bf2a5 100644 --- a/uppsrc/CtrlLib/Progress.cpp +++ b/uppsrc/CtrlLib/Progress.cpp @@ -133,6 +133,8 @@ void Progress::Reset() { total = 0; cancel = false; granularity = 50; + show_delay = 250; + set_time = show_time = GetTickCount(); // + 300; } @@ -189,7 +191,7 @@ void Progress::Process() { if(!IsOpen()) { dword t = GetTickCount(); - if((int)(t - show_time) >= granularity) { + if((int)(t - show_time) >= show_delay) { Create(); show_time = t; } diff --git a/uppsrc/CtrlLib/Progress.h b/uppsrc/CtrlLib/Progress.h index 039fb30da..06df4207d 100644 --- a/uppsrc/CtrlLib/Progress.h +++ b/uppsrc/CtrlLib/Progress.h @@ -56,6 +56,7 @@ protected: int pos; String text; int granularity; + int show_delay; dword set_time; dword show_time; Ctrl *owner; @@ -89,6 +90,7 @@ public: void Reset(); void Granularity(int ms) { granularity = ms; } + void Delay(int ms) { show_delay = ms; } void AlignText(int align) { info.SetAlign(align); } diff --git a/uppsrc/CtrlLib/src.tpp/Progress$en-us.tpp b/uppsrc/CtrlLib/src.tpp/Progress$en-us.tpp index e3a686635..c9cce46eb 100644 --- a/uppsrc/CtrlLib/src.tpp/Progress$en-us.tpp +++ b/uppsrc/CtrlLib/src.tpp/Progress$en-us.tpp @@ -19,82 +19,7 @@ progress of long operation and to cancel it.&] [s2; &] [s2; @@image:1644&520 -Ɂ耀ǜ흋哾̰݊ŁѐЈĴךַժڼϽ -ϵ굖٧ί爊𞆘ނ˷݆Òʀ -ŗʦɲ뙰̣䶑ؐºڲ׳ۀٶͬА -꣨ёڢ߉뱭›ԯꖷ -਀ýᄯ׻ۯ݀锄КɟՁ٦ -ʖɫܗ雙Ԧɗ̀ʁöö́ӭځڡɋ -МưǼڰȶͼΪՓӨʵЃר؅㕶Ꚏӈ澠 -¦丐Ճզ֚ҒʠĮȥʘӿԎξ緧 -۸뭤ɸԹߗՌܾɮЛ҃ -޶Ӄꎂϟጸљݾܛݳ挠ڶީ֟ -תߘ㾰ƖЖۣҳϾܨȿ -߶ӋƗϯۺ˲Ի蒅þٯԞš -զ҅יܕ퇢އᐱݣΔՌҫгՑ׶ϰ -ؾ°ݷ驶ĿɥƄƪķɺ -≠ʷƔ݆޼жӮц -խȾԪ˙䢞֖ݥՄ複ҳݿٛ׬٠ -ٹ۝͝ԾʍȞ؏Ϫګߐ׫ݝ׻ -Өë֚ӊƺЋł݀ώӬޫիܱٹ -ڴгꙗڄӽݣۋ؁鶍ǽꔍ -欀첎ߕ؞٬ٵ׳֝Ѫıʤ㾚Хʛ“ -؊ޙவǷܶ亵忱άˇ -۪䣔㩃ړ̴ޭ끖ܞﲝ -ݧߐͼж唷ɱȺʲӌʄܝؚ -ήνܠɚٲ̝ɈޗڼϹȞΩ亙ۼϷ -̿Æլ´òٴغǗΩխ -ŷ“ƵխӾڒΣȓȒրȲԺݿڸ -䑷ġ⿢ˮčٻ͛ۦꔨ̩ܴ㩠ɖ܌ -ǂޗژ㜍ץȹږ墋ܥϝȍÓӻ -յܣꗎѭৌ۰Өڅ˙؅ѻݵɓ -ٙڷ«՘糪ِݟǕ蝵ՠ -࿯敉Ƥѹ°гӧԩ잧ћ拉ڦ -ݛз۶퐗짻۲ϢٱϾ֧ -ቲîΊծݨۿطޜ⽆׸ȋن -֛ҷ՛ӯ៺ӘӨӴߤȭ׼竖ۿק -Ցˊٛʗðۧւ̥ߕɳź -⌫۽ݼۮøڝÖִͮ骚ў -ڎ䴸ӈ罘Ύ߈ɪ׋؃Γ֤植 -ӛʬԙ֭՛Ȏߋ¿ܕԎ -ȍ繊ښͽЍˋ̺߄ߣКٰх -ҷ˰ϸҀ༩צĕٱڬߩڬɺ -壌©ᴎΉԎ߱בӅɜڛ -욵ӌݜ˜᧿߁玬Ϙ飕ˤզƩծʝɞɜ -Ÿ׻һʶ͌蕙ǘģ턚ⷨ͞զڵ⭶׎טƌ -ڵ߅шӢ挨ӆٰ珸٬󱷥 -Ƈב곙틚򛽅ƅʧƙ嘘Ζρ݂ȼ獾 -﬈ۺƑ՘𳟣㢎Ź꫹鴬 -֥煞ٜݼ̋ϨΣξŅ -ȾÑѯʄ֡ݬ򺦛ڦֵΦѴࡤ -䷚޿΍䡯Ԃۘٵڃ闈Ӯ -疪ٻޛ̑ڥȈєѽ®۟¢椲䈓 -ԛ蠪˨ڲÈنѽѨվ -ꙁՂЭ翋؇ãχնޥ򀇍ܨρՎ먨Ӫ -Ƀɾ냽װߦÖϏȋܶՁ̓ڪ̓ -Ԗޮ蜇ދ𙵽跋ȇ̠èǝߡځ -Ѿ〼Ȣ۩һɫ؝ʾƞ -ϪǷŁߚǵ휐ȰєƐƐ -ԛɐǐƐЂȣ޳ -ۿڟ䗐혘ŗߌޗ؋а -Ԇم串ƖձՎܸ԰ -ݑҊdž֛ӻ󷽀ȫ덩ݹޢ -˯ϧɰ𵋋ꈎ㺃𭬸ڭԛ -ԛƪĵɥ岟ɰ媫ćϱҁՖ -뷏ԖҞҀϐ -꺬Ɂ煪ظڳ穮ݐڡРɁٛƢ؃ -ѻÉл뜶ɇˁЇ͇Վ٠ϵ -ڒLJԢҀՖꃦĔ̇欶϶駕ǵ՛ -õڜҀ̻﮶٬Ֆڵ -ːЦکߣڌګäՑ쿦 -֋ٯǵۢ䋸֢ˋŬթȷӦ -ת̖Ƨ֠Ҁ¹销ᄢҜտҀՖ֔ӏեѻ -좩ږβւǀ֣崩ϾΪʔބ -ȧ򸵞Ѩы߹ӏɏ盋˯ܛξڳˡ -ˁΦ¸ōþٛꪚ껞Ɔ -ॹϰڪɐ桃޿ۡӜ -ͧχ칝ʇȔي - +(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) &] [s3; &] [s0;%- &] @@ -196,7 +121,7 @@ nt]_[*@3 pos])&] [s4;%- &] [s5;:Progress`:`:Granularity`(int`):%- [@(0.0.255) void]_[* Granularity]([@(0.0.255) int]_[*@3 m s])&] -[s2; Sets how much often should dialog refresh.&] +[s2; Sets how much often should dialog refresh. Default is 50ms.&] [s3; &] [s4;%- &] [s5;:Progress`:`:AlignText`(int`):%- [@(0.0.255) void]_[* AlignText]([@(0.0.255) int]_[*@3 al @@ -209,4 +134,11 @@ and ALIGN`_RIGHT.&] int>]()&] [s2; Returns a callback to dialog`'s SetCanceled method.&] [s3; &] -[s0; ] \ No newline at end of file +[s4;%- &] +[s5;:Upp`:`:Progress`:`:Delay`(int`):%- [@(0.0.255) void]_[* Delay]([@(0.0.255) int]_[*@3 ms]) +&] +[s2; Sets the delay before the dialog is shown for the first time +(in order not to show it when operation proceeds fast). Default +is 250ms.&] +[s3; &] +[s0; ]] \ No newline at end of file diff --git a/uppsrc/ide/Browser/Base.cpp b/uppsrc/ide/Browser/Base.cpp index 55154dead..517e5b515 100644 --- a/uppsrc/ide/Browser/Base.cpp +++ b/uppsrc/ide/Browser/Base.cpp @@ -180,7 +180,7 @@ Index sTimePath; Time GetDependsTime(const Vector& file) { - RTIMING("CreateTimePrint"); + LTIMING("CreateTimePrint"); static Index path; String r; Time tm = Time::Low(); @@ -192,9 +192,7 @@ Time GetDependsTime(const Vector& file) bool CheckFile(SourceFileInfo& f, const String& path) { - RTIMING("CheckFile"); - LDUMP(f.time); - LDUMP(FileGetTime(path)); + LTIMING("CheckFile"); if(f.time != FileGetTime(path)) return false; if(!f.check_info) @@ -204,24 +202,12 @@ bool CheckFile(SourceFileInfo& f, const String& path) Cpp pp; FileIn in(path); pp.Preprocess(path, in, GetMasterFile(path), true); - DLOG("CheckFile " << path); - DDUMP(f.ids.GetKeys()); String included_id_macros = pp.GetIncludedMacroValues(f.ids.GetKeys()); - DDUMP(included_id_macros); -#ifdef _DEBUG - if(f.included_id_macros != included_id_macros) { - LLOG("Other reason: " << path); - LDUMP(f.included_id_macros); - LDUMP(included_id_macros); - } -#endif if(f.included_id_macros != included_id_macros) { f.depends_time = Null; f.depends.Clear(); return false; } - - RTIMING("VISITED ADD"); for(int i = 0; i < pp.visited.GetCount(); i++) f.depends.Add(sTimePath.FindAdd(pp.visited[i])); f.depends_time = GetDependsTime(f.depends); @@ -260,12 +246,11 @@ void UpdateCodeBase2(Progress& pi) String path = src[i]; int q = GetSourceFileIndex(path); SourceFileInfo& f = source_file[q]; - DLOG("== CHECK == " << q << ": " << path); + LLOG("== CHECK == " << q << ": " << path); if(CheckFile(f, path)) keep_file.Add(q); else { - LLOG("PARSE!"); - DLOG("PARSE: " << path); + LLOG("PARSE: " << path); parse_file.Add(q); } }