mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-07-13 09:01:53 +03:00
Old but effective optimization patch:
- parser.c parserInternals.c: applied Bjorn Reese optimization patch Daniel
This commit is contained in:
@ -428,15 +428,30 @@ xmlIsBlank(int c) {
|
||||
*
|
||||
* Returns 0 if not, non-zero otherwise
|
||||
*/
|
||||
static int xmlBaseArray[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0000 - 0x000F */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 - 0x001F */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0020 - 0x002F */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 - 0x003F */
|
||||
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x0040 - 0x004F */
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* 0x0050 - 0x005F */
|
||||
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x0060 - 0x006F */
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, /* 0x0070 - 0x007F */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0080 - 0x008F */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0090 - 0x009F */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00A0 - 0x00AF */
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00B0 - 0x00BF */
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00C0 - 0x00CF */
|
||||
1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00D0 - 0x00DF */
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00E0 - 0x00EF */
|
||||
1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, /* 0x00F0 - 0x00FF */
|
||||
};
|
||||
|
||||
int
|
||||
xmlIsBaseChar(int c) {
|
||||
return(
|
||||
(((c) >= 0x0041) && ((c) <= 0x005A)) ||
|
||||
(((c) >= 0x0061) && ((c) <= 0x007A)) ||
|
||||
(((c) >= 0x00C0) && ((c) <= 0x00D6)) ||
|
||||
(((c) >= 0x00D8) && ((c) <= 0x00F6)) ||
|
||||
(((c) >= 0x00F8) && ((c) <= 0x00FF)) ||
|
||||
(((c) >= 0x100) && ( /* accelerator */
|
||||
(((c) < 0x0100) ? xmlBaseArray[c] :
|
||||
( /* accelerator */
|
||||
(((c) >= 0x0100) && ((c) <= 0x0131)) ||
|
||||
(((c) >= 0x0134) && ((c) <= 0x013E)) ||
|
||||
(((c) >= 0x0141) && ((c) <= 0x0148)) ||
|
||||
@ -794,13 +809,16 @@ xmlIsCombining(int c) {
|
||||
*/
|
||||
int
|
||||
xmlIsExtender(int c) {
|
||||
return(
|
||||
((c) == 0xb7) || ((c) == 0x2d0) || ((c) == 0x2d1) ||
|
||||
((c) == 0x387) || ((c) == 0x640) || ((c) == 0xe46) ||
|
||||
((c) == 0xec6) || ((c) == 0x3005) ||
|
||||
(((c) >= 0x3031) && ((c) <= 0x3035)) ||
|
||||
(((c) >= 0x309b) && ((c) <= 0x309e)) ||
|
||||
(((c) >= 0x30fc) && ((c) <= 0x30fe)));
|
||||
switch (c) {
|
||||
case 0x00B7: case 0x02D0: case 0x02D1: case 0x0387:
|
||||
case 0x0640: case 0x0E46: case 0x0EC6: case 0x3005:
|
||||
case 0x3031: case 0x3032: case 0x3033: case 0x3034:
|
||||
case 0x3035: case 0x309D: case 0x309E: case 0x30FC:
|
||||
case 0x30FE:
|
||||
return 1;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -814,7 +832,7 @@ xmlIsExtender(int c) {
|
||||
*/
|
||||
int
|
||||
xmlIsIdeographic(int c) {
|
||||
return(
|
||||
return(((c) < 0x0100) ? 0 :
|
||||
(((c) >= 0x4e00) && ((c) <= 0x9fa5)) ||
|
||||
(((c) >= 0xf900) && ((c) <= 0xfa2d)) ||
|
||||
(((c) >= 0x3021) && ((c) <= 0x3029)) ||
|
||||
|
Reference in New Issue
Block a user