Skip to content

Commit c1750c8

Browse files
committed
TNetData removed from TFrameNodeStats.Create
Calling property TNetData.NetData is unsafe. Which calls TNetData.Create Which calls procedure TECPrivateKey.GenerateRandomPrivateKey(EC_OpenSSL_NID : Word); Which relies on UCrypto which is not yet initialized, Which leads to access violation because UCrypto API routine pointers not loaded. TNetData code moved back to procedure TFRMWallet.FinishedLoadingApp;
1 parent d61475e commit c1750c8

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

src/gui-classic/Frames/UFrameNodeStats.pas

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,16 @@ TFrameNodeStats = class(TFrame)
2525

2626
FMustProcessNetConnectionUpdated : Boolean;
2727

28-
procedure OnNetConnectionsUpdated(Sender : TObject);
29-
procedure OnNetBlackListUpdated(Sender : TObject);
30-
procedure OnNetNodeServersUpdated(Sender: TObject);
31-
3228
procedure CM_NetConnectionUpdated(var Msg: TMessage); message CM_PC_NetConnectionUpdated;
3329

3430

3531
public
3632
{ Public declarations }
3733

34+
procedure OnNetConnectionsUpdated(Sender : TObject);
35+
procedure OnNetBlackListUpdated(Sender : TObject);
36+
procedure OnNetNodeServersUpdated(Sender: TObject);
37+
3838
constructor Create(AOwner: TComponent); override;
3939
destructor Destroy; override;
4040
end;
@@ -63,9 +63,14 @@ constructor TFrameNodeStats.Create(AOwner: TComponent);
6363

6464
FMustProcessNetConnectionUpdated := false;
6565

66+
// Skybuck:
67+
// unsafe, must be called by FRMWallet first, otherwise UCrypto not initialised.
68+
// or initialize UCrypto before FRMWallet is create.
69+
{
6670
TNetData.NetData.OnNetConnectionsUpdated := OnNetConnectionsUpdated;
6771
TNetData.NetData.OnBlackListUpdated := OnNetBlackListUpdated;
6872
TNetData.NetData.OnNodeServersUpdated := OnNetNodeServersUpdated;
73+
}
6974
end;
7075

7176
destructor TFrameNodeStats.Destroy;

src/gui-classic/UFRMWallet.pas

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -634,8 +634,9 @@ procedure TFRMWallet.FinishedLoadingApp;
634634
// Init
635635
TNetData.NetData.OnReceivedHelloMessage := OnReceivedHelloMessage;
636636
TNetData.NetData.OnStatisticsChanged := OnNetStatisticsChanged;
637-
// TNetData.NetData.OnNodeServersUpdated := OnNetNodeServersUpdated; // try to move to FrameNodeStats
638-
// TNetData.NetData.OnBlackListUpdated := OnNetBlackListUpdated; // try to move to FrameNodeStats
637+
TNetData.NetData.OnNetConnectionsUpdated := FrameNodeStats.OnNetConnectionsUpdated;
638+
TNetData.NetData.OnNodeServersUpdated := FrameNodeStats.OnNetNodeServersUpdated;
639+
TNetData.NetData.OnBlackListUpdated := FrameNodeStats.OnNetBlackListUpdated;
639640

640641
//
641642
TimerUpdateStatus.Interval := 1000;

0 commit comments

Comments
 (0)