You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some unit tests had to be removed, because they were only relevant when integers had bounded size.
I still haven't decided whether to merge this into main,
because parsing of integers is considerably slower than it was before.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,6 +49,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
49
49
- Since v7.0, holding down `Enter` in a multiline textbox (like the [tree viewer query box](/docs/README.md#remespath)) only adds one newline when the key is lifted.
50
50
- Maybe use pre-7.1 (dictionary-based rather than indicator-based) [selection remembering](/docs/README.md#working-with-selections) for Notepad++ 8.5.5 and earlier? Indicators are risky with those older NPP's because of the lack of `NPPM_ALLOCATEINDICATOR`.
51
51
52
+
## [9.0.0] - (UNRELEASED) YYYY-MM-DD
53
+
54
+
### Changed
55
+
56
+
1. Internally represent integers as BigIntegers instead of 64-bit integers, __meaning that JsonTools can correctly parse integers of unlimited size.__
/// how long we think the UTF8-encoded representations of a list of JNodes is in regex mode.<br></br>
1238
+
/// <paramref name="utf8Lengths"/> is populated with a list of how long we think the UTF8-encoded representations of a list of JNodes is in regex mode.<br></br>
1239
1239
/// if delim is '\x00' (not in CSV mode) and nodes are all strings, these are just the lengths of their UTF8 reprs.<br></br>
1240
1240
/// Otherwise, we do some special casing.<br></br>
1241
-
/// returns true unless there was some error (e.g., probably b/c of nodes was a JObject or JArray)
1241
+
/// Returns true unless there was some error (e.g., probably b/c of nodes was a JObject or JArray)<br></br>
1242
+
/// If false was returned, the utf8Lengths array is useless.
1242
1243
/// </summary>
1243
1244
/// <param name="nodes">THESE MUST BE ORDERED BY POSITION ASCENDING</param>
1244
1245
/// <param name="delim"></param>
@@ -1260,13 +1261,20 @@ public static bool LengthOfStringInRegexMode(JNode[] nodes, char delim, char quo
1260
1261
returnfalse;
1261
1262
}
1262
1263
IComparablevalue=jnode.value;
1264
+
1265
+
boolisNum=valueisdouble;
1266
+
doubled=isNum?(double)value:0;
1267
+
if(valueisBigIntegerbi)
1268
+
{
1269
+
isNum=true;
1270
+
d=(double)bi;
1271
+
}
1263
1272
1264
-
if(valueisBigInteger||valueisdouble)
1273
+
if(isNum)
1265
1274
{
1266
1275
// two equal numbers may have several valid representations
1267
1276
// we will try to find the length of the representation used in the document,
1268
1277
// but we will quit and use the JSON string length if our first attempt fails to find the length
0 commit comments