Sfoglia il codice sorgente

* fixed derefdata corruption in case a unit is re-resolved and it has a
localsymtable with symbols/defs that need to be deref'ed

git-svn-id: trunk@14357 -

Jonas Maebe 15 anni fa
parent
commit
c3eb47293a
1 ha cambiato i file con 5 aggiunte e 1 eliminazioni
  1. 5 1
      compiler/fppu.pas

+ 5 - 1
compiler/fppu.pas

@@ -1094,7 +1094,11 @@ uses
            begin
              tstoredsymtable(globalsymtable).buildderef;
              derefdataintflen:=derefdata.size;
-           end;
+           end
+         else
+           { the unit may have been re-resolved, in which case the current
+             position in derefdata is not necessarily at the end }
+            derefdata.seek(derefdata.size);
          tstoredsymtable(globalsymtable).buildderefimpl;
          if (flags and uf_local_symtable)<>0 then
            begin