Browse Source

* fix crash with empty object as childs

peter 26 years ago
parent
commit
8a6774104d
1 changed files with 11 additions and 9 deletions
  1. 11 9
      compiler/pexpr.pas

+ 11 - 9
compiler/pexpr.pas

@@ -1039,15 +1039,14 @@ unit pexpr;
                                              begin
                                              begin
                                                p1:=gentypenode(pd,ptypesym(srsym));
                                                p1:=gentypenode(pd,ptypesym(srsym));
                                                p1^.resulttype:=pd;
                                                p1^.resulttype:=pd;
-                                               srsymtable:=pobjectdef(pd)^.symtable;
-                                               sym:=pvarsym(srsymtable^.search(pattern));
                                                { search also in inherited methods }
                                                { search also in inherited methods }
-                                               while sym=nil do
-                                                begin
-                                                  pd:=pobjectdef(pd)^.childof;
-                                                  srsymtable:=pobjectdef(pd)^.symtable;
-                                                  sym:=pvarsym(srsymtable^.search(pattern));
-                                                end;
+                                               repeat
+                                                 srsymtable:=pobjectdef(pd)^.symtable;
+                                                 sym:=pvarsym(srsymtable^.search(pattern));
+                                                 if assigned(sym) then
+                                                  break;
+                                                 pd:=pobjectdef(pd)^.childof;
+                                               until not assigned(pd);
                                                consume(_ID);
                                                consume(_ID);
                                                do_member_read(false,sym,p1,pd,again);
                                                do_member_read(false,sym,p1,pd,again);
                                              end
                                              end
@@ -2093,7 +2092,10 @@ _LECKKLAMMER : begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.141  1999-09-11 19:47:26  florian
+  Revision 1.142  1999-09-13 16:26:32  peter
+    * fix crash with empty object as childs
+
+  Revision 1.141  1999/09/11 19:47:26  florian
     * bug fix for @tobject.method, fixes bug 557, 605 and 606
     * bug fix for @tobject.method, fixes bug 557, 605 and 606
 
 
   Revision 1.140  1999/09/11 09:08:33  florian
   Revision 1.140  1999/09/11 09:08:33  florian