RTL custom interface types as records
This commit is contained in:
@@ -113,15 +113,20 @@ end;
|
||||
|
||||
class procedure TRtlTypeRegistry.RegisterType(Info: PTypeInfo);
|
||||
begin
|
||||
if FKnownTypes.ContainsKey(Info) then
|
||||
exit;
|
||||
|
||||
EnterAnalysis(Info);
|
||||
TMonitor.Enter(FKnownTypes);
|
||||
try
|
||||
var staticType := AnalyzeType(Info);
|
||||
FKnownTypes.Add(Info, staticType);
|
||||
if FKnownTypes.ContainsKey(Info) then
|
||||
exit;
|
||||
|
||||
EnterAnalysis(Info);
|
||||
try
|
||||
var staticType := AnalyzeType(Info);
|
||||
FKnownTypes.Add(Info, staticType);
|
||||
finally
|
||||
ExitAnalysis(Info);
|
||||
end;
|
||||
finally
|
||||
ExitAnalysis(Info);
|
||||
TMonitor.Exit(FKnownTypes);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user