diff options
author | Jose Fonseca <jfonseca@vmware.com> | 2022-06-16 11:06:12 +0100 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2022-06-28 09:54:29 +0000 |
commit | 0296050c0eaaccdcea3cc03cd16a1a5da89dfaf1 (patch) | |
tree | adadc6b833f80c21e0fee02216946f2eda54e51c | |
parent | 69fbcdb568ab029ae10c10b919ad9b45f0a1f245 (diff) |
trace: Parse character data more efficiently.
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17107>
-rwxr-xr-x | src/gallium/tools/trace/parse.py | 11 |
1 files 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 |