This optimisation technique results in non insignificant speed boost on some old x86 architectures. Novadays, we should rely on compiler optimisation.
This commit is contained in:
parent
81325b5059
commit
2d99881240
@ -11,21 +11,6 @@ sxu32 SyBinHash(const void *pSrc, sxu32 nLen) {
|
|||||||
}
|
}
|
||||||
nH = nH * 33 + zIn[0] ;
|
nH = nH * 33 + zIn[0] ;
|
||||||
zIn++;
|
zIn++;
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nH = nH * 33 + zIn[0] ;
|
|
||||||
zIn++;
|
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nH = nH * 33 + zIn[0] ;
|
|
||||||
zIn++;
|
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nH = nH * 33 + zIn[0] ;
|
|
||||||
zIn++;
|
|
||||||
}
|
}
|
||||||
return nH;
|
return nH;
|
||||||
}
|
}
|
||||||
@ -40,21 +25,6 @@ PH7_PRIVATE sxu32 SyStrHash(const void *pSrc, sxu32 nLen) {
|
|||||||
}
|
}
|
||||||
nH = nH * 33 + SyToLower(zIn[0]);
|
nH = nH * 33 + SyToLower(zIn[0]);
|
||||||
zIn++;
|
zIn++;
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nH = nH * 33 + SyToLower(zIn[0]);
|
|
||||||
zIn++;
|
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nH = nH * 33 + SyToLower(zIn[0]);
|
|
||||||
zIn++;
|
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nH = nH * 33 + SyToLower(zIn[0]);
|
|
||||||
zIn++;
|
|
||||||
}
|
}
|
||||||
return nH;
|
return nH;
|
||||||
}
|
}
|
||||||
@ -705,21 +675,6 @@ static sxu32 SyCrc32Update(sxu32 crc32, const void *pSrc, sxu32 nLen) {
|
|||||||
}
|
}
|
||||||
CRC32C(crc32, zIn[0]);
|
CRC32C(crc32, zIn[0]);
|
||||||
zIn++;
|
zIn++;
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
CRC32C(crc32, zIn[0]);
|
|
||||||
zIn++;
|
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
CRC32C(crc32, zIn[0]);
|
|
||||||
zIn++;
|
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
CRC32C(crc32, zIn[0]);
|
|
||||||
zIn++;
|
|
||||||
}
|
}
|
||||||
return crc32;
|
return crc32;
|
||||||
}
|
}
|
||||||
|
@ -595,31 +595,6 @@ static sxi32 MemBackendRelease(SyMemBackend *pBackend) {
|
|||||||
pBackend->pMethods->xFree(pBlock);
|
pBackend->pMethods->xFree(pBlock);
|
||||||
pBlock = pNext;
|
pBlock = pNext;
|
||||||
pBackend->nBlock--;
|
pBackend->nBlock--;
|
||||||
/* LOOP ONE */
|
|
||||||
if(pBackend->nBlock == 0) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
pNext = pBlock->pNext;
|
|
||||||
pBackend->pMethods->xFree(pBlock);
|
|
||||||
pBlock = pNext;
|
|
||||||
pBackend->nBlock--;
|
|
||||||
/* LOOP TWO */
|
|
||||||
if(pBackend->nBlock == 0) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
pNext = pBlock->pNext;
|
|
||||||
pBackend->pMethods->xFree(pBlock);
|
|
||||||
pBlock = pNext;
|
|
||||||
pBackend->nBlock--;
|
|
||||||
/* LOOP THREE */
|
|
||||||
if(pBackend->nBlock == 0) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
pNext = pBlock->pNext;
|
|
||||||
pBackend->pMethods->xFree(pBlock);
|
|
||||||
pBlock = pNext;
|
|
||||||
pBackend->nBlock--;
|
|
||||||
/* LOOP FOUR */
|
|
||||||
}
|
}
|
||||||
if(pBackend->pMethods->xRelease) {
|
if(pBackend->pMethods->xRelease) {
|
||||||
pBackend->pMethods->xRelease(pBackend->pMethods->pUserData);
|
pBackend->pMethods->xRelease(pBackend->pMethods->pUserData);
|
||||||
@ -850,39 +825,6 @@ PH7_PRIVATE sxi32 SyBlobSearch(const void *pBlob, sxu32 nLen, const void *pPatte
|
|||||||
return SXRET_OK;
|
return SXRET_OK;
|
||||||
}
|
}
|
||||||
zIn++;
|
zIn++;
|
||||||
if(zIn > zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
SX_MACRO_FAST_CMP(zIn, pPattern, pLen, rc);
|
|
||||||
if(rc == 0) {
|
|
||||||
if(pOfft) {
|
|
||||||
*pOfft = (sxu32)(zIn - (const char *)pBlob);
|
|
||||||
}
|
|
||||||
return SXRET_OK;
|
|
||||||
}
|
|
||||||
zIn++;
|
|
||||||
if(zIn > zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
SX_MACRO_FAST_CMP(zIn, pPattern, pLen, rc);
|
|
||||||
if(rc == 0) {
|
|
||||||
if(pOfft) {
|
|
||||||
*pOfft = (sxu32)(zIn - (const char *)pBlob);
|
|
||||||
}
|
|
||||||
return SXRET_OK;
|
|
||||||
}
|
|
||||||
zIn++;
|
|
||||||
if(zIn > zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
SX_MACRO_FAST_CMP(zIn, pPattern, pLen, rc);
|
|
||||||
if(rc == 0) {
|
|
||||||
if(pOfft) {
|
|
||||||
*pOfft = (sxu32)(zIn - (const char *)pBlob);
|
|
||||||
}
|
|
||||||
return SXRET_OK;
|
|
||||||
}
|
|
||||||
zIn++;
|
|
||||||
}
|
}
|
||||||
return SXERR_NOTFOUND;
|
return SXERR_NOTFOUND;
|
||||||
}
|
}
|
@ -123,21 +123,6 @@ PH7_PRIVATE sxi32 SyRandomness(SyPRNGCtx *pCtx, void *pBuf, sxu32 nLen) {
|
|||||||
}
|
}
|
||||||
zBuf[0] = randomByte(pCtx);
|
zBuf[0] = randomByte(pCtx);
|
||||||
zBuf++;
|
zBuf++;
|
||||||
if(zBuf >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zBuf[0] = randomByte(pCtx);
|
|
||||||
zBuf++;
|
|
||||||
if(zBuf >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zBuf[0] = randomByte(pCtx);
|
|
||||||
zBuf++;
|
|
||||||
if(zBuf >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zBuf[0] = randomByte(pCtx);
|
|
||||||
zBuf++;
|
|
||||||
}
|
}
|
||||||
return SXRET_OK;
|
return SXRET_OK;
|
||||||
}
|
}
|
@ -12,18 +12,6 @@ PH7_PRIVATE sxu32 SyStrlen(const char *zSrc) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
zIn++;
|
zIn++;
|
||||||
if(!zIn[0]) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zIn++;
|
|
||||||
if(!zIn[0]) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zIn++;
|
|
||||||
if(!zIn[0]) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zIn++;
|
|
||||||
}
|
}
|
||||||
return (sxu32)(zIn - zSrc);
|
return (sxu32)(zIn - zSrc);
|
||||||
}
|
}
|
||||||
@ -42,36 +30,6 @@ PH7_PRIVATE sxi32 SyByteFind(const char *zStr, sxu32 nLen, sxi32 c, sxu32 *pPos)
|
|||||||
return SXRET_OK;
|
return SXRET_OK;
|
||||||
}
|
}
|
||||||
zIn++;
|
zIn++;
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if(zIn[0] == c) {
|
|
||||||
if(pPos) {
|
|
||||||
*pPos = (sxu32)(zIn - zStr);
|
|
||||||
}
|
|
||||||
return SXRET_OK;
|
|
||||||
}
|
|
||||||
zIn++;
|
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if(zIn[0] == c) {
|
|
||||||
if(pPos) {
|
|
||||||
*pPos = (sxu32)(zIn - zStr);
|
|
||||||
}
|
|
||||||
return SXRET_OK;
|
|
||||||
}
|
|
||||||
zIn++;
|
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if(zIn[0] == c) {
|
|
||||||
if(pPos) {
|
|
||||||
*pPos = (sxu32)(zIn - zStr);
|
|
||||||
}
|
|
||||||
return SXRET_OK;
|
|
||||||
}
|
|
||||||
zIn++;
|
|
||||||
}
|
}
|
||||||
return SXERR_NOTFOUND;
|
return SXERR_NOTFOUND;
|
||||||
}
|
}
|
||||||
@ -90,36 +48,6 @@ PH7_PRIVATE sxi32 SyByteFind2(const char *zStr, sxu32 nLen, sxi32 c, sxu32 *pPos
|
|||||||
return SXRET_OK;
|
return SXRET_OK;
|
||||||
}
|
}
|
||||||
zEnd--;
|
zEnd--;
|
||||||
if(zEnd < zIn) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if(zEnd[0] == c) {
|
|
||||||
if(pPos) {
|
|
||||||
*pPos = (sxu32)(zEnd - zIn);
|
|
||||||
}
|
|
||||||
return SXRET_OK;
|
|
||||||
}
|
|
||||||
zEnd--;
|
|
||||||
if(zEnd < zIn) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if(zEnd[0] == c) {
|
|
||||||
if(pPos) {
|
|
||||||
*pPos = (sxu32)(zEnd - zIn);
|
|
||||||
}
|
|
||||||
return SXRET_OK;
|
|
||||||
}
|
|
||||||
zEnd--;
|
|
||||||
if(zEnd < zIn) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if(zEnd[0] == c) {
|
|
||||||
if(pPos) {
|
|
||||||
*pPos = (sxu32)(zEnd - zIn);
|
|
||||||
}
|
|
||||||
return SXRET_OK;
|
|
||||||
}
|
|
||||||
zEnd--;
|
|
||||||
}
|
}
|
||||||
return SXERR_NOTFOUND;
|
return SXERR_NOTFOUND;
|
||||||
}
|
}
|
||||||
@ -142,42 +70,6 @@ PH7_PRIVATE sxi32 SyByteListFind(const char *zSrc, sxu32 nLen, const char *zList
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
zIn++;
|
zIn++;
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
for(zPtr = zList ; (c = zPtr[0]) != 0 ; zPtr++) {
|
|
||||||
if(zIn[0] == c) {
|
|
||||||
if(pFirstPos) {
|
|
||||||
*pFirstPos = (sxu32)(zIn - zSrc);
|
|
||||||
}
|
|
||||||
return SXRET_OK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
zIn++;
|
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
for(zPtr = zList ; (c = zPtr[0]) != 0 ; zPtr++) {
|
|
||||||
if(zIn[0] == c) {
|
|
||||||
if(pFirstPos) {
|
|
||||||
*pFirstPos = (sxu32)(zIn - zSrc);
|
|
||||||
}
|
|
||||||
return SXRET_OK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
zIn++;
|
|
||||||
if(zIn >= zEnd) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
for(zPtr = zList ; (c = zPtr[0]) != 0 ; zPtr++) {
|
|
||||||
if(zIn[0] == c) {
|
|
||||||
if(pFirstPos) {
|
|
||||||
*pFirstPos = (sxu32)(zIn - zSrc);
|
|
||||||
}
|
|
||||||
return SXRET_OK;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
zIn++;
|
|
||||||
}
|
}
|
||||||
return SXERR_NOTFOUND;
|
return SXERR_NOTFOUND;
|
||||||
}
|
}
|
||||||
@ -200,33 +92,6 @@ PH7_PRIVATE sxi32 SyStrncmp(const char *zLeft, const char *zRight, sxu32 nLen) {
|
|||||||
zP++;
|
zP++;
|
||||||
zQ++;
|
zQ++;
|
||||||
nLen--;
|
nLen--;
|
||||||
if(nLen <= 0) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if(zP[0] == 0 || zQ[0] == 0 || zP[0] != zQ[0]) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zP++;
|
|
||||||
zQ++;
|
|
||||||
nLen--;
|
|
||||||
if(nLen <= 0) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if(zP[0] == 0 || zQ[0] == 0 || zP[0] != zQ[0]) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zP++;
|
|
||||||
zQ++;
|
|
||||||
nLen--;
|
|
||||||
if(nLen <= 0) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if(zP[0] == 0 || zQ[0] == 0 || zP[0] != zQ[0]) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zP++;
|
|
||||||
zQ++;
|
|
||||||
nLen--;
|
|
||||||
}
|
}
|
||||||
return (sxi32)(zP[0] - zQ[0]);
|
return (sxi32)(zP[0] - zQ[0]);
|
||||||
}
|
}
|
||||||
@ -246,33 +111,6 @@ PH7_PRIVATE sxi32 SyStrnicmp(const char *zLeft, const char *zRight, sxu32 SLen)
|
|||||||
p++;
|
p++;
|
||||||
q++;
|
q++;
|
||||||
--SLen;
|
--SLen;
|
||||||
if(!SLen) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if(!*p || !*q || SyCharToLower(*p) != SyCharToLower(*q)) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
p++;
|
|
||||||
q++;
|
|
||||||
--SLen;
|
|
||||||
if(!SLen) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if(!*p || !*q || SyCharToLower(*p) != SyCharToLower(*q)) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
p++;
|
|
||||||
q++;
|
|
||||||
--SLen;
|
|
||||||
if(!SLen) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if(!*p || !*q || SyCharToLower(*p) != SyCharToLower(*q)) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
p++;
|
|
||||||
q++;
|
|
||||||
--SLen;
|
|
||||||
}
|
}
|
||||||
return (sxi32)(SyCharToLower(p[0]) - SyCharToLower(q[0]));
|
return (sxi32)(SyCharToLower(p[0]) - SyCharToLower(q[0]));
|
||||||
}
|
}
|
||||||
@ -300,27 +138,6 @@ sxu32 Systrcpy(char *zDest, sxu32 nDestLen, const char *zSrc, sxu32 nLen) {
|
|||||||
zIn++;
|
zIn++;
|
||||||
zBuf++;
|
zBuf++;
|
||||||
nLen--;
|
nLen--;
|
||||||
if(zBuf >= zEnd || nLen == 0) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zBuf[0] = zIn[0];
|
|
||||||
zIn++;
|
|
||||||
zBuf++;
|
|
||||||
nLen--;
|
|
||||||
if(zBuf >= zEnd || nLen == 0) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zBuf[0] = zIn[0];
|
|
||||||
zIn++;
|
|
||||||
zBuf++;
|
|
||||||
nLen--;
|
|
||||||
if(zBuf >= zEnd || nLen == 0) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zBuf[0] = zIn[0];
|
|
||||||
zIn++;
|
|
||||||
zBuf++;
|
|
||||||
nLen--;
|
|
||||||
}
|
}
|
||||||
zBuf[0] = 0;
|
zBuf[0] = 0;
|
||||||
return (sxu32)(zBuf - (unsigned char *)zDest);
|
return (sxu32)(zBuf - (unsigned char *)zDest);
|
||||||
|
@ -24,18 +24,6 @@ PH7_PRIVATE sxi32 SyStrIsNumeric(const char *zSrc, sxu32 nLen, sxu8 *pReal, cons
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
zSrc++;
|
zSrc++;
|
||||||
if(zSrc >= zEnd || (unsigned char)zSrc[0] >= 0xc0 || !SyisDigit(zSrc[0])) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zSrc++;
|
|
||||||
if(zSrc >= zEnd || (unsigned char)zSrc[0] >= 0xc0 || !SyisDigit(zSrc[0])) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zSrc++;
|
|
||||||
if(zSrc >= zEnd || (unsigned char)zSrc[0] >= 0xc0 || !SyisDigit(zSrc[0])) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
zSrc++;
|
|
||||||
};
|
};
|
||||||
if(zSrc < zEnd && zSrc > zCur) {
|
if(zSrc < zEnd && zSrc > zCur) {
|
||||||
int c = zSrc[0];
|
int c = zSrc[0];
|
||||||
@ -120,24 +108,6 @@ PH7_PRIVATE sxi32 SyStrToInt32(const char *zSrc, sxu32 nLen, void *pOutVal, cons
|
|||||||
nVal = nVal * 10 + (zSrc[0] - '0') ;
|
nVal = nVal * 10 + (zSrc[0] - '0') ;
|
||||||
--i ;
|
--i ;
|
||||||
zSrc++;
|
zSrc++;
|
||||||
if(zSrc >= zEnd || !i || !SyisDigit(zSrc[0])) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nVal = nVal * 10 + (zSrc[0] - '0') ;
|
|
||||||
--i ;
|
|
||||||
zSrc++;
|
|
||||||
if(zSrc >= zEnd || !i || !SyisDigit(zSrc[0])) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nVal = nVal * 10 + (zSrc[0] - '0') ;
|
|
||||||
--i ;
|
|
||||||
zSrc++;
|
|
||||||
if(zSrc >= zEnd || !i || !SyisDigit(zSrc[0])) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nVal = nVal * 10 + (zSrc[0] - '0') ;
|
|
||||||
--i ;
|
|
||||||
zSrc++;
|
|
||||||
}
|
}
|
||||||
/* Skip trailing spaces */
|
/* Skip trailing spaces */
|
||||||
while(zSrc < zEnd && SyisSpace(zSrc[0])) {
|
while(zSrc < zEnd && SyisSpace(zSrc[0])) {
|
||||||
@ -191,24 +161,6 @@ PH7_PRIVATE sxi32 SyStrToInt64(const char *zSrc, sxu32 nLen, void *pOutVal, cons
|
|||||||
nVal = nVal * 10 + (zSrc[0] - '0') ;
|
nVal = nVal * 10 + (zSrc[0] - '0') ;
|
||||||
--i ;
|
--i ;
|
||||||
zSrc++;
|
zSrc++;
|
||||||
if(zSrc >= zEnd || !i || !SyisDigit(zSrc[0])) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nVal = nVal * 10 + (zSrc[0] - '0') ;
|
|
||||||
--i ;
|
|
||||||
zSrc++;
|
|
||||||
if(zSrc >= zEnd || !i || !SyisDigit(zSrc[0])) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nVal = nVal * 10 + (zSrc[0] - '0') ;
|
|
||||||
--i ;
|
|
||||||
zSrc++;
|
|
||||||
if(zSrc >= zEnd || !i || !SyisDigit(zSrc[0])) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nVal = nVal * 10 + (zSrc[0] - '0') ;
|
|
||||||
--i ;
|
|
||||||
zSrc++;
|
|
||||||
}
|
}
|
||||||
/* Skip trailing spaces */
|
/* Skip trailing spaces */
|
||||||
while(zSrc < zEnd && SyisSpace(zSrc[0])) {
|
while(zSrc < zEnd && SyisSpace(zSrc[0])) {
|
||||||
@ -368,30 +320,6 @@ PH7_PRIVATE sxi32 SyOctalStrToInt64(const char *zSrc, sxu32 nLen, void *pOutVal,
|
|||||||
}
|
}
|
||||||
nVal = nVal * 8 + c;
|
nVal = nVal * 8 + c;
|
||||||
zSrc++;
|
zSrc++;
|
||||||
if(zSrc >= zEnd || !SyisDigit(zSrc[0])) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if((c = zSrc[0] - '0') > 7 || (int)(zSrc - zIn) > 20) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nVal = nVal * 8 + c;
|
|
||||||
zSrc++;
|
|
||||||
if(zSrc >= zEnd || !SyisDigit(zSrc[0])) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if((c = zSrc[0] - '0') > 7 || (int)(zSrc - zIn) > 20) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nVal = nVal * 8 + c;
|
|
||||||
zSrc++;
|
|
||||||
if(zSrc >= zEnd || !SyisDigit(zSrc[0])) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if((c = zSrc[0] - '0') > 7 || (int)(zSrc - zIn) > 20) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
nVal = nVal * 8 + c;
|
|
||||||
zSrc++;
|
|
||||||
}
|
}
|
||||||
/* Skip trailing spaces */
|
/* Skip trailing spaces */
|
||||||
while(zSrc < zEnd && SyisSpace(zSrc[0])) {
|
while(zSrc < zEnd && SyisSpace(zSrc[0])) {
|
||||||
@ -445,24 +373,6 @@ PH7_PRIVATE sxi32 SyBinaryStrToInt64(const char *zSrc, sxu32 nLen, void *pOutVal
|
|||||||
c = zSrc[0] - '0';
|
c = zSrc[0] - '0';
|
||||||
nVal = (nVal << 1) + c;
|
nVal = (nVal << 1) + c;
|
||||||
zSrc++;
|
zSrc++;
|
||||||
if(zSrc >= zEnd || (zSrc[0] != '1' && zSrc[0] != '0') || (int)(zSrc - zIn) > 62) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
c = zSrc[0] - '0';
|
|
||||||
nVal = (nVal << 1) + c;
|
|
||||||
zSrc++;
|
|
||||||
if(zSrc >= zEnd || (zSrc[0] != '1' && zSrc[0] != '0') || (int)(zSrc - zIn) > 62) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
c = zSrc[0] - '0';
|
|
||||||
nVal = (nVal << 1) + c;
|
|
||||||
zSrc++;
|
|
||||||
if(zSrc >= zEnd || (zSrc[0] != '1' && zSrc[0] != '0') || (int)(zSrc - zIn) > 62) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
c = zSrc[0] - '0';
|
|
||||||
nVal = (nVal << 1) + c;
|
|
||||||
zSrc++;
|
|
||||||
}
|
}
|
||||||
/* Skip trailing spaces */
|
/* Skip trailing spaces */
|
||||||
while(zSrc < zEnd && SyisSpace(zSrc[0])) {
|
while(zSrc < zEnd && SyisSpace(zSrc[0])) {
|
||||||
@ -523,24 +433,6 @@ PH7_PRIVATE sxi32 SyStrToReal(const char *zSrc, sxu32 nLen, void *pOutVal, const
|
|||||||
Val = Val * 10.0 + (zSrc[0] - '0') ;
|
Val = Val * 10.0 + (zSrc[0] - '0') ;
|
||||||
zSrc++ ;
|
zSrc++ ;
|
||||||
--Lim;
|
--Lim;
|
||||||
if(zSrc >= zEnd || !Lim || !SyisDigit(zSrc[0])) {
|
|
||||||
break ;
|
|
||||||
}
|
|
||||||
Val = Val * 10.0 + (zSrc[0] - '0') ;
|
|
||||||
zSrc++ ;
|
|
||||||
--Lim;
|
|
||||||
if(zSrc >= zEnd || !Lim || !SyisDigit(zSrc[0])) {
|
|
||||||
break ;
|
|
||||||
}
|
|
||||||
Val = Val * 10.0 + (zSrc[0] - '0') ;
|
|
||||||
zSrc++ ;
|
|
||||||
--Lim;
|
|
||||||
if(zSrc >= zEnd || !Lim || !SyisDigit(zSrc[0])) {
|
|
||||||
break ;
|
|
||||||
}
|
|
||||||
Val = Val * 10.0 + (zSrc[0] - '0') ;
|
|
||||||
zSrc++ ;
|
|
||||||
--Lim;
|
|
||||||
}
|
}
|
||||||
if(zSrc < zEnd && (zSrc[0] == '.' || zSrc[0] == ',')) {
|
if(zSrc < zEnd && (zSrc[0] == '.' || zSrc[0] == ',')) {
|
||||||
sxreal dec = 1.0;
|
sxreal dec = 1.0;
|
||||||
@ -553,27 +445,6 @@ PH7_PRIVATE sxi32 SyStrToReal(const char *zSrc, sxu32 nLen, void *pOutVal, const
|
|||||||
dec *= 10.0;
|
dec *= 10.0;
|
||||||
zSrc++ ;
|
zSrc++ ;
|
||||||
--Lim;
|
--Lim;
|
||||||
if(zSrc >= zEnd || !Lim || !SyisDigit(zSrc[0])) {
|
|
||||||
break ;
|
|
||||||
}
|
|
||||||
Val = Val * 10.0 + (zSrc[0] - '0') ;
|
|
||||||
dec *= 10.0;
|
|
||||||
zSrc++ ;
|
|
||||||
--Lim;
|
|
||||||
if(zSrc >= zEnd || !Lim || !SyisDigit(zSrc[0])) {
|
|
||||||
break ;
|
|
||||||
}
|
|
||||||
Val = Val * 10.0 + (zSrc[0] - '0') ;
|
|
||||||
dec *= 10.0;
|
|
||||||
zSrc++ ;
|
|
||||||
--Lim;
|
|
||||||
if(zSrc >= zEnd || !Lim || !SyisDigit(zSrc[0])) {
|
|
||||||
break ;
|
|
||||||
}
|
|
||||||
Val = Val * 10.0 + (zSrc[0] - '0') ;
|
|
||||||
dec *= 10.0;
|
|
||||||
zSrc++ ;
|
|
||||||
--Lim;
|
|
||||||
}
|
}
|
||||||
Val /= dec;
|
Val /= dec;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user