Memnarch / Delphinus

An alternative Packagemanager for the Delphi-IDE
Mozilla Public License 2.0
235 stars 63 forks source link

Range error checking at Delphinus.SetupDialog.pas:289 #32

Open IL2 opened 7 years ago

IL2 commented 7 years ago

When Delphinus compiled with Range checking ON error is thrown at Delphinus.SetupDialog.pas Line 289 https://github.com/Memnarch/Delphinus/blob/master/Packages/Delphinus.SetupDialog.pas#L289

[13C7F837]{Delphinus.bpl} Delphinus.SetupDialog.Setupdialog.TSetupDialog.HandleDependencyProgress_16_ActRec._0_Body$qqrv (Line 289, "Delphinus.SetupDialog.pas" + 2) + $61
[5005A3E2]{rtl240.bpl  } System.ErrorAt (Line 5542, "System.pas" + 3) + $4
[5005A426]{rtl240.bpl  } System.Error (Line 5553, "System.pas" + 1) + $7
[13C7F837]{Delphinus.bpl} Delphinus.SetupDialog.Setupdialog.TSetupDialog.HandleDependencyProgress_16_ActRec._0_Body$qqrv (Line 289, "Delphinus.SetupDialog.pas" + 2) + $61
[5016CCC6]{rtl240.bpl  } System.Classes.CheckSynchronize (Line 14649, "System.Classes.pas" + 32) + $A
[071DFBE3]{fmx240.bpl  } FMX.Platform.Win.TPlatformWin.TextToShortCut (Line 3838, "FMX.Platform.Win.pas" + 0) + $1B
[50170DFC]{rtl240.bpl  } System.Classes.StdWndProc (Line 17187, "System.Classes.pas" + 8) + $0
[50BEEDE7]{vcl240.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 10534, "Vcl.Forms.pas" + 23) + $1
[50BEEE2A]{vcl240.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 10564, "Vcl.Forms.pas" + 1) + $4
[50BEA35A]{vcl240.bpl  } Vcl.Forms.TCustomForm.ShowModal (Line 7315, "Vcl.Forms.pas" + 33) + $5
[13C7F2EF]{Delphinus.bpl} Delphinus.SetupDialog.Setupdialog.TSetupDialog.ExecuteUninstallation$qqrx53System.%DelphiInterface$26Dn.Package.Intf.IDNPackage% (Line 241, "Delphinus.SetupDialog.pas" + 3) + $5
[13CCEE62]{Delphinus.bpl} Delphinus.Dialog.Dialog.TDelphinusDialog.UnInstallPackage$qqrx53System.%DelphiInterface$26Dn.Package.Intf.IDNPackage% (Line 708, "Delphinus.Dialog.pas" + 5) + $6
[13CCBCED]{Delphinus.bpl} Delphinus.Dialog.Dialog.TDelphinusDialog.Create_4_ActRec._4_Body$qqrx53System.%DelphiInterface$26Dn.Package.Intf.IDNPackage% (Line 254, "Delphinus.Dialog.pas" + 0) + $15
[13C50142]{Delphinus.bpl} DN.PackageOverview.Packageoverview.TPackageOverView.UninstallPackage$qqrx53System.%DelphiInterface$26Dn.Package.Intf.IDNPackage% (Line 306, "DN.PackageOverview.pas" + 2) + $E
[13C4F58B]{Delphinus.bpl} DN.PackageOverview.Packageoverview.TPackageOverView.AddPreview_0_ActRec._1_Body$qqrp14System.TObject (Line 115, "DN.PackageOverview.pas" + 0) + $1B
[13C4B2B1]{Delphinus.bpl} DN.Preview.Preview.TPreview.DoUninstall$qqrv (Line 117, "DN.Preview.pas" + 2) + $E
[13C4B58A]{Delphinus.bpl} DN.Preview.Preview.TPreview.HandleButtonClick$qqrp14System.TObject (Line 167, "DN.Preview.pas" + 5) + $3
[50AA409F]{vcl240.bpl  } Vcl.Controls.TControl.Click (Line 7429, "Vcl.Controls.pas" + 9) + $8
[50AC9A3E]{vcl240.bpl  } Vcl.StdCtrls.TCustomButton.Click (Line 5434, "Vcl.StdCtrls.pas" + 3) + $2
[50ACA54C]{vcl240.bpl  } Vcl.StdCtrls.TCustomButton.CNCommand (Line 5895, "Vcl.StdCtrls.pas" + 1) + $D
[50AA3B32]{vcl240.bpl  } Vcl.Controls.TControl.WndProc (Line 7313, "Vcl.Controls.pas" + 91) + $6
[50AA867D]{vcl240.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10143, "Vcl.Controls.pas" + 158) + $6
[50AC96E8]{vcl240.bpl  } Vcl.StdCtrls.TButtonControl.WndProc (Line 5271, "Vcl.StdCtrls.pas" + 13) + $4
[50AA376C]{vcl240.bpl  } Vcl.Controls.TControl.Perform (Line 7091, "Vcl.Controls.pas" + 10) + $8
[50AA87E3]{vcl240.bpl  } Vcl.Controls.DoControlMsg (Line 10212, "Vcl.Controls.pas" + 12) + $11
[50AA926F]{vcl240.bpl  } Vcl.Controls.TWinControl.WMCommand (Line 10487, "Vcl.Controls.pas" + 1) + $5
[50AA3B32]{vcl240.bpl  } Vcl.Controls.TControl.WndProc (Line 7313, "Vcl.Controls.pas" + 91) + $6
[50AA878E]{vcl240.bpl  } Vcl.Controls.TWinControl.DefaultHandler (Line 10184, "Vcl.Controls.pas" + 30) + $19
[50AA3B32]{vcl240.bpl  } Vcl.Controls.TControl.WndProc (Line 7313, "Vcl.Controls.pas" + 91) + $6
[50AA867D]{vcl240.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10143, "Vcl.Controls.pas" + 158) + $6
[212623CA]{designide240.bpl} DeskUtil.SetFocusHook (Line 463, "DeskUtil.pas" + 4) + $C
[50AA7C9C]{vcl240.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 9850, "Vcl.Controls.pas" + 3) + $6
[50170DFC]{rtl240.bpl  } System.Classes.StdWndProc (Line 17187, "System.Classes.pas" + 8) + $0
[50AA878E]{vcl240.bpl  } Vcl.Controls.TWinControl.DefaultHandler (Line 10184, "Vcl.Controls.pas" + 30) + $19
[50AA44F4]{vcl240.bpl  } Vcl.Controls.TControl.WMLButtonUp (Line 7562, "Vcl.Controls.pas" + 1) + $6
[50AA3B32]{vcl240.bpl  } Vcl.Controls.TControl.WndProc (Line 7313, "Vcl.Controls.pas" + 91) + $6
[0A32514C]{TrackingSystem240.bpl} TrackingSystemHelp.CBTHookProc (Line 211, "TrackingSystemHelp.pas" + 27) + $F
[50AA7E8B]{vcl240.bpl  } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 9906, "Vcl.Controls.pas" + 1) + $9
[50AA867D]{vcl240.bpl  } Vcl.Controls.TWinControl.WndProc (Line 10143, "Vcl.Controls.pas" + 158) + $6
[50AC96E8]{vcl240.bpl  } Vcl.StdCtrls.TButtonControl.WndProc (Line 5271, "Vcl.StdCtrls.pas" + 13) + $4
[50AA7C9C]{vcl240.bpl  } Vcl.Controls.TWinControl.MainWndProc (Line 9850, "Vcl.Controls.pas" + 3) + $6
[50170DFC]{rtl240.bpl  } System.Classes.StdWndProc (Line 17187, "System.Classes.pas" + 8) + $0
[50BEEDE7]{vcl240.bpl  } Vcl.Forms.TApplication.ProcessMessage (Line 10534, "Vcl.Forms.pas" + 23) + $1
[50BEEE2A]{vcl240.bpl  } Vcl.Forms.TApplication.HandleMessage (Line 10564, "Vcl.Forms.pas" + 1) + $4
[50BEF15D]{vcl240.bpl  } Vcl.Forms.TApplication.Run (Line 10702, "Vcl.Forms.pas" + 26) + $3

on Install/Uninstall of a component.

procedure TSetupDialog.HandleDependencyProgress(const ATask, AItem: string;
  AProgress, AMax: Int64);
begin
  TThread.Queue(nil,
  procedure
  begin
    lbAction.Caption := ATask + ' ' + AItem;
    pbProgress.Position := Round(AProgress / AMax * pbProgress.Max / (FDependencyCount + 1) * FDependencyCount); //<== here
  end
  );
end;

Not sure how to fix.

Memnarch commented 7 years ago

Thanks, i'll fix it.