Parcourir la source

* name nestedfpstruct types so they can no longer be confused with names of
nested classes by e.G. the bcel bytecode verification library

git-svn-id: branches/jvmbackend@18629 -

Jonas Maebe il y a 14 ans
Parent
commit
b50bd9534d
1 fichiers modifiés avec 3 ajouts et 2 suppressions
  1. 3 2
      compiler/symcreat.pas

+ 3 - 2
compiler/symcreat.pas

@@ -642,8 +642,9 @@ implementation
       old_symtablestack:=symtablestack;
       old_symtablestack:=symtablestack;
       symtablestack:=old_symtablestack.getcopyuntil(current_module.localsymtable);
       symtablestack:=old_symtablestack.getcopyuntil(current_module.localsymtable);
       { create struct to hold local variables and parameters that are
       { create struct to hold local variables and parameters that are
-        accessed from within nested routines }
-      nestedvarsst:=trecordsymtable.create(current_module.realmodulename^+'$$_fpc_nestedvars$'+tostr(pd.defid),current_settings.alignment.localalignmax);
+        accessed from within nested routines (start with extra dollar to prevent
+        the JVM from thinking this is a nested class in the unit) }
+      nestedvarsst:=trecordsymtable.create('$'+current_module.realmodulename^+'$$_fpc_nestedvars$'+tostr(pd.defid),current_settings.alignment.localalignmax);
       nestedvarsdef:=trecorddef.create(nestedvarsst.name^,nestedvarsst);
       nestedvarsdef:=trecorddef.create(nestedvarsst.name^,nestedvarsst);
 {$ifdef jvm}
 {$ifdef jvm}
       maybe_guarantee_record_typesym(nestedvarsdef,nestedvarsdef.owner);
       maybe_guarantee_record_typesym(nestedvarsdef,nestedvarsdef.owner);