Просмотр исходного кода

* Patch from Ondrej Pokorny to make RegisterClassAlias thread-safe

git-svn-id: trunk@41818 -
michael 6 лет назад
Родитель
Сommit
60606e61ef
1 измененных файлов с 8 добавлено и 3 удалено
  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
     I : integer;
   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;