Parcourir la source

* fixed writing string constants > 255 characters

git-svn-id: branches/jvmbackend@18517 -
Jonas Maebe il y a 14 ans
Parent
commit
bd69e52451
1 fichiers modifiés avec 9 ajouts et 3 suppressions
  1. 9 3
      compiler/agjasmin.pas

+ 9 - 3
compiler/agjasmin.pas

@@ -55,7 +55,7 @@ interface
         function MethodDefinition(pd: tprocdef): string;
         function ConstValue(csym: tconstsym): ansistring;
         function ConstAssignmentValue(csym: tconstsym): ansistring;
-        function ConstDefinition(sym: tconstsym): string;
+        function ConstDefinition(sym: tconstsym): ansistring;
         function FieldDefinition(sym: tabstractvarsym): string;
         function InnerStructDef(obj: tabstractrecorddef): string;
 
@@ -771,7 +771,7 @@ implementation
       end;
 
 
-    function TJasminAssembler.ConstDefinition(sym: tconstsym): string;
+    function TJasminAssembler.ConstDefinition(sym: tconstsym): ansistring;
       begin
         result:=VisibilityToStr(sym.visibility);
         { formal constants are always class-level, not instance-level }
@@ -895,9 +895,15 @@ implementation
 
 
     procedure TJasminAssembler.WriteConstSym(sym: tconstsym);
+      var
+        a: ansistring;
       begin
         AsmWrite('.field ');
-        AsmWriteln(ConstDefinition(sym));
+        { make sure the ansistring is not freed before we've extracted the
+          pchar }
+        a:=ConstDefinition(sym);
+        AsmWritePChar(pchar(a));
+        AsmLn
       end;