diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-06-15 10:48:52 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-06-15 10:48:52 +0200 |
| commit | b382324b23c5870d69cc83a9ffe1e7dafbc27754 (patch) | |
| tree | 7295c53b1f11cf82b1b4f5b2553748f98719d9b2 /libs/kstd/gdb/string.py | |
| parent | 93521bf359b4ce70923ed2a47fdd13ef93129f74 (diff) | |
| parent | fb0a56d575e8a28822c9bf9e426601acf09384ac (diff) | |
| download | kernel-b382324b23c5870d69cc83a9ffe1e7dafbc27754.tar.xz kernel-b382324b23c5870d69cc83a9ffe1e7dafbc27754.zip | |
Merge branch 'fmorgner/develop/kstd-string-rewrite' into 'develop'
Implement a fully-featured SSO enabled string
See merge request teachos/kernel!50
Diffstat (limited to 'libs/kstd/gdb/string.py')
| -rw-r--r-- | libs/kstd/gdb/string.py | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/libs/kstd/gdb/string.py b/libs/kstd/gdb/string.py index 73c22d64..b60cbe67 100644 --- a/libs/kstd/gdb/string.py +++ b/libs/kstd/gdb/string.py @@ -5,21 +5,17 @@ class KstdStringPrinter(gdb.ValuePrinter): def __init__(self, val): self.__val = val + self.__data = val["m_data"] + self.__length = val["m_length"] def to_string(self): - storage = self.__val["m_storage"] - storage_size = int(storage["m_size"]) - - if storage_size <= 0: + if int(self.__length) <= 0: return '""' - data_pointer = storage["m_data"] - string_length = storage_size - 1 - try: - if hasattr(data_pointer, "lazy_string"): - return data_pointer.lazy_string(encoding="utf-8", length=string_length) - return data_pointer.string(encoding="utf-8", length=string_length) + if hasattr(self.__data, "lazy_string"): + return self.__data.lazy_string(encoding="utf-8", length=self.__length) + return self.__data.string(encoding="utf-8", length=self.__length) except gdb.error: return "<unreadable memory>" |
