1
0
mirror of https://github.com/stedolan/jq.git synced 2024-05-11 05:55:39 +00:00

Fix iterration problem for non decimal string

When the string transformation to number failed, all following
transformation failed too.

This happend because status in decNumberFromString function is
updated just in error case. Reusing the DEC_CONTEXT that failed
before results into error even if the string is valid number.
This commit is contained in:
Tomas Halman
2022-01-20 10:15:50 +01:00
committed by Nico Williams
parent 174db0f935
commit c4d39c4d22
2 changed files with 6 additions and 0 deletions

View File

@@ -612,6 +612,7 @@ static jv jvp_literal_number_new(const char * literal) {
n->refcnt = JV_REFCNT_INIT;
n->literal_data = NULL;
decContext *ctx = DEC_CONTEXT();
decContextClearStatus(ctx, DEC_Conversion_syntax);
decNumberFromString(&n->num_decimal, literal, ctx);
n->num_double = NAN;

View File

@@ -841,3 +841,8 @@ true
{"foo": 42}
{"foo": 43}
.[]|tonumber?
["1", "hello", "3", 4]
1
3
4