Ver código fonte

* property overriding dereference fix, but it need a bigger redesign
which i'll do tomorrow. This quick hack is for the lazarus ppl so
they can hack on mwcustomedit.

peter 26 anos atrás
pai
commit
eb4e24afb1
3 arquivos alterados com 39 adições e 5 exclusões
  1. 7 1
      compiler/ptype.pas
  2. 25 3
      compiler/symsym.inc
  3. 7 1
      compiler/symsymh.inc

+ 7 - 1
compiler/ptype.pas

@@ -479,6 +479,7 @@ uses
                           p^.propoptions:=ppropertysym(overriden)^.propoptions;
                           p^.index:=ppropertysym(overriden)^.index;
                           p^.proptype:=ppropertysym(overriden)^.proptype;
+                          p^.proptypesym:=ppropertysym(overriden);
                           p^.writeaccesssym:=copypropsymlist(ppropertysym(overriden)^.writeaccesssym);
                           p^.readaccesssym:=copypropsymlist(ppropertysym(overriden)^.readaccesssym);
                           p^.storedsym:=copypropsymlist(ppropertysym(overriden)^.storedsym);
@@ -1608,7 +1609,12 @@ uses
 end.
 {
   $Log$
-  Revision 1.10  1999-11-17 17:05:03  pierre
+  Revision 1.11  1999-11-26 00:19:12  peter
+    * property overriding dereference fix, but it need a bigger redesign
+      which i'll do tomorrow. This quick hack is for the lazarus ppl so
+      they can hack on mwcustomedit.
+
+  Revision 1.10  1999/11/17 17:05:03  pierre
    * Notes/hints changes
 
   Revision 1.9  1999/11/11 00:56:54  pierre

+ 25 - 3
compiler/symsym.inc

@@ -616,6 +616,7 @@
          typ:=propertysym;
          propoptions:=[];
          proptype:=nil;
+         proptypesym:=nil;
          readaccessdef:=nil;
          writeaccessdef:=nil;
          readaccesssym:=nil;
@@ -678,6 +679,7 @@
          inherited load;
          typ:=propertysym;
          proptype:=readdefref;
+         proptypesym:=ppropertysym(readsymref);
          readsmallset(propoptions);
          index:=readlong;
          default:=readlong;
@@ -704,7 +706,13 @@
         end;
 
       begin
-         resolvedef(proptype);
+         if assigned(proptypesym) then
+          begin
+            resolvesym(psym(proptypesym));
+            proptype:=proptypesym^.proptype;
+          end
+         else
+          resolvedef(proptype);
          resolvedef(readaccessdef);
          resolvedef(writeaccessdef);
          resolvedef(storeddef);
@@ -734,7 +742,16 @@
 
       begin
          tsym.write;
-         writedefref(proptype);
+         if assigned(proptypesym) then
+          begin
+            writedefref(nil);
+            writesymref(proptypesym);
+          end
+         else
+          begin
+            writedefref(proptype);
+            writesymref(nil);
+          end;
          writesmallset(propoptions);
          writelong(index);
          writelong(default);
@@ -2192,7 +2209,12 @@
 
 {
   $Log$
-  Revision 1.129  1999-11-21 01:42:37  pierre
+  Revision 1.130  1999-11-26 00:19:12  peter
+    * property overriding dereference fix, but it need a bigger redesign
+      which i'll do tomorrow. This quick hack is for the lazarus ppl so
+      they can hack on mwcustomedit.
+
+  Revision 1.129  1999/11/21 01:42:37  pierre
    * Nextoverloading ordering fix
 
   Revision 1.128  1999/11/20 01:22:20  pierre

+ 7 - 1
compiler/symsymh.inc

@@ -196,6 +196,7 @@
        tpropertysym = object(tsym)
           propoptions : tpropertyoptions;
           proptype    : pdef;
+          proptypesym : ppropertysym;
           readaccesssym,writeaccesssym,storedsym : ppropsymlist;
           readaccessdef,writeaccessdef,storeddef,indexdef : pdef;
           index,default : longint;
@@ -323,7 +324,12 @@
 
 {
   $Log$
-  Revision 1.40  1999-11-17 17:05:06  pierre
+  Revision 1.41  1999-11-26 00:19:12  peter
+    * property overriding dereference fix, but it need a bigger redesign
+      which i'll do tomorrow. This quick hack is for the lazarus ppl so
+      they can hack on mwcustomedit.
+
+  Revision 1.40  1999/11/17 17:05:06  pierre
    * Notes/hints changes
 
   Revision 1.39  1999/11/15 22:00:48  peter