Browse Source

* don't give an internalerror when encountering an invalid type while
creating procdef's JVM mangled name, because this situation can also
arise in case there's a simple error in the source code

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

Jonas Maebe 14 years ago
parent
commit
00086c3dfc
1 changed files with 4 additions and 3 deletions
  1. 4 3
      compiler/symdef.pas

+ 4 - 3
compiler/symdef.pas

@@ -4531,8 +4531,8 @@ implementation
                   tmpresult:=tmpresult+'[';
                   tmpresult:=tmpresult+'[';
                 { Add the parameter type.  }
                 { Add the parameter type.  }
                 if not jvmaddencodedtype(vs.vardef,false,tmpresult,signature,founderror) then
                 if not jvmaddencodedtype(vs.vardef,false,tmpresult,signature,founderror) then
-                  { should be checked earlier on }
-                  internalerror(2010122604);
+                  { an internalerror here is also triggered in case of errors in the source code }
+                  tmpresult:='<error>';
               end;
               end;
           end;
           end;
         tmpresult:=tmpresult+')';
         tmpresult:=tmpresult+')';
@@ -4541,7 +4541,8 @@ implementation
         if (proctypeoption in [potype_constructor,potype_class_constructor]) then
         if (proctypeoption in [potype_constructor,potype_class_constructor]) then
           jvmaddencodedtype(voidtype,false,tmpresult,signature,founderror)
           jvmaddencodedtype(voidtype,false,tmpresult,signature,founderror)
         else if not jvmaddencodedtype(returndef,false,tmpresult,signature,founderror) then
         else if not jvmaddencodedtype(returndef,false,tmpresult,signature,founderror) then
-          internalerror(2010122610);
+          { an internalerror here is also triggered in case of errors in the source code }
+          tmpresult:='<error>';
         result:=tmpresult;
         result:=tmpresult;
       end;
       end;