From 14323482982a09d095f1540be3b4940669078e02 Mon Sep 17 00:00:00 2001 From: BahaBulle Date: Tue, 17 May 2016 13:17:05 +0200 Subject: [PATCH] Fix bug with text length when compiling java class --- Hack.Xenosaga/Process/JavaClass.cs | 6 ++++-- Hack.Xenosaga/Process/Scripts.cs | 9 +++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Hack.Xenosaga/Process/JavaClass.cs b/Hack.Xenosaga/Process/JavaClass.cs index ef14a14..8f88352 100644 --- a/Hack.Xenosaga/Process/JavaClass.cs +++ b/Hack.Xenosaga/Process/JavaClass.cs @@ -530,7 +530,9 @@ namespace Hack.Xenosaga.Process { bw.Write(IntToByteArrayBE(attribut.Value.attribute_name_index, 2), 0, 2); bw.Write(IntToByteArrayBE((int)attribut.Value.attribute_length, 4), 0, 4); - bw.Write(attribut.Value.info); + + if (attribut.Value.info != null) + bw.Write(attribut.Value.info); } } } @@ -1745,8 +1747,8 @@ namespace Hack.Xenosaga.Process CONSTANT_Utf8_info stUTF8 = (CONSTANT_Utf8_info)constant_pool[id]; stUTF8.bytes = new byte[bytes.Length]; + stUTF8.length = (short)(bytes.Length); Array.Copy(bytes, 0, stUTF8.bytes, 0, bytes.Length); - //stUTF8.bytes[bytes.Length] = 0; } } } diff --git a/Hack.Xenosaga/Process/Scripts.cs b/Hack.Xenosaga/Process/Scripts.cs index a99b8c9..eb29ad7 100644 --- a/Hack.Xenosaga/Process/Scripts.cs +++ b/Hack.Xenosaga/Process/Scripts.cs @@ -264,7 +264,7 @@ namespace Hack.Xenosaga.Process { try { - Trace.WriteLine(string.Format("Insert {0} : ", pathName)); + Trace.Write(string.Format("Insert {0} : ", pathName)); using (BinaryReader br = new BinaryReader(File.Open(pathName, FileMode.Open))) { @@ -323,9 +323,14 @@ namespace Hack.Xenosaga.Process foreach (KeyValuePair bytes in dictBytes) { pt = string.Format("{0:X4}", bytes.Key); - + if (dictBytes.ContainsKey(Convert.ToInt32(pt, 16)) && list[pt] != null) + { + if (list[pt].Length >= 255) + throw new Exception("Line too long (254 characters max)!"); + jc.setConstantsBytes(bytes.Key, list[pt]); + } } }