diff --git a/components/lazutils/lazutf8.pas b/components/lazutils/lazutf8.pas index b8e0bf283c..855ba29c3b 100644 --- a/components/lazutils/lazutf8.pas +++ b/components/lazutils/lazutf8.pas @@ -1087,10 +1087,9 @@ begin else begin MaxBytes:=PtrInt(PChar(s)+length(s)-StartBytePos); EndBytePos:=UTF8CodepointStart(StartBytePos,MaxBytes,CharCount); - if EndBytePos=nil then - Result:=copy(s,StartBytePos-PChar(s)+1,MaxBytes) - else - Result:=copy(s,StartBytePos-PChar(s)+1,EndBytePos-StartBytePos); + if EndBytePos<>nil then + MaxBytes:=EndBytePos-StartBytePos; + Result:=copy(s,StartBytePos-PChar(s)+1,MaxBytes); end; end; diff --git a/packager/packagesystem.pas b/packager/packagesystem.pas index ad8d1a7a8c..0f4a5b0cfc 100644 --- a/packager/packagesystem.pas +++ b/packager/packagesystem.pas @@ -776,6 +776,7 @@ procedure TLazPackageGraphFileCache.Update; var I, L: Integer; xPck: TLazPackage; + PkgFile: TPkgFile; begin SetLength(FPackageInfo, FGraph.Count); FFilesList.Clear; @@ -788,13 +789,15 @@ begin for L := 0 to xPck.FileCount-1 do begin - FFilesList[xPck.Files[L].GetFullFilename]:=xPck.Files[L]; - FFilesList[xPck.Files[L].Filename]:=xPck.Files[L]; + PkgFile := xPck.Files[L]; + FFilesList[PkgFile.GetFullFilename]:=PkgFile; + FFilesList[PkgFile.Filename]:=PkgFile; end; for L := 0 to xPck.RemovedFilesCount-1 do begin - FRemovedFilesList[xPck.RemovedFiles[L].GetFullFilename]:=xPck.RemovedFiles[L]; - FRemovedFilesList[xPck.RemovedFiles[L].Filename]:=xPck.RemovedFiles[L]; + PkgFile := xPck.RemovedFiles[L]; + FRemovedFilesList[PkgFile.GetFullFilename]:=PkgFile; + FRemovedFilesList[PkgFile.Filename]:=PkgFile; end; end; end;