Skip to content

Commit

Permalink
Fixed a problem in the UDMF parser that could cause data loss. Fixes #…
Browse files Browse the repository at this point in the history
  • Loading branch information
biwa committed Sep 28, 2021
1 parent b0cfc8e commit ef18385
Showing 1 changed file with 0 additions and 19 deletions.
19 changes: 0 additions & 19 deletions Source/Core/IO/UniversalParser.cs
Expand Up @@ -318,16 +318,6 @@ private UniversalCollection InputStructure(ref string[] data, ref int pos, ref i
break;

default: // Everything else
if(!topLevel && pos == 0)
{
while(matches.ContainsKey(data[line]))
{
cs.Add(matches[data[line]].Key, matches[data[line]].Value);
line++;
pos = -1;
}
}

// Add character to key
if(pos != -1) key.Append(c);

Expand Down Expand Up @@ -400,7 +390,6 @@ private UniversalCollection InputStructure(ref string[] data, ref int pos, ref i
// Add it to struct
UniversalEntry entry = new UniversalEntry(key.ToString().Trim().ToLowerInvariant(), ival);
cs.Add(entry);
if(!matches.ContainsKey(data[line])) matches.Add(data[line], entry);
}
catch(OverflowException)
{
Expand All @@ -413,7 +402,6 @@ private UniversalCollection InputStructure(ref string[] data, ref int pos, ref i
// Add it to struct
UniversalEntry entry = new UniversalEntry(key.ToString().Trim().ToLowerInvariant(), lval);
cs.Add(entry);
if(!matches.ContainsKey(data[line])) matches.Add(data[line], entry);
}
catch(OverflowException)
{
Expand Down Expand Up @@ -449,7 +437,6 @@ private UniversalCollection InputStructure(ref string[] data, ref int pos, ref i
// Add it to struct
UniversalEntry entry = new UniversalEntry(key.ToString().Trim().ToLowerInvariant(), fval);
cs.Add(entry);
if(!matches.ContainsKey(data[line])) matches.Add(data[line], entry);
}
else
{
Expand All @@ -462,7 +449,6 @@ private UniversalCollection InputStructure(ref string[] data, ref int pos, ref i
// Add it to struct
UniversalEntry entry = new UniversalEntry(key.ToString().Trim().ToLowerInvariant(), ival);
cs.Add(entry);
if(!matches.ContainsKey(data[line])) matches.Add(data[line], entry);
}
catch(OverflowException)
{
Expand All @@ -475,7 +461,6 @@ private UniversalCollection InputStructure(ref string[] data, ref int pos, ref i
// Add it to struct
UniversalEntry entry = new UniversalEntry(key.ToString().Trim().ToLowerInvariant(), lval);
cs.Add(entry);
if(!matches.ContainsKey(data[line])) matches.Add(data[line], entry);
}
catch(OverflowException)
{
Expand Down Expand Up @@ -583,7 +568,6 @@ private UniversalCollection InputStructure(ref string[] data, ref int pos, ref i
// Add string to struct
UniversalEntry entry = new UniversalEntry(key.ToString().Trim().ToLowerInvariant(), val.ToString());
cs.Add(entry);
if(!matches.ContainsKey(data[line])) matches.Add(data[line], entry);

// End of assignment
pm = PM_ASSIGNMENT;
Expand Down Expand Up @@ -620,14 +604,12 @@ private UniversalCollection InputStructure(ref string[] data, ref int pos, ref i
// Add boolean true
UniversalEntry t = new UniversalEntry(key.ToString().Trim().ToLowerInvariant(), true);
cs.Add(t);
if(!matches.ContainsKey(data[line])) matches.Add(data[line], t);
break;

case "false":
// Add boolean false
UniversalEntry f = new UniversalEntry(key.ToString().Trim().ToLowerInvariant(), false);
cs.Add(f);
if(!matches.ContainsKey(data[line])) matches.Add(data[line], f);
break;

case "nan":
Expand All @@ -636,7 +618,6 @@ private UniversalCollection InputStructure(ref string[] data, ref int pos, ref i
// Do not add NaN, just drop it with a warning
// cs.Add(nan);
warnings.Add("UDMF map data line " + (line+1) + ": value of field " + key.ToString().Trim().ToLowerInvariant() + " has a value of NaN (not a number). Field is being dropped permanently.");
if (!matches.ContainsKey(data[line])) matches.Add(data[line], nan);
break;

default:
Expand Down

0 comments on commit ef18385

Please sign in to comment.