Mesa (main): trace: Parse character data more efficiently.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 28 10:44:29 UTC 2022


Module: Mesa
Branch: main
Commit: 0296050c0eaaccdcea3cc03cd16a1a5da89dfaf1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0296050c0eaaccdcea3cc03cd16a1a5da89dfaf1

Author: Jose Fonseca <jfonseca at vmware.com>
Date:   Thu Jun 16 11:06:12 2022 +0100

trace: Parse character data more efficiently.

Reviewed-by: Brian Paul <brianp at vmware.com>
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17107>

---

 src/gallium/tools/trace/parse.py | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/gallium/tools/trace/parse.py b/src/gallium/tools/trace/parse.py
index 8afba7c51a4..ecd5424e6c1 100755
--- a/src/gallium/tools/trace/parse.py
+++ b/src/gallium/tools/trace/parse.py
@@ -72,7 +72,7 @@ class XmlTokenizer:
         self.skip_ws = skip_ws
         
         self.character_pos = 0, 0
-        self.character_data = ''
+        self.character_data = []
         
         self.parser = xpat.ParserCreate()
         self.parser.StartElementHandler  = self.handle_element_start
@@ -94,15 +94,16 @@ class XmlTokenizer:
     def handle_character_data(self, data):
         if not self.character_data:
             self.character_pos = self.pos()
-        self.character_data += data
+        self.character_data.append(data)
     
     def finish_character_data(self):
         if self.character_data:
-            if not self.skip_ws or not self.character_data.isspace(): 
+            character_data = ''.join(self.character_data)
+            if not self.skip_ws or not character_data.isspace(): 
                 line, column = self.character_pos
-                token = XmlToken(CHARACTER_DATA, self.character_data, None, line, column)
+                token = XmlToken(CHARACTER_DATA, character_data, None, line, column)
                 self.tokens.append(token)
-            self.character_data = ''
+            self.character_data = []
     
     def next(self):
         size = 16*1024



More information about the mesa-commit mailing list