diff --git a/components/codetools/finddeclarationtool.pas b/components/codetools/finddeclarationtool.pas index 9bba026aa5..7af01913f4 100644 --- a/components/codetools/finddeclarationtool.pas +++ b/components/codetools/finddeclarationtool.pas @@ -1574,7 +1574,8 @@ constructor TFindIdentifierInUsesSection_FindMissingFPCUnit.Create; begin inherited; FResults := TStringList.Create; - FResults.CaseSensitive := True; + FResults.CaseSensitive := True; // Why CaseSensitive? + FResults.UseLocale := False; FResults.Duplicates := dupIgnore; FResults.Sorted := True; end; diff --git a/components/codetools/ide/ppulistdlg.pas b/components/codetools/ide/ppulistdlg.pas index 20a0150ba6..98c8d13612 100644 --- a/components/codetools/ide/ppulistdlg.pas +++ b/components/codetools/ide/ppulistdlg.pas @@ -34,10 +34,12 @@ uses // LCL LCLProc, FileUtil, Forms, Controls, Dialogs, ButtonPanel, Grids, StdCtrls, ExtCtrls, ComCtrls, - AvgLvlTree, + // LazUtils + AvgLvlTree, LazUTF8, + // BuildIntf + ProjectIntf, PackageIntf, // IDEIntf - ProjectIntf, LazIDEIntf, IDEDialogs, IDEWindowIntf, - PackageIntf, + LazIDEIntf, IDEDialogs, IDEWindowIntf, // codetools BasicCodeTools, FileProcs, LazFileUtils, LazFileCache, CodyStrConsts, CodeToolManager, CodeCache, PPUParser, PPUCodeTools, DefineTemplates, @@ -217,7 +219,7 @@ end; constructor TPPUDlgLinkedFile.Create; begin inherited Create; - Units:=TStringList.Create; + Units:=TStringListUTF8Fast.Create; end; destructor TPPUDlgLinkedFile.Destroy; diff --git a/components/codetools/ppugraph.pas b/components/codetools/ppugraph.pas index 98ef43f003..c0867946e4 100644 --- a/components/codetools/ppugraph.pas +++ b/components/codetools/ppugraph.pas @@ -35,7 +35,7 @@ uses dynlibs, {$ENDIF} // LazUtils - LazStringUtils, + LazStringUtils, LazUTF8, // Codetools PPUParser, CodeTree, FileProcs, LazFileUtils, BasicCodeTools, CodeGraph, CodeToolManager, CodeToolsStructs; @@ -244,7 +244,7 @@ procedure TPPUMember.GetMissingUnits(var List: TStrings); CurUnitName:=UsesList[i]; if Group.Groups.FindMemberWithUnitName(CurUnitName)=nil then begin if List=nil then - List:=TStringList.Create; + List:=TStringListUTF8Fast.Create; if List.IndexOf(CurUnitName)<0 then List.Add(CurUnitName); end; @@ -817,7 +817,7 @@ var List: TStringList; begin AVLNode:=FMembers.FindLowest; - List:=TStringList.Create; + List:=TStringListUTF8Fast.Create; while AVLNode<>nil do begin Member:=TPPUMember(AVLNode.Data); if not (pmfAutoDisabled in Member.Flags) then begin diff --git a/components/codetools/ppuparser.pas b/components/codetools/ppuparser.pas index fbe56a9329..676fb4776f 100644 --- a/components/codetools/ppuparser.pas +++ b/components/codetools/ppuparser.pas @@ -34,7 +34,9 @@ unit PPUParser; interface uses - Classes, SysUtils, contnrs, FileProcs, LazFileUtils; + Classes, SysUtils, contnrs, + FileProcs, + LazFileUtils, LazUTF8; const PPUIsEndianBig = {$IFDEF ENDIAN_BIG}True{$ELSE}False{$ENDIF}; @@ -2544,7 +2546,7 @@ begin while not EndOfEntry do begin AUnitName:=ReadEntryShortstring; if List=nil then - List:=TStringList.Create; + List:=TStringListUTF8Fast.Create; if List.IndexOf(AUnitName)<0 then List.Add(AUnitName); ReadEntryDWord; // CRC diff --git a/components/codetools/stdcodetools.pas b/components/codetools/stdcodetools.pas index 83a5ec2af9..337489673a 100644 --- a/components/codetools/stdcodetools.pas +++ b/components/codetools/stdcodetools.pas @@ -57,7 +57,7 @@ uses ExprEval, KeywordFuncLists, BasicCodeTools, LinkScanner, CodeCache, LFMTrees, SourceChanger, CustomCodeTool, CodeToolsStructs, // LazUtils - LazFileUtils, LazFileCache, AvgLvlTree; + LazFileUtils, LazFileCache, LazUTF8, AvgLvlTree; type TStandardCodeTool = class; @@ -1424,12 +1424,12 @@ begin BuildTree(lsrMainUsesSectionEnd); UsesNode:=FindMainUsesNode(UseContainsSection); if UsesNode=nil then exit; - FoundInUnits:=TStringList.Create; - MissingInUnits:=TStringList.Create; + FoundInUnits:=TStringListUTF8Fast.Create; + MissingInUnits:=TStringListUTF8Fast.Create; if IgnoreNormalUnits then NormalUnits:=nil else - NormalUnits:=TStringList.Create; + NormalUnits:=TStringListUTF8Fast.Create; Node:=UsesNode.FirstChild; while Node<>nil do begin // read next unit name @@ -6656,7 +6656,7 @@ var begin if Found then begin if FoundIncludeFiles=nil then - FoundIncludeFiles:=TStringList.Create; + FoundIncludeFiles:=TStringListUTF8Fast.Create; NewFilename:=TrimFilename(AFilename); if FoundIncludeFiles.IndexOf(NewFilename)<0 then FoundIncludeFiles.Add(NewFilename); diff --git a/components/debuggerintf/dbgintfdebuggerbase.pp b/components/debuggerintf/dbgintfdebuggerbase.pp index d4f371a4ed..97545fd170 100644 --- a/components/debuggerintf/dbgintfdebuggerbase.pp +++ b/components/debuggerintf/dbgintfdebuggerbase.pp @@ -48,7 +48,7 @@ uses // LCL LCLProc, // LazUtils - LazClasses, LazLoggerBase, LazFileUtils, LazStringUtils, Maps, LazMethodList, + LazClasses, LazLoggerBase, LazFileUtils, LazStringUtils, Maps, LazMethodList, LazUTF8, // DebuggerIntf DbgIntfBaseTypes, DbgIntfMiscClasses, DbgIntfPseudoTerminal, DbgIntfCommonStrings; @@ -6069,12 +6069,12 @@ procedure TDebuggerIntf.EnvironmentChanged(Sender: TObject); var n, idx: integer; S: String; - Env: TStringList; + Env: TStringListUTF8Fast; begin // Createe local copy if FState <> dsNone then begin - Env := TStringList.Create; + Env := TStringListUTF8Fast.Create; try Env.Assign(Environment); @@ -6231,7 +6231,7 @@ var idx: Integer; begin if MDebuggerPropertiesList = nil - then MDebuggerPropertiesList := TStringList.Create; + then MDebuggerPropertiesList := TStringListUTF8Fast.Create; idx := MDebuggerPropertiesList.IndexOf(ClassName); if idx = -1 then begin @@ -6535,7 +6535,7 @@ constructor TBaseDebugManagerIntf.Create(AOwner: TComponent); begin inherited Create(AOwner); - FValueFormatterList := TStringList.Create; + FValueFormatterList := TStringListUTF8Fast.Create; FValueFormatterList.Sorted := True; FValueFormatterList.Duplicates := dupError; end; @@ -6629,7 +6629,7 @@ initialization DBG_DATA_MONITORS := DebugLogger.FindOrRegisterLogGroup('DBG_DATA_MONITORS' {$IFDEF DBG_DATA_MONITORS} , True {$ENDIF} ); DBG_DISASSEMBLER := DebugLogger.FindOrRegisterLogGroup('DBG_DISASSEMBLER' {$IFDEF DBG_DISASSEMBLER} , True {$ENDIF} ); - MDebuggerClasses := TStringList.Create; + MDebuggerClasses := TStringListUTF8Fast.Create; MDebuggerClasses.Sorted := True; MDebuggerClasses.Duplicates := dupError; diff --git a/components/fpdebug/app/fpdserver/debugtcpserver.pas b/components/fpdebug/app/fpdserver/debugtcpserver.pas index 9414c3ff94..691cf21227 100644 --- a/components/fpdebug/app/fpdserver/debugtcpserver.pas +++ b/components/fpdebug/app/fpdserver/debugtcpserver.pas @@ -15,7 +15,7 @@ uses sockets, syncobjs, FpDbgClasses, - lazfglhash, + LazFglHash, lazCollections, fpjson, fgl, diff --git a/components/fpdebug/app/fpdserver/debugthread.pas b/components/fpdebug/app/fpdserver/debugthread.pas index 4ffe24f0b8..9fcec79cf5 100644 --- a/components/fpdebug/app/fpdserver/debugthread.pas +++ b/components/fpdebug/app/fpdserver/debugthread.pas @@ -15,7 +15,7 @@ uses DbgIntfDebuggerBase, lazCollections, syncobjs, - lazfglhash, + LazFglHash, fpjson, FpDbgClasses; diff --git a/components/fpdebug/fpdbgdwarfdataclasses.pas b/components/fpdebug/fpdbgdwarfdataclasses.pas index 29f412b0c1..c6cbbc22a3 100644 --- a/components/fpdebug/fpdbgdwarfdataclasses.pas +++ b/components/fpdebug/fpdbgdwarfdataclasses.pas @@ -41,9 +41,11 @@ unit FpDbgDwarfDataClasses; interface uses - Classes, Types, SysUtils, FpDbgUtil, FpDbgInfo, FpDbgDwarfConst, Maps, Math, - FpDbgLoader, FpImgReaderBase, FpdMemoryTools, FpErrorMessages, LazLoggerBase, - LazClasses, LazFileUtils, LazUTF8, contnrs, DbgIntfBaseTypes; + Classes, Types, SysUtils, contnrs, Math, + Maps, LazClasses, LazFileUtils, LazLoggerBase, LazUTF8, + // FpDebug + FpDbgUtil, FpDbgInfo, FpDbgDwarfConst, + FpDbgLoader, FpImgReaderBase, FpdMemoryTools, FpErrorMessages, DbgIntfBaseTypes; type TDwarfSection = (dsAbbrev, dsARanges, dsFrame, dsInfo, dsLine, dsLoc, dsMacinfo, dsPubNames, dsPubTypes, dsRanges, dsStr); @@ -606,7 +608,7 @@ type end; {$IFDEF DwarfTestAccess} private {$ENDIF} - FLineNumberMap: TStringList; + FLineNumberMap: TStringListUTF8Fast; FAddressMap: TMap; // Holds a key for each DW_TAG_subprogram / TFpSymbolDwarfDataProc, stores TDwarfAddressInfo FAddressMapBuild: Boolean; @@ -4243,7 +4245,7 @@ begin // use internally 64 bit target pointer FAddressMap := TMap.Create(itu8, SizeOf(TDwarfAddressInfo)); - FLineNumberMap := TStringList.Create; + FLineNumberMap := TStringListUTF8Fast.Create; FLineNumberMap.Sorted := True; FLineNumberMap.Duplicates := dupError; @@ -4342,9 +4344,10 @@ begin end; function TDwarfCompilationUnit.GetLineAddressMap(const AFileName: String): PDWarfLineMap; + + function FindIndex: Integer; var Name: String; - function FindIndex: Integer; begin // try fullname first Result := FLineNumberMap.IndexOf(AFileName); @@ -4354,14 +4357,12 @@ function TDwarfCompilationUnit.GetLineAddressMap(const AFileName: String): PDWar Result := FLineNumberMap.IndexOf(Name); if Result <> -1 then Exit; - Name := UpperCase(Name); for Result := 0 to FLineNumberMap.Count - 1 do - begin - if Name = UpperCase(ExtractFileName(FLineNumberMap[Result])) - then Exit; - end; - Result := -1 + if UTF8CompareLatinTextFast(Name, ExtractFileName(FLineNumberMap[Result])) = 0 then + Exit; + Result := -1; end; + var idx: Integer; begin diff --git a/components/fpdebug/fpimgreaderbase.pas b/components/fpdebug/fpimgreaderbase.pas index 0fe260495f..bd0bbbd3d7 100644 --- a/components/fpdebug/fpimgreaderbase.pas +++ b/components/fpdebug/fpimgreaderbase.pas @@ -11,7 +11,7 @@ uses {$ifdef windows} Windows, // After LCLType {$endif} - fgl, lazfglhash, + fgl, LazFglHash, fpDbgSymTable, Classes, SysUtils, DbgIntfBaseTypes, contnrs, FpDbgCommon; diff --git a/components/fpdebug/fpimgreaderelf.pas b/components/fpdebug/fpimgreaderelf.pas index 0311f3addb..398f48263f 100644 --- a/components/fpdebug/fpimgreaderelf.pas +++ b/components/fpdebug/fpimgreaderelf.pas @@ -32,10 +32,10 @@ interface uses Classes, SysUtils, - FpImgReaderBase, - fpDbgSymTable, DbgIntfBaseTypes, - FpImgReaderElfTypes, LCLProc, // these files are part of - FpDbgCommon; + LazUTF8, LazLoggerBase, + DbgIntfBaseTypes, + // FpDebug + FpImgReaderBase, fpDbgSymTable, FpImgReaderElfTypes, FpDbgCommon; type TElfSection = packed record @@ -67,7 +67,7 @@ type TElfDbgSource = class(TDbgImageReader) // executable parser private - FSections: TStringList; + FSections: TStringListUTF8Fast; FFileLoader : TDbgFileLoader; fOwnSource : Boolean; fElfFile : TElfFile; @@ -346,7 +346,7 @@ var i: Integer; fs: TElfSection; begin - FSections := TStringList.Create; + FSections := TStringListUTF8Fast.Create; FSections.Sorted := True; //FSections.Duplicates := dupError; FSections.CaseSensitive := False; diff --git a/components/fpdebug/fpimgreadermacho.pas b/components/fpdebug/fpimgreadermacho.pas index 048ae3db07..d3b057a644 100644 --- a/components/fpdebug/fpimgreadermacho.pas +++ b/components/fpdebug/fpimgreadermacho.pas @@ -6,10 +6,10 @@ interface uses Classes, SysUtils, contnrs, - macho, FpImgReaderMachoFile, FpImgReaderBase, LazLoggerBase, + LazFglHash, LazLoggerBase, LazUTF8, DbgIntfBaseTypes, - lazfglhash, - fpDbgSymTable, FpDbgUtil; + // FpDebug + macho, FpImgReaderMachoFile, FpImgReaderBase, fpDbgSymTable, FpDbgUtil; type @@ -18,7 +18,7 @@ type TDbgMachoDataSource = class(TDbgImageReader) private fSource : TDbgFileLoader; - FSections: TStringList; + FSections: TStringListUTF8Fast; fSubFiles: TStringList; fAddressMapList: TDbgAddressMapList; fOwnSource : Boolean; @@ -407,7 +407,7 @@ begin ReadFile; - FSections := TStringList.Create; + FSections := TStringListUTF8Fast.Create; FSections.Sorted := True; FSections.Duplicates := dupAccept; FSections.CaseSensitive := False; diff --git a/components/fpdebug/fpimgreaderwinpe.pas b/components/fpdebug/fpimgreaderwinpe.pas index 018b1e4934..e767637be0 100644 --- a/components/fpdebug/fpimgreaderwinpe.pas +++ b/components/fpdebug/fpimgreaderwinpe.pas @@ -39,8 +39,10 @@ unit FpImgReaderWinPE; interface uses - Classes, {$ifdef windows}windows,{$endif} SysUtils, math, FpImgReaderBase, FpImgReaderWinPETypes, - LazLoggerBase, fpDbgSymTable, DbgIntfBaseTypes; + Classes, {$ifdef windows}windows,{$endif} SysUtils, math, + LazLoggerBase, LazUTF8, + DbgIntfBaseTypes, + FpImgReaderBase, FpImgReaderWinPETypes, fpDbgSymTable; type @@ -48,7 +50,7 @@ type TPEFileSource = class(TDbgImageReader) private - FSections: TStringList; + FSections: TStringListUTF8Fast; FFileLoader : TDbgFileLoader; FOwnLoader : Boolean; FCodeBase : DWord; @@ -100,7 +102,7 @@ end; constructor TPEFileSource.Create(ASource: TDbgFileLoader; ADebugMap: TObject; OwnSource: Boolean); begin - FSections := TStringList.Create; + FSections := TStringListUTF8Fast.Create; FSections.Sorted := False; // need sections in original order / Symbols use "SectionNumber" //FSections.Duplicates := dupError; FSections.CaseSensitive := False; diff --git a/components/lazdebuggergdbmi/gdbmidebugger.pp b/components/lazdebuggergdbmi/gdbmidebugger.pp index d879f9c733..86f355df82 100644 --- a/components/lazdebuggergdbmi/gdbmidebugger.pp +++ b/components/lazdebuggergdbmi/gdbmidebugger.pp @@ -916,7 +916,7 @@ type FInIdle: Boolean; FRunQueueOnUnlock: Boolean; FDebuggerFlags: TGDBMIDebuggerFlags; - FSourceNames: TStringList; // Objects[] -> TMap[Integer|Integer] -> TDbgPtr + FSourceNames: TStringListUTF8Fast; // Objects[] -> TMap[Integer|Integer] -> TDbgPtr FInProcessStopped: Boolean; // paused, but maybe state run FCommandNoneMiState: Array [TGDBMIExecCommandType] of Boolean; FCommandAsyncState: Array [TGDBMIExecCommandType] of Boolean; @@ -8135,10 +8135,12 @@ end; constructor TGDBMILineInfo.Create(const ADebugger: TDebuggerIntf); begin FSourceIndex := TStringList.Create; + FSourceIndex.UseLocale := False; FSourceIndex.Sorted := True; FSourceIndex.Duplicates := dupError; FSourceIndex.CaseSensitive := True; FRequestedSources := TStringList.Create; + FRequestedSources.UseLocale := False; FRequestedSources.Sorted := True; FRequestedSources.Duplicates := dupError; FRequestedSources.CaseSensitive := True; @@ -8436,7 +8438,7 @@ begin FTargetInfo.TargetPID := 0; FTargetInfo.TargetFlags := []; FDebuggerFlags := []; - FSourceNames := TStringList.Create; + FSourceNames := TStringListUTF8Fast.Create; FSourceNames.Sorted := True; FSourceNames.Duplicates := dupError; FSourceNames.CaseSensitive := False; diff --git a/components/lazdebuggers/lazdebuggerfp/fpdebugdebugger.pas b/components/lazdebuggers/lazdebuggerfp/fpdebugdebugger.pas index e4c10a07cc..f541ef8219 100644 --- a/components/lazdebuggers/lazdebuggerfp/fpdebugdebugger.pas +++ b/components/lazdebuggers/lazdebuggerfp/fpdebugdebugger.pas @@ -7,11 +7,15 @@ unit FpDebugDebugger; interface uses - Classes, SysUtils, fgl, math, Forms, Maps, process, LazLogger, LazClasses, - Dialogs, FpDbgClasses, FpDbgInfo, contnrs, FpErrorMessages, FpPascalBuilder, - DbgIntfBaseTypes, DbgIntfDebuggerBase, FpdMemoryTools, FpPascalParser, - FPDbgController, FpDbgDwarfDataClasses, FpDbgDwarfFreePascal, FpDbgDwarf, - FpDbgUtil, FpDebugDebuggerUtils; + Classes, SysUtils, fgl, math, contnrs, process, + Forms, Dialogs, + Maps, LazLogger, LazUTF8, + DbgIntfBaseTypes, DbgIntfDebuggerBase, + FpDebugDebuggerUtils, + // FpDebug + FpDbgClasses, FpDbgInfo, FpErrorMessages, FpPascalBuilder, FpdMemoryTools, + FpPascalParser, FPDbgController, FpDbgDwarfDataClasses, FpDbgDwarfFreePascal, + FpDbgDwarf, FpDbgUtil; type @@ -603,7 +607,7 @@ type TFpLineInfo = class(TDBGLineInfo) //class(TGDBMILineInfo) private - FRequestedSources: TStringList; + FRequestedSources: TStringListUTF8Fast; protected function FpDebugger: TFpDebugDebugger; procedure DoStateChange(const {%H-}AOldState: TDBGState); override; @@ -736,8 +740,7 @@ procedure Register; implementation uses - FpDbgDisasX86, - FpDbgCommon; + FpDbgDisasX86; var DBG_VERBOSE, DBG_WARNINGS, DBG_BREAKPOINTS, FPDBG_COMMANDS: PLazLoggerLogGroup; @@ -2847,7 +2850,7 @@ end; constructor TFpLineInfo.Create(const ADebugger: TDebuggerIntf); begin - FRequestedSources := TStringList.Create; + FRequestedSources := TStringListUTF8Fast.Create; inherited Create(ADebugger); end; diff --git a/components/lazdebuggers/lazdebuggerfpgdbmi/fpgdbmidebugger.pp b/components/lazdebuggers/lazdebuggerfpgdbmi/fpgdbmidebugger.pp index c936bf3544..a2818264ca 100644 --- a/components/lazdebuggers/lazdebuggerfpgdbmi/fpgdbmidebugger.pp +++ b/components/lazdebuggers/lazdebuggerfpgdbmi/fpgdbmidebugger.pp @@ -12,12 +12,15 @@ uses {$IFdef WithWinMemReader} windows, {$ENDIF} - Classes, sysutils, math, FpdMemoryTools, FpDbgInfo, FpDbgClasses, - GDBMIDebugger, DbgIntfBaseTypes, DbgIntfDebuggerBase, GDBMIMiscClasses, - GDBTypeInfo, LCLProc, Forms, FpDbgLoader, FpDbgDwarf, LazLoggerBase, - LazLoggerProfiling, LazClasses, FpPascalParser, FpPascalBuilder, - FpErrorMessages, FpDbgDwarfDataClasses, FpDbgDwarfFreePascal, FpDbgCommon, - MenuIntf; + Classes, sysutils, math, + Forms, + LazUTF8, LazLoggerBase, LazClasses, + MenuIntf, + DbgIntfBaseTypes, DbgIntfDebuggerBase, + GDBMIDebugger, GDBMIMiscClasses, GDBTypeInfo, + // FpDebug + FpDbgInfo, FpDbgLoader, FpDbgDwarf, FpPascalParser, FpPascalBuilder, + FpdMemoryTools, FpErrorMessages, FpDbgDwarfDataClasses, FpDbgCommon; type @@ -197,7 +200,7 @@ type TFpGDBMILineInfo = class(TDBGLineInfo) //class(TGDBMILineInfo) private - FRequestedSources: TStringList; + FRequestedSources: TStringListUTF8Fast; protected function FpDebugger: TFpGDBMIDebugger; procedure DoStateChange(const {%H-}AOldState: TDBGState); override; @@ -665,7 +668,7 @@ end; constructor TFpGDBMILineInfo.Create(const ADebugger: TDebuggerIntf); begin - FRequestedSources := TStringList.Create; + FRequestedSources := TStringListUTF8Fast.Create; inherited Create(ADebugger); end; diff --git a/components/lazdebuggers/lazdebuggerfplldb/fplldbdebugger.pas b/components/lazdebuggers/lazdebuggerfplldb/fplldbdebugger.pas index d6d89d5c4e..c5e64094c2 100644 --- a/components/lazdebuggers/lazdebuggerfplldb/fplldbdebugger.pas +++ b/components/lazdebuggers/lazdebuggerfplldb/fplldbdebugger.pas @@ -25,11 +25,15 @@ uses {$IFdef WithWinMemReader} windows, {$ENDIF} - Classes, sysutils, math, FpdMemoryTools, FpDbgInfo, LldbDebugger, - LldbInstructions, LldbHelper, DbgIntfBaseTypes, DbgIntfDebuggerBase, LCLProc, - Forms, FpDbgLoader, FpDbgDwarf, LazLoggerBase, LazClasses, FpPascalParser, - FpPascalBuilder, FpErrorMessages, FpDbgDwarfDataClasses, FpDbgDwarfFreePascal, - FpDbgCommon; + Classes, sysutils, math, + Forms, + LazLoggerBase, LazUTF8, LazClasses, + // DebuggerIntf + DbgIntfBaseTypes, DbgIntfDebuggerBase, + // FpDebug + FpdMemoryTools, FpDbgInfo, FpPascalParser, FpDbgLoader, FpDbgDwarf, + FpPascalBuilder, FpErrorMessages, FpDbgDwarfDataClasses, FpDbgCommon, + LldbDebugger, LldbInstructions, LldbHelper; type @@ -251,7 +255,7 @@ type TFpLldbLineInfo = class(TDBGLineInfo) private - FRequestedSources: TStringList; + FRequestedSources: TStringListUTF8Fast; protected function FpDebugger: TFpLldbDebugger; procedure DoStateChange(const {%H-}AOldState: TDBGState); override; @@ -891,7 +895,7 @@ end; constructor TFpLldbLineInfo.Create(const ADebugger: TDebuggerIntf); begin - FRequestedSources := TStringList.Create; + FRequestedSources := TStringListUTF8Fast.Create; inherited Create(ADebugger); end; diff --git a/components/lazdebuggers/lazdebugtestbase/testcommonsources.pas b/components/lazdebuggers/lazdebugtestbase/testcommonsources.pas index afa3d15df7..e9a6e121c5 100644 --- a/components/lazdebuggers/lazdebugtestbase/testcommonsources.pas +++ b/components/lazdebuggers/lazdebugtestbase/testcommonsources.pas @@ -5,7 +5,10 @@ unit TestCommonSources; interface uses - Classes, SysUtils, LCLType, strutils, LazFileUtils, TestOutputLogger; + Classes, SysUtils, strutils, + LCLType, + LazFileUtils, LazUTF8, + TestOutputLogger; {$R sources.rc} @@ -19,7 +22,7 @@ type FFileName: String; FFolder: String; FOtherSources: Array of TCommonSource; - FBreakPoints: TStringList; + FBreakPoints: TStringListUTF8Fast; function GetBreakPoints(AName: String): Integer; function GetFullFileName: String; function GetOtherBreakPoints(AUnitName, AName: String): Integer; @@ -43,7 +46,7 @@ function GetCommonSourceFor(AName: String): TCommonSource; implementation var - CommonSources: TStringList; + CommonSources: TStringListUTF8Fast; BlockRecurseName: String; function GetCommonSourceFor(AName: String): TCommonSource; @@ -82,7 +85,7 @@ begin i := FBreakPoints.IndexOf(AName); if (i < 0) or (FBreakPoints.Objects[i] = nil) then raise Exception.Create('Break unknown '+AName); - Result := Integer(PtrInt(FBreakPoints.Objects[i])); + Result := PtrInt(FBreakPoints.Objects[i]); //TestLogger.DebugLn(['Break: ',AName, ' ',Result]); end; @@ -148,7 +151,7 @@ begin FData.LoadFromStream(r); r.Free; - FBreakPoints := TStringList.Create; + FBreakPoints := TStringListUTF8Fast.Create; if FData.Count < 1 then exit; // TEST_USES @@ -233,7 +236,7 @@ begin end; initialization - CommonSources := TStringList.Create; + CommonSources := TStringListUTF8Fast.Create; finalization; while CommonSources.Count > 0 do begin diff --git a/components/lazdebuggers/lazdebugtestbase/testdbgcompilerprocess.pas b/components/lazdebuggers/lazdebugtestbase/testdbgcompilerprocess.pas index ec1270c463..c857beb608 100644 --- a/components/lazdebuggers/lazdebugtestbase/testdbgcompilerprocess.pas +++ b/components/lazdebuggers/lazdebugtestbase/testdbgcompilerprocess.pas @@ -280,8 +280,7 @@ begin OutputStream.Free; end; -function TCompilerProcess.CallCompiler(const ACommand, ACurDir: String - ): Boolean; +function TCompilerProcess.CallCompiler(const ACommand, ACurDir: String): Boolean; var FpcBuild: TProcessUTF8; OutputLines: TStrings;