mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 15:19:19 +02:00
Debugger, IDE: prevent dangling pointer in Source-Hint watch-eval.
(cherry picked from commit 4d3adb3870
)
This commit is contained in:
parent
4c41d70ddf
commit
af2489f6ff
@ -193,6 +193,7 @@ type
|
|||||||
var Result: TStartNewInstanceResult; var outSourceWindowHandle: HWND);
|
var Result: TStartNewInstanceResult; var outSourceWindowHandle: HWND);
|
||||||
procedure LazInstancesGetOpenedProjectFileName(var outProjectFileName: string);
|
procedure LazInstancesGetOpenedProjectFileName(var outProjectFileName: string);
|
||||||
procedure OnHintWatchValidityChanged(Sender: TObject);
|
procedure OnHintWatchValidityChanged(Sender: TObject);
|
||||||
|
procedure HintWatchFreed(Sender: TObject);
|
||||||
procedure DlgDebugInfoHelpRequested(Sender: TObject; AModalResult: TModalResult; var ACanClose: Boolean);
|
procedure DlgDebugInfoHelpRequested(Sender: TObject; AModalResult: TModalResult; var ACanClose: Boolean);
|
||||||
|
|
||||||
public
|
public
|
||||||
@ -11515,6 +11516,11 @@ begin
|
|||||||
CodeExplorerView.CurrentCodeBufferChanged;
|
CodeExplorerView.CurrentCodeBufferChanged;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TMainIDE.HintWatchFreed(Sender: TObject);
|
||||||
|
begin
|
||||||
|
FHintWatchData.WatchValue := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TMainIDE.OnHintWatchValidityChanged(Sender: TObject);
|
procedure TMainIDE.OnHintWatchValidityChanged(Sender: TObject);
|
||||||
var
|
var
|
||||||
p: SizeInt;
|
p: SizeInt;
|
||||||
@ -11678,6 +11684,7 @@ begin
|
|||||||
st := CStack.CurrentIndex;
|
st := CStack.CurrentIndex;
|
||||||
FHintWatchData.WatchValue := aWatch.Values[tid, st] as TCurrentWatchValue;
|
FHintWatchData.WatchValue := aWatch.Values[tid, st] as TCurrentWatchValue;
|
||||||
FHintWatchData.WatchValue.OnValidityChanged := @OnHintWatchValidityChanged;
|
FHintWatchData.WatchValue.OnValidityChanged := @OnHintWatchValidityChanged;
|
||||||
|
FHintWatchData.WatchValue.AddFreeNotification(@HintWatchFreed);
|
||||||
FHintWatchData.WatchValue.Value;
|
FHintWatchData.WatchValue.Value;
|
||||||
OnHintWatchValidityChanged(FHintWatchData.WatchValue);
|
OnHintWatchValidityChanged(FHintWatchData.WatchValue);
|
||||||
exit;
|
exit;
|
||||||
|
Loading…
Reference in New Issue
Block a user