فهرست منبع

* Call getOwner only once in several TPersistent methods (Patch from Luiz Americo, bug #21531)

git-svn-id: trunk@20574 -
michael 13 سال پیش
والد
کامیت
0d545c68de
1فایلهای تغییر یافته به همراه11 افزوده شده و 5 حذف شده
  1. 11 5
      rtl/objpas/classes/persist.inc

+ 11 - 5
rtl/objpas/classes/persist.inc

@@ -61,12 +61,14 @@ end;
 function  TPersistent.GetNamePath: string;
 function  TPersistent.GetNamePath: string;
 
 
 Var OwnerName :String;
 Var OwnerName :String;
+    TheOwner: TPersistent;
 
 
 begin
 begin
- Result:=ClassNAme;
- If GetOwner<>Nil then
+ Result:=ClassName;
+ TheOwner:=GetOwner;
+ If TheOwner<>Nil then
    begin
    begin
-   OwnerName:=GetOwner.GetNamePath;
+   OwnerName:=TheOwner.GetNamePath;
    If OwnerName<>'' then Result:=OwnerName+'.'+Result;
    If OwnerName<>'' then Result:=OwnerName+'.'+Result;
    end;
    end;
 end;
 end;
@@ -77,10 +79,14 @@ end;
 {****************************************************************************}
 {****************************************************************************}
 
 
 procedure TInterfacedPersistent.AfterConstruction;
 procedure TInterfacedPersistent.AfterConstruction;
+
+Var TheOwner: TPersistent;
+
 begin
 begin
   inherited;
   inherited;
-  if assigned(GetOwner) then
-    GetOwner.GetInterface(IUnknown,FOwnerInterface);
+  TheOwner:=GetOwner;
+  if assigned(TheOwner) then
+    TheOwner.GetInterface(IUnknown,FOwnerInterface);
 end;
 end;