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