Browse Source

* problem with DOM solved: it crashes when accessing a property in a method

florian 27 years ago
parent
commit
f0daa16b41
1 changed files with 22 additions and 5 deletions
  1. 22 5
      compiler/pexpr.pas

+ 22 - 5
compiler/pexpr.pas

@@ -497,8 +497,15 @@ unit pexpr;
                      begin
                         if assigned(paras) then
                           message(parser_e_no_paras_allowed);
-                        p1:=gensubscriptnode(pvarsym(
-                          ppropertysym(sym)^.readaccesssym),p1);
+                        { subscribed access? }
+                        if p1=nil then
+                          begin
+                             p1:=genloadnode(pvarsym(ppropertysym(sym)^.readaccesssym),
+                               ppropertysym(sym)^.readaccesssym^.owner);
+                          end
+                        else
+                          p1:=gensubscriptnode(pvarsym(
+                            ppropertysym(sym)^.readaccesssym),p1);
                         { to be on the save side }
                         oldafterassignment:=afterassignment;
                         consume(ASSIGNMENT);
@@ -530,8 +537,15 @@ unit pexpr;
                      begin
                         if assigned(paras) then
                           message(parser_e_no_paras_allowed);
-                        p1:=gensubscriptnode(pvarsym(
-                          ppropertysym(sym)^.readaccesssym),p1);
+                        { subscribed access? }
+                        if p1=nil then
+                          begin
+                             p1:=genloadnode(pvarsym(ppropertysym(sym)^.readaccesssym),
+                               ppropertysym(sym)^.readaccesssym^.owner);
+                          end
+                        else
+                          p1:=gensubscriptnode(pvarsym(
+                            ppropertysym(sym)^.readaccesssym),p1);
                      end
                    else if ppropertysym(sym)^.readaccesssym^.typ=procsym then
                      begin
@@ -1665,7 +1679,10 @@ unit pexpr;
 end.
 {
   $Log$
-  Revision 1.10  1998-05-01 16:38:45  florian
+  Revision 1.11  1998-05-04 11:22:26  florian
+    * problem with DOM solved: it crashes when accessing a property in a method
+
+  Revision 1.10  1998/05/01 16:38:45  florian
     * handling of private and protected fixed
     + change_keywords_to_tp implemented to remove
       keywords which aren't supported by tp