|
@@ -154,21 +154,20 @@ void cJSON_Delete(cJSON *c)
|
|
|
}
|
|
|
|
|
|
/* Parse the input text to generate a number, and populate the result into item. */
|
|
|
-static const unsigned char *parse_number(cJSON *item, const unsigned char *num)
|
|
|
+static const unsigned char *parse_number(cJSON * const item, const unsigned char * const input)
|
|
|
{
|
|
|
double number = 0;
|
|
|
- unsigned char *endpointer = NULL;
|
|
|
+ unsigned char *after_end = NULL;
|
|
|
|
|
|
- if (num == NULL)
|
|
|
+ if (input == NULL)
|
|
|
{
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
- number = strtod((const char*)num, (char**)&endpointer);
|
|
|
- if ((num == endpointer) || (num == NULL))
|
|
|
+ number = strtod((const char*)input, (char**)&after_end);
|
|
|
+ if (input == after_end)
|
|
|
{
|
|
|
- /* parse_error */
|
|
|
- return NULL;
|
|
|
+ return NULL; /* parse_error */
|
|
|
}
|
|
|
|
|
|
item->valuedouble = number;
|
|
@@ -186,9 +185,10 @@ static const unsigned char *parse_number(cJSON *item, const unsigned char *num)
|
|
|
{
|
|
|
item->valueint = (int)number;
|
|
|
}
|
|
|
+
|
|
|
item->type = cJSON_Number;
|
|
|
|
|
|
- return endpointer;
|
|
|
+ return after_end;
|
|
|
}
|
|
|
|
|
|
/* don't ask me, but the original cJSON_SetNumberValue returns an integer or double */
|