Browse Source

* removed daniels changes, because it broke all 'array of ...' code

peter 26 years ago
parent
commit
1d5226f856
2 changed files with 10 additions and 20 deletions
  1. 7 15
      compiler/symdef.inc
  2. 3 5
      compiler/types.pas

+ 7 - 15
compiler/symdef.inc

@@ -1790,16 +1790,11 @@
 
     function tarraydef.size : longint;
       begin
-        {Tarraydef.size may never be called for an open array!}
-        if highrange<lowrange then
-            internalerror($99080501);
-        If (highrange-lowrange = $7fffffff) or
-           (($7fffffff div elesize + elesize -1) < (highrange - lowrange)) Then
-          Begin
-            Message(sym_e_segment_too_large);
-            size := 4
-          End
-        Else size:=(highrange-lowrange+1)*elesize;
+         { dirty hack to overcome an overflow (PFV) }
+         if highrange=$7fffffff then
+          size:=$7fffffff
+         else
+          size:=(highrange-lowrange+1)*elesize;
       end;
 
 
@@ -3590,11 +3585,8 @@ Const local_symtable_index : longint = $8001;
 
 {
   $Log$
-  Revision 1.143  1999-08-06 11:13:30  peter
-    * fixed message which was wrong styled
-
-  Revision 1.142  1999/08/05 22:41:34  daniel
-  *** empty log message ***
+  Revision 1.144  1999-08-06 23:36:42  peter
+    * removed daniels changes, because it broke all 'array of ...' code
 
   Revision 1.141  1999/08/05 16:53:13  peter
     * V_Fatal=1, all other V_ are also increased

+ 3 - 5
compiler/types.pas

@@ -528,8 +528,7 @@ implementation
            (def^.deftype = formaldef) or
            { copy directly small records or arrays unless array of const ! PM }
            ((def^.deftype in [arraydef,recorddef]) and
-            ((Parraydef(def)^.highrange<Parraydef(def)^.lowrange) 
-             or (def^.size>4) or
+            ((def^.size>4) or
              ((def^.deftype=arraydef) and
               (parraydef(def)^.IsConstructor or
                parraydef(def)^.isArrayOfConst or
@@ -975,9 +974,8 @@ implementation
 end.
 {
   $Log$
-  Revision 1.80  1999-08-05 22:42:49  daniel
-  * Fixed potential bug for open arrays (Their size is not known at
-    compilation time).
+  Revision 1.81  1999-08-06 23:36:44  peter
+    * removed daniels changes, because it broke all 'array of ...' code
 
   Revision 1.79  1999/08/03 22:03:41  peter
     * moved bitmask constants to sets