mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-07-30 22:43:14 +03:00
hum, restrict the integer usage gcc bug workaround to only gcc compilers
* xpath.c: hum, restrict the integer usage gcc bug workaround to only gcc compilers so that other architecture don't get penalized by this limitation. * include/libxml/xpath.h: small typo fix from Heiko W. Rupp Daniel
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
Mon Aug 27 16:24:47 CEST 2001 Daniel Veillard <daniel@veillard.com>
|
||||||
|
|
||||||
|
* xpath.c: hum, restrict the integer usage gcc bug workaround
|
||||||
|
to only gcc compilers so that other architecture don't get
|
||||||
|
penalized by this limitation.
|
||||||
|
* include/libxml/xpath.h: small typo fix from Heiko W. Rupp
|
||||||
|
|
||||||
Sun Aug 26 20:45:04 CEST 2001 Daniel Veillard <daniel@veillard.com>
|
Sun Aug 26 20:45:04 CEST 2001 Daniel Veillard <daniel@veillard.com>
|
||||||
|
|
||||||
* valid.c: fixed a Windows compiler warning (Chris Poblete)
|
* valid.c: fixed a Windows compiler warning (Chris Poblete)
|
||||||
|
@ -135,7 +135,7 @@ struct _xmlXPathVariable {
|
|||||||
* @ctxt: an XPath parser context
|
* @ctxt: an XPath parser context
|
||||||
* @nargs: the number of arguments passed to the function
|
* @nargs: the number of arguments passed to the function
|
||||||
*
|
*
|
||||||
* an XPath evaluation function, the parameters are on thei XPath context stack
|
* an XPath evaluation function, the parameters are on the XPath context stack
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef void (*xmlXPathEvalFunc)(xmlXPathParserContextPtr ctxt,
|
typedef void (*xmlXPathEvalFunc)(xmlXPathParserContextPtr ctxt,
|
||||||
|
16
xpath.c
16
xpath.c
@ -6546,10 +6546,13 @@ xmlXPathStringEvalNumber(const xmlChar *str) {
|
|||||||
const xmlChar *cur = str;
|
const xmlChar *cur = str;
|
||||||
double ret = 0.0;
|
double ret = 0.0;
|
||||||
double mult = 1;
|
double mult = 1;
|
||||||
int ok = 0, tmp = 0;
|
int ok = 0;
|
||||||
int isneg = 0;
|
int isneg = 0;
|
||||||
int exponent = 0;
|
int exponent = 0;
|
||||||
int is_exponent_negative = 0;
|
int is_exponent_negative = 0;
|
||||||
|
#ifdef __GNUC__
|
||||||
|
unsigned long tmp = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
while (IS_BLANK(*cur)) cur++;
|
while (IS_BLANK(*cur)) cur++;
|
||||||
if ((*cur != '.') && ((*cur < '0') || (*cur > '9')) && (*cur != '-')) {
|
if ((*cur != '.') && ((*cur < '0') || (*cur > '9')) && (*cur != '-')) {
|
||||||
@ -6559,8 +6562,10 @@ xmlXPathStringEvalNumber(const xmlChar *str) {
|
|||||||
isneg = 1;
|
isneg = 1;
|
||||||
cur++;
|
cur++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
/*
|
/*
|
||||||
* tmp is a workaroudn against a gcc compiler bug
|
* tmp is a workaround against a gcc compiler bug
|
||||||
*/
|
*/
|
||||||
while ((*cur >= '0') && (*cur <= '9')) {
|
while ((*cur >= '0') && (*cur <= '9')) {
|
||||||
tmp = tmp * 10 + (*cur - '0');
|
tmp = tmp * 10 + (*cur - '0');
|
||||||
@ -6568,6 +6573,13 @@ xmlXPathStringEvalNumber(const xmlChar *str) {
|
|||||||
cur++;
|
cur++;
|
||||||
}
|
}
|
||||||
ret = (double) tmp;
|
ret = (double) tmp;
|
||||||
|
#else
|
||||||
|
while ((*cur >= '0') && (*cur <= '9')) {
|
||||||
|
ret = ret * 10 + (*cur - '0');
|
||||||
|
ok = 1;
|
||||||
|
cur++;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (*cur == '.') {
|
if (*cur == '.') {
|
||||||
cur++;
|
cur++;
|
||||||
|
Reference in New Issue
Block a user