chiark / gitweb /
doxygen: simplify search (de)serialization code.
authorVladimír Vondruš <mosra@centrum.cz>
Sun, 4 Feb 2018 22:26:55 +0000 (23:26 +0100)
committerVladimír Vondruš <mosra@centrum.cz>
Sun, 4 Feb 2018 22:56:27 +0000 (23:56 +0100)
doxygen/dox2html5.py
doxygen/test/test_search.py

index 32fee0c93fd5f26eb754e4f2253b3fe5454d310e..ab9a7b32e1911f89ed20fc37d548cce563b3ff3f 100755 (executable)
@@ -178,8 +178,7 @@ class ResultMap:
     #
     offset_struct = struct.Struct('<I')
     flags_struct = struct.Struct('<B')
-    prefix_struct = struct.Struct('<H')
-    prefix_length_struct = struct.Struct('<B')
+    prefix_struct = struct.Struct('<HB')
     suffix_length_struct = struct.Struct('<B')
 
     def __init__(self):
@@ -302,8 +301,7 @@ class ResultMap:
         # Write the entries themselves
         for e in self.entries:
             if e.flags & ResultFlag.HAS_PREFIX:
-                output += self.prefix_struct.pack(e.prefix)
-                output += self.prefix_length_struct.pack(e.prefix_length)
+                output += self.prefix_struct.pack(e.prefix, e.prefix_length)
             if e.flags & ResultFlag.HAS_SUFFIX:
                 output += self.suffix_length_struct.pack(e.suffix_length)
             output += e.name.encode('utf-8')
index f2837596cdfc665002f59ee5c70d827dcd40c5af..7a43c346046623f19c46786c69f0ac7b96bf7dbc 100755 (executable)
@@ -133,11 +133,11 @@ def pretty_print_map(serialized: bytes, colors=False):
         flags = ResultFlag(ResultMap.flags_struct.unpack_from(serialized, i*4 + 3)[0])
         extra = []
         if flags & ResultFlag.HAS_PREFIX:
-            extra += ['prefix={}[:{}]'.format(ResultMap.prefix_struct.unpack_from(serialized, offset)[0] & 0x00ffffff, ResultMap.prefix_length_struct.unpack_from(serialized, offset + 2)[0])]
-            offset += 3
+            extra += ['prefix={}[:{}]'.format(*ResultMap.prefix_struct.unpack_from(serialized, offset))]
+            offset += ResultMap.prefix_struct.size
         if flags & ResultFlag.HAS_SUFFIX:
             extra += ['suffix_length={}'.format(ResultMap.suffix_length_struct.unpack_from(serialized, offset)[0])]
-            offset += 1
+            offset += ResultMap.suffix_length_struct.size
         if flags & ResultFlag.DEPRECATED:
             extra += ['deprecated']
         if flags & ResultFlag.DELETED: