mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-16 18:49:19 +02:00
DBG: fixed endless loop in watch eval (auto type cast) Issue #0022425
git-svn-id: trunk@37950 -
This commit is contained in:
parent
8d2d0b8f96
commit
0336b51995
@ -319,7 +319,7 @@ type
|
|||||||
TGDBTypeProcessState =
|
TGDBTypeProcessState =
|
||||||
(gtpsInitial, gtpsInitialSimple,
|
(gtpsInitial, gtpsInitialSimple,
|
||||||
gtpsSimplePointer,
|
gtpsSimplePointer,
|
||||||
gtpsClass, gtpsClassAutoCast, gtpsClassPointer, gtpsClassAncestor,
|
gtpsClass, gtpsClassAutoCast, gtpsClassPointer, gtpsFinishProcessClass, gtpsClassAncestor,
|
||||||
gtpsArray,
|
gtpsArray,
|
||||||
gtpsEvalExpr, gtpsEvalExprRepeated,
|
gtpsEvalExpr, gtpsEvalExprRepeated,
|
||||||
gtpsEvalExprArray, gtpsEvalExprDynArray, gtpsEvalExprDynArrayGetData,
|
gtpsEvalExprArray, gtpsEvalExprDynArray, gtpsEvalExprDynArrayGetData,
|
||||||
@ -2351,6 +2351,7 @@ var
|
|||||||
|
|
||||||
procedure FinishProcessClass;
|
procedure FinishProcessClass;
|
||||||
begin
|
begin
|
||||||
|
FProcessState := gtpsFinishProcessClass;
|
||||||
if (gtcfFullTypeInfo in FCreationFlags) and not (gtcfExprIsType in FCreationFlags) then
|
if (gtcfFullTypeInfo in FCreationFlags) and not (gtcfExprIsType in FCreationFlags) then
|
||||||
if not RequireRequests([gptrWhatisExpr]) then
|
if not RequireRequests([gptrWhatisExpr]) then
|
||||||
exit;
|
exit;
|
||||||
@ -2449,7 +2450,7 @@ var
|
|||||||
s := '^' + s;
|
s := '^' + s;
|
||||||
FHasAutoTypeCastFix := True;
|
FHasAutoTypeCastFix := True;
|
||||||
exclude(FProccesReuestsMade, gptrPtypeCustomAutoCast2);
|
exclude(FProccesReuestsMade, gptrPtypeCustomAutoCast2);
|
||||||
RequireRequests([gptrPtypeCustomAutoCast2], FExpression);
|
RequireRequests([gptrPtypeCustomAutoCast2], s);
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -3165,18 +3166,19 @@ begin
|
|||||||
OldReqMade := FProccesReuestsMade;
|
OldReqMade := FProccesReuestsMade;
|
||||||
|
|
||||||
case FProcessState of
|
case FProcessState of
|
||||||
gtpsInitial: ProcessInitial;
|
gtpsInitial: ProcessInitial;
|
||||||
gtpsInitialSimple: ProcessInitialSimple;
|
gtpsInitialSimple: ProcessInitialSimple;
|
||||||
gtpsSimplePointer: ProcessSimplePointer;
|
gtpsSimplePointer: ProcessSimplePointer;
|
||||||
gtpsClass: ProcessClass;
|
gtpsClass: ProcessClass;
|
||||||
gtpsClassAutoCast: ProcessClassAutoCast;
|
gtpsClassAutoCast: ProcessClassAutoCast;
|
||||||
gtpsClassPointer: ProcessClassPointer;
|
gtpsClassPointer: ProcessClassPointer;
|
||||||
gtpsClassAncestor: ProcessClassAncestor;
|
gtpsFinishProcessClass: FinishProcessClass;
|
||||||
gtpsArray: ProcessArray;
|
gtpsClassAncestor: ProcessClassAncestor;
|
||||||
gtpsEvalExpr: EvaluateExpression;
|
gtpsArray: ProcessArray;
|
||||||
gtpsEvalExprRepeated: EvaluateExpressionRepeated;
|
gtpsEvalExpr: EvaluateExpression;
|
||||||
gtpsEvalExprArray: EvaluateExpressionArray;
|
gtpsEvalExprRepeated: EvaluateExpressionRepeated;
|
||||||
gtpsEvalExprDynArray: EvaluateExpressionDynArray;
|
gtpsEvalExprArray: EvaluateExpressionArray;
|
||||||
|
gtpsEvalExprDynArray: EvaluateExpressionDynArray;
|
||||||
gtpsEvalExprDynArrayGetData: EvaluateExpressionDynArrayGetData;
|
gtpsEvalExprDynArrayGetData: EvaluateExpressionDynArrayGetData;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user