mirror of
				https://gitlab.gnome.org/GNOME/libxml2.git
				synced 2025-10-24 13:33:01 +03:00 
			
		
		
		
	html: Use binary search in htmlEntityValueLookup
This commit is contained in:
		
							
								
								
									
										25
									
								
								HTMLparser.c
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								HTMLparser.c
									
									
									
									
									
								
							| @@ -2011,6 +2011,14 @@ htmlEntityLookup(const xmlChar *name) { | |||||||
|     return(NULL); |     return(NULL); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | static int | ||||||
|  | htmlCompareEntityDesc(const void *vkey, const void *vdesc) { | ||||||
|  |     const unsigned *key = vkey; | ||||||
|  |     const htmlEntityDesc *desc = vdesc; | ||||||
|  |  | ||||||
|  |     return((int) *key - (int) desc->value); | ||||||
|  | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * htmlEntityValueLookup: |  * htmlEntityValueLookup: | ||||||
|  * @value: the entity's unicode value |  * @value: the entity's unicode value | ||||||
| @@ -2023,17 +2031,14 @@ htmlEntityLookup(const xmlChar *name) { | |||||||
|  */ |  */ | ||||||
| const htmlEntityDesc * | const htmlEntityDesc * | ||||||
| htmlEntityValueLookup(unsigned int value) { | htmlEntityValueLookup(unsigned int value) { | ||||||
|     unsigned int i; |     const htmlEntityDesc *desc; | ||||||
|  |     size_t nmemb; | ||||||
|  |  | ||||||
|     for (i = 0;i < (sizeof(html40EntitiesTable)/ |     nmemb = sizeof(html40EntitiesTable) / sizeof(html40EntitiesTable[0]); | ||||||
|                     sizeof(html40EntitiesTable[0]));i++) { |     desc = bsearch(&value, html40EntitiesTable, nmemb, sizeof(htmlEntityDesc), | ||||||
|         if (html40EntitiesTable[i].value >= value) { |                    htmlCompareEntityDesc); | ||||||
| 	    if (html40EntitiesTable[i].value > value) |  | ||||||
| 		break; |     return(desc); | ||||||
|             return((htmlEntityDescPtr) &html40EntitiesTable[i]); |  | ||||||
| 	} |  | ||||||
|     } |  | ||||||
|     return(NULL); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| /** | /** | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user