Skip to content

Commit c9f3ae1

Browse files
committed
[SharpGen] Correctly handle literals in Guids
1 parent 38079cb commit c9f3ae1

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

Source/Tools/SharpGen/Parser/CppParser.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
using System.Linq;
2424
using System.Reflection;
2525
using System.Text;
26+
using System.Text.RegularExpressions;
2627
using System.Xml.Linq;
2728
using SharpGen;
2829
using SharpGen.Logging;
@@ -1187,7 +1188,9 @@ private CppElement ParseVariable(XElement xElement)
11871188
guidInitText = guidInitText.Replace("{", "");
11881189
guidInitText = guidInitText.TrimEnd('}');
11891190
guidInitText = guidInitText.Replace("u", "");
1191+
guidInitText = guidInitText.Replace("U", "");
11901192
guidInitText = guidInitText.Replace("l", "");
1193+
guidInitText = guidInitText.Replace("L", "");
11911194
guidInitText = guidInitText.Replace(" ", "");
11921195

11931196
string[] guidElements = guidInitText.Split(',');
@@ -1199,8 +1202,11 @@ private CppElement ParseVariable(XElement xElement)
11991202
for (int i = 0; i < guidElements.Length; i++)
12001203
{
12011204
var guidElement = guidElements[i];
1202-
if (!int.TryParse(guidElement, out values[i]))
1205+
long value;
1206+
if (!long.TryParse(guidElement, out value))
12031207
return null;
1208+
1209+
values[i] = unchecked((int)value);
12041210
}
12051211

12061212
return new Guid(values[0], (short)values[1], (short)values[2], (byte)values[3], (byte)values[4], (byte)values[5], (byte)values[6], (byte)values[7],

0 commit comments

Comments
 (0)