mirror of
https://github.com/ultrajson/ultrajson.git
synced 2024-06-07 23:46:10 +02:00
Fixed all compilers warnings on Level4 MSVC++
This commit is contained in:
parent
d5615fedf8
commit
a1747b95c6
|
@ -90,19 +90,19 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_numeric ( struct DecoderState *ds)
|
|||
double expValue;
|
||||
char *offset = ds->start;
|
||||
|
||||
JSUINT64 overflowLimit = LLONG_MAX;
|
||||
JSUINT64 overflowLimit = (JSUINT64) LLONG_MAX;
|
||||
|
||||
if (*(offset) == '-')
|
||||
{
|
||||
offset ++;
|
||||
intNeg = -1;
|
||||
overflowLimit = LLONG_MIN;
|
||||
overflowLimit = (JSUINT64) LLONG_MIN;
|
||||
}
|
||||
|
||||
// Scan integer part
|
||||
intValue = 0;
|
||||
|
||||
while (1)
|
||||
for (;;)
|
||||
{
|
||||
chr = (int) (unsigned char) *(offset);
|
||||
|
||||
|
@ -125,10 +125,10 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_numeric ( struct DecoderState *ds)
|
|||
#else
|
||||
intValue = intValue * 10ULL + (JSLONG) (chr - 48);
|
||||
|
||||
if (intValue > overflowLimit)
|
||||
{
|
||||
return SetError(ds, -1, overflowLimit == LLONG_MAX ? "Value is too big" : "Value is too small");
|
||||
}
|
||||
if (intValue > overflowLimit)
|
||||
{
|
||||
return SetError(ds, -1, intNeg == -1 ? "Value is too small" : "Value is too big");
|
||||
}
|
||||
#endif
|
||||
|
||||
offset ++;
|
||||
|
@ -188,7 +188,7 @@ DECODE_FRACTION:
|
|||
|
||||
// Scan fraction part
|
||||
frcValue = 0.0;
|
||||
while (1)
|
||||
for (;;)
|
||||
{
|
||||
chr = (int) (unsigned char) *(offset);
|
||||
|
||||
|
@ -252,7 +252,7 @@ DECODE_EXPONENT:
|
|||
|
||||
expValue = 0.0;
|
||||
|
||||
while (1)
|
||||
for (;;)
|
||||
{
|
||||
chr = (int) (unsigned char) *(offset);
|
||||
|
||||
|
@ -362,7 +362,7 @@ FASTCALL_ATTR void FASTCALL_MSVC SkipWhitespace(struct DecoderState *ds)
|
|||
{
|
||||
char *offset = ds->start;
|
||||
|
||||
while (1)
|
||||
for (;;)
|
||||
{
|
||||
switch (*offset)
|
||||
{
|
||||
|
@ -424,7 +424,7 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_string ( struct DecoderState *ds)
|
|||
ds->lastType = JT_INVALID;
|
||||
ds->start ++;
|
||||
|
||||
if ( (ds->end - ds->start) > escLen)
|
||||
if ( (size_t) (ds->end - ds->start) > escLen)
|
||||
{
|
||||
size_t newSize = (ds->end - ds->start);
|
||||
|
||||
|
@ -452,9 +452,9 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_string ( struct DecoderState *ds)
|
|||
}
|
||||
|
||||
escOffset = ds->escStart;
|
||||
inputOffset = ds->start;
|
||||
inputOffset = (JSUINT8 *) ds->start;
|
||||
|
||||
while(1)
|
||||
for (;;)
|
||||
{
|
||||
switch (g_decoderLookup[(JSUINT8)(*inputOffset)])
|
||||
{
|
||||
|
@ -631,8 +631,8 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_string ( struct DecoderState *ds)
|
|||
if (ucs >= 0x10000)
|
||||
{
|
||||
ucs -= 0x10000;
|
||||
*(escOffset++) = (ucs >> 10) + 0xd800;
|
||||
*(escOffset++) = (ucs & 0x3ff) + 0xdc00;
|
||||
*(escOffset++) = (wchar_t) (ucs >> 10) + 0xd800;
|
||||
*(escOffset++) = (wchar_t) (ucs & 0x3ff) + 0xdc00;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -657,7 +657,7 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_array( struct DecoderState *ds)
|
|||
ds->start ++;
|
||||
|
||||
|
||||
while (1)//(*ds->start) != '\0')
|
||||
for (;;)
|
||||
{
|
||||
SkipWhitespace(ds);
|
||||
|
||||
|
@ -680,11 +680,7 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_array( struct DecoderState *ds)
|
|||
default:
|
||||
ds->dec->releaseObject(newObj);
|
||||
return SetError(ds, -1, "Unexpected character in found when decoding array value");
|
||||
}
|
||||
|
||||
|
||||
ds->dec->releaseObject(newObj);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
ds->dec->arrayAddItem (newObj, itemValue);
|
||||
|
@ -706,9 +702,6 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_array( struct DecoderState *ds)
|
|||
|
||||
len ++;
|
||||
}
|
||||
|
||||
ds->dec->releaseObject(newObj);
|
||||
return SetError(ds, -1, "Unmatched ']' when decoding 'array'");
|
||||
}
|
||||
|
||||
|
||||
|
@ -721,7 +714,7 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_object( struct DecoderState *ds)
|
|||
|
||||
ds->start ++;
|
||||
|
||||
while (1)
|
||||
for (;;)
|
||||
{
|
||||
SkipWhitespace(ds);
|
||||
|
||||
|
@ -784,14 +777,11 @@ FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_object( struct DecoderState *ds)
|
|||
return SetError(ds, -1, "Unexpected character in found when decoding object value");
|
||||
}
|
||||
}
|
||||
|
||||
ds->dec->releaseObject(newObj);
|
||||
return SetError(ds, -1, "Unmatched '}' when decoding object");
|
||||
}
|
||||
|
||||
FASTCALL_ATTR JSOBJ FASTCALL_MSVC decode_any(struct DecoderState *ds)
|
||||
{
|
||||
while (1)
|
||||
for (;;)
|
||||
{
|
||||
switch (*ds->start)
|
||||
{
|
||||
|
|
|
@ -51,7 +51,6 @@ static const double g_pow10[] = {1, 10, 100, 1000, 10000, 100000, 1000000, 10000
|
|||
static const char g_hexChars[] = "0123456789abcdef";
|
||||
static const char g_escapeChars[] = "0123456789\\b\\t\\n\\f\\r\\\"\\\\\\/";
|
||||
|
||||
|
||||
/*
|
||||
FIXME: While this is fine dandy and working it's a magic value mess which probably only the author understands.
|
||||
Needs a cleanup and more documentation */
|
||||
|
@ -132,11 +131,11 @@ FASTCALL_ATTR INLINE_PREFIX void FASTCALL_MSVC Buffer_AppendShortHexUnchecked (c
|
|||
*(outputOffset++) = g_hexChars[(value & 0x000f) >> 0];
|
||||
}
|
||||
|
||||
int Buffer_EscapeStringUnvalidated (JSOBJ obj, JSONObjectEncoder *enc, const char *io, const char *end)
|
||||
int Buffer_EscapeStringUnvalidated (JSONObjectEncoder *enc, const char *io, const char *end)
|
||||
{
|
||||
char *of = (char *) enc->offset;
|
||||
|
||||
while (1)
|
||||
for (;;)
|
||||
{
|
||||
switch (*io)
|
||||
{
|
||||
|
@ -205,25 +204,14 @@ int Buffer_EscapeStringUnvalidated (JSOBJ obj, JSONObjectEncoder *enc, const cha
|
|||
|
||||
io++;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
FIXME:
|
||||
This code only works with Little and Big Endian
|
||||
|
||||
FIXME: The JSON spec says escape "/" but non of the others do and we don't
|
||||
want to be left alone doing it so we don't :)
|
||||
|
||||
*/
|
||||
int Buffer_EscapeStringValidated (JSOBJ obj, JSONObjectEncoder *enc, const char *io, const char *end)
|
||||
{
|
||||
JSUTF32 ucs;
|
||||
char *of = (char *) enc->offset;
|
||||
|
||||
while (1)
|
||||
for (;;)
|
||||
{
|
||||
|
||||
//JSUINT8 chr = (unsigned char) *io;
|
||||
|
@ -383,6 +371,9 @@ int Buffer_EscapeStringValidated (JSOBJ obj, JSONObjectEncoder *enc, const char
|
|||
*(of++) = *( (char *) (g_escapeChars + utflen + 1));
|
||||
io ++;
|
||||
continue;
|
||||
|
||||
// This can never happen, it's here to make L4 VC++ happy
|
||||
default: ucs = 0; break;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -392,28 +383,26 @@ int Buffer_EscapeStringValidated (JSOBJ obj, JSONObjectEncoder *enc, const char
|
|||
ucs -= 0x10000;
|
||||
*(of++) = '\\';
|
||||
*(of++) = 'u';
|
||||
Buffer_AppendShortHexUnchecked(of, (ucs >> 10) + 0xd800);
|
||||
Buffer_AppendShortHexUnchecked(of, (unsigned short) (ucs >> 10) + 0xd800);
|
||||
of += 4;
|
||||
|
||||
*(of++) = '\\';
|
||||
*(of++) = 'u';
|
||||
Buffer_AppendShortHexUnchecked(of, (ucs & 0x3ff) + 0xdc00);
|
||||
Buffer_AppendShortHexUnchecked(of, (unsigned short) (ucs & 0x3ff) + 0xdc00);
|
||||
of += 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
*(of++) = '\\';
|
||||
*(of++) = 'u';
|
||||
Buffer_AppendShortHexUnchecked(of, ucs);
|
||||
Buffer_AppendShortHexUnchecked(of, (unsigned short) ucs);
|
||||
of += 4;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#define Buffer_Reserve(__enc, __len) \
|
||||
if ((__enc)->end - (__enc)->offset < (__len)) \
|
||||
if ( (size_t) ((__enc)->end - (__enc)->offset) < (size_t) (__len)) \
|
||||
{ \
|
||||
Buffer_Realloc((__enc), (__len));\
|
||||
} \
|
||||
|
@ -529,7 +518,11 @@ int Buffer_AppendDoubleUnchecked(JSOBJ obj, JSONObjectEncoder *enc, double value
|
|||
*/
|
||||
if (value > thres_max)
|
||||
{
|
||||
enc->offset += sprintf(str, "%.15e", neg ? -value : value);
|
||||
#ifdef _WIN32
|
||||
enc->offset += sprintf_s(str, enc->end - enc->offset, "%.15e", neg ? -value : value);
|
||||
#else
|
||||
enc->offset += snprintf(str, enc->end - enc->offset, "%.15e", neg ? -value : value);
|
||||
#endif
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -659,7 +652,7 @@ void encode(JSOBJ obj, JSONObjectEncoder *enc, const char *name, size_t cbName)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (!Buffer_EscapeStringUnvalidated(obj, enc, name, name + cbName))
|
||||
if (!Buffer_EscapeStringUnvalidated(enc, name, name + cbName))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -815,7 +808,7 @@ void encode(JSOBJ obj, JSONObjectEncoder *enc, const char *name, size_t cbName)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (!Buffer_EscapeStringUnvalidated(obj, enc, value, value + szlen))
|
||||
if (!Buffer_EscapeStringUnvalidated(enc, value, value + szlen))
|
||||
{
|
||||
enc->endTypeContext(obj, &tc);
|
||||
enc->level --;
|
||||
|
|
Loading…
Reference in New Issue