فهرست منبع

* factored out overridden properties into a virtual method

git-svn-id: trunk@27939 -
Jonas Maebe 11 سال پیش
والد
کامیت
5f99ec6197
2فایلهای تغییر یافته به همراه9 افزوده شده و 2 حذف شده
  1. 1 2
      compiler/pdecvar.pas
  2. 8 0
      compiler/symsym.pas

+ 1 - 2
compiler/pdecvar.pas

@@ -502,8 +502,7 @@ implementation
                  not(is_dispinterface(astruct)) then
                 begin
                   tpropertysym(overridden).makeduplicate(p,readprocdef,writeprocdef,paranr);
-                  p.overriddenpropsym:=tpropertysym(overridden);
-                  include(p.propoptions,ppo_overrides);
+                  p.register_override(tpropertysym(overridden));
                 end
               else
                 begin

+ 8 - 0
compiler/symsym.pas

@@ -349,6 +349,7 @@ interface
           procedure add_index_parameter(var paranr: word; readprocdef, writeprocdef: tprocdef);
           { set up the accessors for this property }
           procedure add_getter_or_setter_for_sym(getset: tpropaccesslisttypes; sym: tsym; fielddef: tdef; accessordef: tprocdef);
+          procedure register_override(overriddenprop: tpropertysym); virtual;
        end;
        tpropertysymclass = class of tpropertysym;
 
@@ -1437,6 +1438,13 @@ implementation
       end;
 
 
+    procedure tpropertysym.register_override(overriddenprop: tpropertysym);
+      begin
+        overriddenpropsym:=tpropertysym(overriddenprop);
+        include(propoptions,ppo_overrides);
+      end;
+
+
     procedure tpropertysym.makeduplicate(p: tpropertysym; readprocdef, writeprocdef: tprocdef; out paranr: word);
       begin
         { inherit all type related entries }