Browse Source

* Patch from Ondrej Pokorny to make RegisterClassAlias thread-safe

git-svn-id: trunk@41818 -
michael 6 years ago
parent
commit
60606e61ef
1 changed files with 8 additions and 3 deletions
  1. 8 3
      rtl/objpas/classes/cregist.inc

+ 8 - 3
rtl/objpas/classes/cregist.inc

@@ -44,9 +44,14 @@ procedure RegisterClassAlias(AClass: TPersistentClass; const Alias: string);
   var
   var
     I : integer;
     I : integer;
   begin
   begin
-    i := ClassAliasList.IndexOf(Alias);
-    if I = -1 then
-      ClassAliasList.AddObject( Alias, TObject(AClass) );
+    ClassList.LockList;
+    try
+      i := ClassAliasList.IndexOf(Alias);
+      if I = -1 then
+        ClassAliasList.AddObject( Alias, TObject(AClass) );
+    finally
+      ClassList.UnlockList;
+    end;
   end;
   end;