Skip to content

Commit 74684fa

Browse files
committed
Merge branch 'devlead-feeature/invariant' into develop
* devlead-feeature/invariant: Changed to use invariant number parsing
2 parents abcfc28 + b69c828 commit 74684fa

1 file changed

Lines changed: 17 additions & 16 deletions

File tree

src/LitJson/JsonReader.cs

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
using System;
1313
using System.Collections.Generic;
14+
using System.Globalization;
1415
using System.IO;
1516
using System.Text;
1617

@@ -142,16 +143,16 @@ private static IDictionary<int, IDictionary<int, int[]>> PopulateParseTable ()
142143
{
143144
// See section A.2. of the manual for details
144145
IDictionary<int, IDictionary<int, int[]>> parse_table = new Dictionary<int, IDictionary<int, int[]>> ();
145-
146+
146147
TableAddRow (parse_table, ParserToken.Array);
147148
TableAddCol (parse_table, ParserToken.Array, '[',
148149
'[',
149150
(int) ParserToken.ArrayPrime);
150-
151+
151152
TableAddRow (parse_table, ParserToken.ArrayPrime);
152153
TableAddCol (parse_table, ParserToken.ArrayPrime, '"',
153154
(int) ParserToken.Value,
154-
155+
155156
(int) ParserToken.ValueRest,
156157
']');
157158
TableAddCol (parse_table, ParserToken.ArrayPrime, '[',
@@ -180,46 +181,46 @@ private static IDictionary<int, IDictionary<int, int[]>> PopulateParseTable ()
180181
(int) ParserToken.Value,
181182
(int) ParserToken.ValueRest,
182183
']');
183-
184+
184185
TableAddRow (parse_table, ParserToken.Object);
185186
TableAddCol (parse_table, ParserToken.Object, '{',
186187
'{',
187188
(int) ParserToken.ObjectPrime);
188-
189+
189190
TableAddRow (parse_table, ParserToken.ObjectPrime);
190191
TableAddCol (parse_table, ParserToken.ObjectPrime, '"',
191192
(int) ParserToken.Pair,
192193
(int) ParserToken.PairRest,
193194
'}');
194195
TableAddCol (parse_table, ParserToken.ObjectPrime, '}',
195196
'}');
196-
197+
197198
TableAddRow (parse_table, ParserToken.Pair);
198199
TableAddCol (parse_table, ParserToken.Pair, '"',
199200
(int) ParserToken.String,
200201
':',
201202
(int) ParserToken.Value);
202-
203+
203204
TableAddRow (parse_table, ParserToken.PairRest);
204205
TableAddCol (parse_table, ParserToken.PairRest, ',',
205206
',',
206207
(int) ParserToken.Pair,
207208
(int) ParserToken.PairRest);
208209
TableAddCol (parse_table, ParserToken.PairRest, '}',
209210
(int) ParserToken.Epsilon);
210-
211+
211212
TableAddRow (parse_table, ParserToken.String);
212213
TableAddCol (parse_table, ParserToken.String, '"',
213214
'"',
214215
(int) ParserToken.CharSeq,
215216
'"');
216-
217+
217218
TableAddRow (parse_table, ParserToken.Text);
218219
TableAddCol (parse_table, ParserToken.Text, '[',
219220
(int) ParserToken.Array);
220221
TableAddCol (parse_table, ParserToken.Text, '{',
221222
(int) ParserToken.Object);
222-
223+
223224
TableAddRow (parse_table, ParserToken.Value);
224225
TableAddCol (parse_table, ParserToken.Value, '"',
225226
(int) ParserToken.String);
@@ -235,15 +236,15 @@ private static IDictionary<int, IDictionary<int, int[]>> PopulateParseTable ()
235236
(int) ParserToken.False);
236237
TableAddCol (parse_table, ParserToken.Value, (int) ParserToken.Null,
237238
(int) ParserToken.Null);
238-
239+
239240
TableAddRow (parse_table, ParserToken.ValueRest);
240241
TableAddCol (parse_table, ParserToken.ValueRest, ',',
241242
',',
242243
(int) ParserToken.Value,
243244
(int) ParserToken.ValueRest);
244245
TableAddCol (parse_table, ParserToken.ValueRest, ']',
245246
(int) ParserToken.Epsilon);
246-
247+
247248
return parse_table;
248249
}
249250

@@ -268,7 +269,7 @@ private void ProcessNumber (string number)
268269
number.IndexOf ('E') != -1) {
269270

270271
double n_double;
271-
if (Double.TryParse (number, out n_double)) {
272+
if (double.TryParse (number, NumberStyles.Any, CultureInfo.InvariantCulture, out n_double)) {
272273
token = JsonToken.Double;
273274
token_value = n_double;
274275

@@ -277,23 +278,23 @@ private void ProcessNumber (string number)
277278
}
278279

279280
int n_int32;
280-
if (Int32.TryParse (number, out n_int32)) {
281+
if (int.TryParse (number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_int32)) {
281282
token = JsonToken.Int;
282283
token_value = n_int32;
283284

284285
return;
285286
}
286287

287288
long n_int64;
288-
if (Int64.TryParse (number, out n_int64)) {
289+
if (long.TryParse (number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_int64)) {
289290
token = JsonToken.Long;
290291
token_value = n_int64;
291292

292293
return;
293294
}
294295

295296
ulong n_uint64;
296-
if (UInt64.TryParse(number, out n_uint64))
297+
if (ulong.TryParse(number, NumberStyles.Integer, CultureInfo.InvariantCulture, out n_uint64))
297298
{
298299
token = JsonToken.Long;
299300
token_value = n_uint64;

0 commit comments

Comments
 (0)