Jelajahi Sumber

Fix incorrect compressed value in zip reader on non neko targets (#12163)

* Mark decompressed zip entries on all targets

Before, it would only be marked correctly on neko

* Add test case for zip file from neko zip writer
tobil4sk 3 bulan lalu
induk
melakukan
8e145aeaea

+ 2 - 3
std/haxe/zip/Reader.hx

@@ -158,8 +158,6 @@ class Reader {
 					if (r.done)
 						break;
 				}
-				e.data = out.getBytes();
-				e.compressed = false;
 				#else
 				var bufSize = 65536;
 				if (tmp == null)
@@ -172,8 +170,9 @@ class Reader {
 					if (n < bufSize)
 						break;
 				}
-				e.data = out.getBytes();
 				#end
+				e.data = out.getBytes();
+				e.compressed = false;
 			} else
 				e.data = i.read(e.dataSize);
 

+ 8 - 1
tests/misc/projects/Issue11686/Main.hx

@@ -14,5 +14,12 @@ class Main {
             trace("[", entry.fileName, entry.fileSize, entry.crc32, "]");
             trace("[", entry.data.toString(), "]");
         }
+        trace("Archive from neko haxe.zip.Writer");
+        var zipread = sys.io.File.read("./test_neko_zip_writer.zip", true);
+        var zipfile_entries = haxe.zip.Reader.readZip(zipread);
+        for (entry in zipfile_entries) {
+            trace("[", entry.fileName, entry.fileSize, entry.crc32, "]");
+            trace("[", entry.data.toString(), "]");
+        }
     }
-}
+}

+ 4 - 1
tests/misc/projects/Issue11686/compile.hxml.stdout

@@ -31,4 +31,7 @@ Main.hx:15: [,MORETEXTMORETEXTMORETEXTMORETEXT
 MORETEXTMORETEXTMORETEXTMORETEXT
 ,]
 Main.hx:14: [,test/salut.txt,4,-662733300,]
-Main.hx:15: [,test,]
+Main.hx:15: [,test,]
+Main.hx:17: Archive from neko haxe.zip.Writer
+Main.hx:21: [,test.txt,12,62177901,]
+Main.hx:22: [,hello world!,]

TEMPAT SAMPAH
tests/misc/projects/Issue11686/test_neko_zip_writer.zip