Skip to content

Commit

Permalink
[Bugfix] Fix varArrayToNSArray and varObjectToNSDictionary handling o…
Browse files Browse the repository at this point in the history
…f nested arrays

var::isObject() returns true for array variants, so it must be tested after var::isArray()
  • Loading branch information
danra committed Sep 24, 2023
1 parent 7727050 commit c957d69
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions modules/juce_core/native/juce_ObjCHelpers_mac.h
Original file line number Diff line number Diff line change
Expand Up @@ -102,17 +102,17 @@ inline NSDictionary* varObjectToNSDictionary (const var& varToParse)

const var& valueVar = properties.getValueAt (i);

if (valueVar.isObject())
if (valueVar.isArray())
{
auto* valueDictionary = varObjectToNSDictionary (valueVar);
auto* valueArray = varArrayToNSArray (valueVar);

[dictionary setObject: valueDictionary forKey: keyString];
[dictionary setObject: valueArray forKey: keyString];
}
else if (valueVar.isArray())
else if (valueVar.isObject())
{
auto* valueArray = varArrayToNSArray (valueVar);
auto* valueDictionary = varObjectToNSDictionary (valueVar);

[dictionary setObject: valueArray forKey: keyString];
[dictionary setObject: valueDictionary forKey: keyString];
}
else
{
Expand All @@ -139,17 +139,17 @@ inline NSArray* varArrayToNSArray (const var& varToParse)

for (const auto& aVar : *varArray)
{
if (aVar.isObject())
if (aVar.isArray())
{
auto* valueDictionary = varObjectToNSDictionary (aVar);
auto* valueArray = varArrayToNSArray (aVar);

[array addObject: valueDictionary];
[array addObject: valueArray];
}
else if (aVar.isArray())
else if (aVar.isObject())
{
auto* valueArray = varArrayToNSArray (aVar);
auto* valueDictionary = varObjectToNSDictionary (aVar);

[array addObject: valueArray];
[array addObject: valueDictionary];
}
else
{
Expand Down

0 comments on commit c957d69

Please sign in to comment.