mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-19 11:59:13 +02:00
FpDebug: Fix race condition. FScope accesses FScopeList which is changed by thread (dyn array re-alloc by SetLength)
git-svn-id: trunk@65172 -
This commit is contained in:
parent
51ac1efe7a
commit
3644f4a2e2
@ -4281,13 +4281,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
FValid := True;
|
FValid := True;
|
||||||
|
|
||||||
FComputeNameHashesWorker := TFpThreadWorkerComputeNameHashes.Create(Self);
|
|
||||||
FComputeNameHashesWorker.AddRef;
|
|
||||||
|
|
||||||
FScanAllWorker := TFpThreadWorkerScanAll.Create(Self, FComputeNameHashesWorker);
|
|
||||||
FScanAllWorker.AddRef;
|
|
||||||
FOwner.WorkQueue.PushItem(FScanAllWorker);
|
|
||||||
|
|
||||||
AttribList.EvalCount := 0;
|
AttribList.EvalCount := 0;
|
||||||
/// TODO: (dafHasName in Abbrev.flags)
|
/// TODO: (dafHasName in Abbrev.flags)
|
||||||
if LocateAttribute(Scope.Entry, DW_AT_name, AttribList, Attrib, Form)
|
if LocateAttribute(Scope.Entry, DW_AT_name, AttribList, Attrib, Form)
|
||||||
@ -4332,6 +4325,14 @@ begin
|
|||||||
|
|
||||||
if FMinPC = 0 then FMinPC := FMaxPC;
|
if FMinPC = 0 then FMinPC := FMaxPC;
|
||||||
if FMaxPC = 0 then FMAxPC := FMinPC;
|
if FMaxPC = 0 then FMAxPC := FMinPC;
|
||||||
|
|
||||||
|
// FScope and FScopeList *MUST NOT* be accessed while the worker is running
|
||||||
|
FComputeNameHashesWorker := TFpThreadWorkerComputeNameHashes.Create(Self);
|
||||||
|
FComputeNameHashesWorker.AddRef;
|
||||||
|
|
||||||
|
FScanAllWorker := TFpThreadWorkerScanAll.Create(Self, FComputeNameHashesWorker);
|
||||||
|
FScanAllWorker.AddRef;
|
||||||
|
FOwner.WorkQueue.PushItem(FScanAllWorker);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TDwarfCompilationUnit.Destroy;
|
destructor TDwarfCompilationUnit.Destroy;
|
||||||
|
Loading…
Reference in New Issue
Block a user