From d7b8dec378e69cf7338b4ed40ddbcf2920e012fd Mon Sep 17 00:00:00 2001 From: MrBounty Date: Wed, 12 Feb 2025 16:39:18 +0100 Subject: [PATCH] Fix Start index still change if the member name is not right, otherwise run in loop forever --- src/dataStructure/relationMap.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dataStructure/relationMap.zig b/src/dataStructure/relationMap.zig index 79bd045..4a5c561 100644 --- a/src/dataStructure/relationMap.zig +++ b/src/dataStructure/relationMap.zig @@ -40,6 +40,7 @@ pub fn populate(self: *RelationMap, input: []const u8) ZipponError!void { while (std.mem.indexOf(u8, input[start..], "{<|")) |pos| { const pattern_start = start + pos + 3; const pattern_end = pattern_start + 16; + defer start = pattern_end + 3; const member_end = if (input[pattern_start - 4] == '[') pattern_start - 6 else pattern_start - 5; // This should be ": {<|" var member_start = member_end - 1; @@ -56,7 +57,6 @@ pub fn populate(self: *RelationMap, input: []const u8) ZipponError!void { @memcpy(uuid_bytes[0..], input[pattern_start..pattern_end]); self.map.put(uuid_bytes, JsonString{}) catch return ZipponError.MemoryError; - start = pattern_end + 3; } }