Browse Source

rtl: fix streaming of ancestor components - save/restore FRootAncestor in TWriter.WriteComponent because it can be changed by DoFindAncestor call (if IDE/or user code is connected to OnFindAncestor event)

git-svn-id: trunk@14969 -
paul 15 years ago
parent
commit
e2dbccf017
1 changed files with 3 additions and 2 deletions
  1. 3 2
      rtl/objpas/classes/writer.inc

+ 3 - 2
rtl/objpas/classes/writer.inc

@@ -661,11 +661,11 @@ procedure TWriter.WriteComponent(Component: TComponent);
 
 
 var
 var
   SA : TPersistent;
   SA : TPersistent;
-  SR : TComponent;
-  
+  SR, SRA : TComponent;
 begin
 begin
   SR:=FRoot;
   SR:=FRoot;
   SA:=FAncestor;
   SA:=FAncestor;
+  SRA:=FRootAncestor;
   Try
   Try
     Component.FComponentState:=Component.FComponentState+[csWriting];
     Component.FComponentState:=Component.FComponentState+[csWriting];
     Try
     Try
@@ -681,6 +681,7 @@ begin
   Finally
   Finally
     FAncestor:=SA;
     FAncestor:=SA;
     FRoot:=SR;
     FRoot:=SR;
+    FRootAncestor:=SRA;
   end;
   end;
 end;
 end;