mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-16 09:39:09 +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;
|
||||
FValid := True;
|
||||
|
||||
FComputeNameHashesWorker := TFpThreadWorkerComputeNameHashes.Create(Self);
|
||||
FComputeNameHashesWorker.AddRef;
|
||||
|
||||
FScanAllWorker := TFpThreadWorkerScanAll.Create(Self, FComputeNameHashesWorker);
|
||||
FScanAllWorker.AddRef;
|
||||
FOwner.WorkQueue.PushItem(FScanAllWorker);
|
||||
|
||||
AttribList.EvalCount := 0;
|
||||
/// TODO: (dafHasName in Abbrev.flags)
|
||||
if LocateAttribute(Scope.Entry, DW_AT_name, AttribList, Attrib, Form)
|
||||
@ -4332,6 +4325,14 @@ begin
|
||||
|
||||
if FMinPC = 0 then FMinPC := FMaxPC;
|
||||
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;
|
||||
|
||||
destructor TDwarfCompilationUnit.Destroy;
|
||||
|
Loading…
Reference in New Issue
Block a user