From c0fd3f8df76726c7dec274f821a50fb7ad2611d3 Mon Sep 17 00:00:00 2001 From: Riccardo Mottola Date: Tue, 6 Jul 2021 22:36:51 +0200 Subject: [PATCH] fix skipping of the first opening brace in key-value lists --- Modules/Debuggers/ProjectCenter/GDBWrapper.m | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Modules/Debuggers/ProjectCenter/GDBWrapper.m b/Modules/Debuggers/ProjectCenter/GDBWrapper.m index 5c5aace..d9f6a0b 100644 --- a/Modules/Debuggers/ProjectCenter/GDBWrapper.m +++ b/Modules/Debuggers/ProjectCenter/GDBWrapper.m @@ -188,7 +188,10 @@ NSLog(@"parseArray in: %@", [string substringFromIndex: [scanner scanLocation]]); mArray = [[NSMutableArray alloc] init]; - [scanner scanString: @"[" intoString: NULL]; + // we chomp up the first opening [ + if (![scanner isAtEnd]) + [scanner scanString: @"[" intoString: NULL]; + elementEnd = NO; value = nil; while([scanner isAtEnd] == NO && elementEnd == NO) @@ -199,7 +202,6 @@ } else if ([string characterAtIndex:[scanner scanLocation]] == '{') { - [scanner scanString: @"{" intoString: NULL]; value = [self parseKeyValue: scanner]; } else if ([string characterAtIndex:[scanner scanLocation]] == ']') @@ -239,6 +241,11 @@ value = nil; elementEnd = NO; + + // we chomp up the first opening { which may not be always present + if (![scanner isAtEnd]) + [scanner scanString: @"{" intoString: NULL]; + while([scanner isAtEnd] == NO && elementEnd == NO) { [scanner scanUpToString: @"=" intoString: &key];