Mesa (master): python: Do not mix bytes and unicode strings

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Aug 9 23:50:36 UTC 2018


Module: Mesa
Branch: master
Commit: 14f1ab998fcdcd8fec43c3da8ef03af4af2d3966
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=14f1ab998fcdcd8fec43c3da8ef03af4af2d3966

Author: Mathieu Bridon <bochecha at daitauha.fr>
Date:   Thu Aug  9 10:27:21 2018 +0200

python: Do not mix bytes and unicode strings

Mixing the two is a long-standing recipe for errors in Python 2, so much
so that Python 3 now completely separates them.

This commit stops treating both as if they were the same, and in the
process makes the script compatible with both Python 2 and 3.

Signed-off-by: Mathieu Bridon <bochecha at daitauha.fr>
Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>
Reviewed-by: Dylan Baker <dylan at pnwbakers.com>

---

 src/compiler/nir/nir_algebraic.py | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir_algebraic.py b/src/compiler/nir/nir_algebraic.py
index a84c41a78f..5baeea88af 100644
--- a/src/compiler/nir/nir_algebraic.py
+++ b/src/compiler/nir/nir_algebraic.py
@@ -35,6 +35,12 @@ import traceback
 
 from nir_opcodes import opcodes
 
+if sys.version_info < (3, 0):
+    string_type = unicode
+
+else:
+    string_type = str
+
 _type_re = re.compile(r"(?P<type>int|uint|bool|float)?(?P<bits>\d+)?")
 
 def type_bits(type_str):
@@ -66,11 +72,14 @@ class VarSet(object):
 class Value(object):
    @staticmethod
    def create(val, name_base, varset):
+      if isinstance(val, bytes):
+         val = val.decode('utf-8')
+
       if isinstance(val, tuple):
          return Expression(val, name_base, varset)
       elif isinstance(val, Expression):
          return val
-      elif isinstance(val, (str, unicode)):
+      elif isinstance(val, string_type):
          return Variable(val, name_base, varset)
       elif isinstance(val, (bool, int, long, float)):
          return Constant(val, name_base)




More information about the mesa-commit mailing list