diff options
| author | Maxime Coste <mawww@kakoune.org> | 2021-07-20 19:53:06 +1000 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2021-07-20 22:30:41 +1000 |
| commit | a4dd89f214e72005f551cd071d7642652c2922c5 (patch) | |
| tree | bbbd8e27bce9ade970e1082ac389a830ca7f1ede /gdb/kakoune.py | |
| parent | c643cd446712a9f9db05081786b5bc0daf2a96d7 (diff) | |
Improve code-generation for Strings
Make String::Data use trivial copy of the short/long union to avoid
unnecessary branching there, inline release() as it can be elided by
the compiler on moved-from Strings.
Diffstat (limited to 'gdb/kakoune.py')
| -rw-r--r-- | gdb/kakoune.py | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gdb/kakoune.py b/gdb/kakoune.py index 699163d2..11b57148 100644 --- a/gdb/kakoune.py +++ b/gdb/kakoune.py @@ -87,12 +87,12 @@ class String: def to_string(self): data = self.val["m_data"] - if (data["s"]["size"] & 1) != 1: - ptr = data["l"]["ptr"] - len = data["l"]["size"] + if (data["u"]["s"]["size"] & 1) != 1: + ptr = data["u"]["l"]["ptr"] + len = data["u"]["l"]["size"] else: - ptr = data["s"]["string"] - len = data["s"]["size"] >> 1 + ptr = data["u"]["s"]["string"] + len = data["u"]["s"]["size"] >> 1 return "\"%s\"" % (ptr.string("utf-8", "ignore", len)) |
