Browse Source

* fixed dispose(destructor) crash when destructor didn't exists

peter 27 years ago
parent
commit
3fcd0a1086
1 changed files with 5 additions and 2 deletions
  1. 5 2
      compiler/pstatmnt.pas

+ 5 - 2
compiler/pstatmnt.pas

@@ -835,7 +835,7 @@ unit pstatmnt;
                          end;
                          end;
                    { the second parameter of new/dispose must be a call }
                    { the second parameter of new/dispose must be a call }
                    { to a cons-/destructor                                }
                    { to a cons-/destructor                                }
-                   if (sym^.typ<>procsym) then
+                   if (not assigned(sym)) or (sym^.typ<>procsym) then
                          begin
                          begin
                             Message(parser_e_expr_have_to_be_destructor_call);
                             Message(parser_e_expr_have_to_be_destructor_call);
                             new_dispose_statement:=genzeronode(errorn);
                             new_dispose_statement:=genzeronode(errorn);
@@ -1216,7 +1216,10 @@ unit pstatmnt;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.46  1998-10-20 08:06:53  pierre
+  Revision 1.47  1998-10-30 16:20:22  peter
+    * fixed dispose(destructor) crash when destructor didn't exists
+
+  Revision 1.46  1998/10/20 08:06:53  pierre
     * several memory corruptions due to double freemem solved
     * several memory corruptions due to double freemem solved
       => never use p^.loc.location:=p^.left^.loc.location;
       => never use p^.loc.location:=p^.left^.loc.location;
     + finally I added now by default
     + finally I added now by default