DBG: Inspect-Dialog, prevent crash, due to nested updates

git-svn-id: trunk@39280 -
This commit is contained in:
martin 2012-11-15 14:46:30 +00:00
parent f0f98b8cad
commit 1a23649a97

View File

@ -72,6 +72,7 @@ type
FDBGInfo: TDBGType;
FGridData: TStringGrid;
FGridMethods: TStringGrid;
FUpdateLock, FUpdateNeeded: Boolean;
procedure Localize;
procedure InspectClass;
procedure InspectRecord;
@ -461,7 +462,6 @@ begin
MethodsPage.TabVisible:=false;
GridDataSetup;
FGridData.Visible := False;
FreeAndNil(FDBGInfo);
StatusBar1.SimpleText:='';
end;
@ -509,6 +509,7 @@ constructor TIDEInspectDlg.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
//FDBGInfo := nil;
//FDataGridHook := TPropertyEditorHook.Create;
//FDataGrid := NewGrid('DataGrid', DataPage, FDataGridHook);
//
@ -518,6 +519,8 @@ begin
//FMethodsGridHook := TPropertyEditorHook.Create;
//FMethodsGrid := NewGrid('MethodsGrid', MethodsPage, FMethodsGridHook);
FUpdateLock := False;
FUpdateNeeded := False;
Localize;
FGridData:=TStringGrid.Create(DataPage);
@ -554,9 +557,21 @@ procedure TIDEInspectDlg.UpdateData;
var
Opts: TDBGEvaluateFlags;
begin
if FUpdateLock then begin
FUpdateNeeded := True;
exit;
end;
FUpdateLock := True;
FUpdateNeeded := False;
try
FreeAndNil(FDBGInfo);
if FExpression = ''
then exit;
then begin
Clear;
StatusBar1.SimpleText := '';
exit;
end;
InputHistories.HistoryLists.Add(ClassName, FExpression,rltCaseSensitive);
if EdInspect.Items.IndexOf(FExpression) = -1
@ -585,6 +600,12 @@ begin
skPointer: InspectPointer();
// skDecomposable: ;
end;
finally
FUpdateLock := False;
end;
if FUpdateNeeded then
UpdateData;
end;
{ TOIDBGGrid }