In both Python 2 and 3, zlib.Compress.compress() takes a byte string,
and returns a byte string as well.

In Python 2, the script was working because:

1. string literalls were byte strings;
2. opening a file in unicode mode, reading from it, then passing the
   unicode string to compress() would automatically encode to a byte
   string;

On Python 3, the above two points are not valid any more, so:

1. zlib.Compress.compress() refuses the passed unicode string;
2. compressed_data, defined as an empty unicode string literal, can't be
   concatenated with the byte string returned by compress();

This commit fixes this by explicitly using byte strings where
appropriate, so that the script works on both Python 2 and 3.

Signed-off-by: Mathieu Bridon <boche...@daitauha.fr>
---
 src/intel/genxml/gen_zipped_file.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/intel/genxml/gen_zipped_file.py 
b/src/intel/genxml/gen_zipped_file.py
index af2008bea0..6d8daf4d69 100644
--- a/src/intel/genxml/gen_zipped_file.py
+++ b/src/intel/genxml/gen_zipped_file.py
@@ -42,10 +42,10 @@ def main():
     print("} genxml_files_table[] = {")
 
     xml_offset = 0
-    compressed_data = ''
+    compressed_data = b''
     for i in range(1, len(sys.argv)):
         filename = sys.argv[i]
-        xml = open(filename).read()
+        xml = open(filename, "rb").read()
         xml_length = len(xml)
         root = et.fromstring(xml)
 
-- 
2.17.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to