25 #define SIZE_MAX ((size_t) -1)
29#define MAX_FILL_DENOM 8
30#define MIN_HASH_SIZE 8
31#define MAX_HASH_SIZE (1u << 31)
68 for (
i = 0;
key[
i] != 0;
i++) {
77 for (
i = 0; key2[
i] != 0;
i++) {
87 for (
i = 0; key3[
i] != 0;
i++) {
116 while ((
ch = *
name++) != 0) {
121 if (prefix2 !=
NULL) {
122 while ((
ch = *prefix2++) != 0) {
133 if (prefix3 !=
NULL) {
134 while ((
ch = *prefix3++) != 0) {
173#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
174 hash->randomSeed = 0;
238 if (
entry->hashValue == 0)
274 (
strcmp((
const char *)
s1, (
const char *)
s2) == 0));
294 unsigned hashValue,
int *pfound) {
303 if (
entry->hashValue != 0) {
313 if (
entry->hashValue == hashValue) {
316 (
entry->key2 == key2) &&
317 (
entry->key3 == key3)) {
323 (
const char *)
key) == 0) &&
336 }
while ((
entry->hashValue != 0) &&
367 oldsize =
hash->size;
371 oldend = &
hash->table[oldsize];
381 oldentry =
hash->table;
383 if (++oldentry >= oldend)
384 oldentry =
hash->table;
387 for (
i = 0;
i < oldsize;
i++) {
391 while (
entry->hashValue != 0) {
398 if (++oldentry >= oldend)
399 oldentry =
hash->table;
447 entry->payload = payload;
464 unsigned newSize,
mask, displ,
pos;
466 if (
hash->size == 0) {
472 newSize =
hash->size * 2;
485 if (
entry->hashValue != 0) {
492 }
while ((
entry->hashValue != 0) &&
556 if (
entry->hashValue != 0) {
564 }
while (
cur->hashValue != 0);
572 (
char *)
cur - (
char *)
hash->table);
586 entry->payload = payload;
640 const xmlChar *key2,
void *payload) {
700 const xmlChar *key2,
void *payload,
817 return(
entry->payload);
842 unsigned hashValue,
mask,
pos, displ;
853 if (
entry->hashValue != 0) {
858 if ((hashValue ==
entry->hashValue) &&
862 return(
entry->payload);
869 }
while ((
entry->hashValue != 0) &&
931 while (
entry->hashValue != 0) {
936 for (
i = 0;
i <
hash->size;
i++) {
944 }
while ((
entry->hashValue != 0) &&
1011 while (
entry->hashValue != 0) {
1016 for (
i = 0;
i <
hash->size;
i++) {
1023 (
const char *)
entry->key) != 0)) ||
1029 }
while ((
entry->hashValue != 0) &&
1061 if (
hash->size == 0)
1067 if (
entry->hashValue != 0)
1088 return(
hash->nbElems);
1146 unsigned hashValue,
mask,
pos, nextpos;
1179 if ((nextpos &
mask) == 0)
1182 if ((
next->hashValue == 0) ||
1183 (((
next->hashValue - nextpos) &
mask) == 0))
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
static const WCHAR name3[]
_ACRTIMP int __cdecl strcmp(const char *, const char *)
void dealloc(int i, int no_throw)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum GLenum GLuint GLenum GLsizei * lengths
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define ATTRIBUTE_NO_SANITIZE_INTEGER
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
static unsigned __int64 next
void xmlDictFree(xmlDictPtr dict)
int xmlDictOwns(xmlDictPtr dict, const xmlChar *str)
int xmlDictReference(xmlDictPtr dict)
const xmlChar * xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len)
void xmlHashScan(xmlHashTablePtr hash, xmlHashScanner scan, void *data)
void xmlHashFree(xmlHashTablePtr hash, xmlHashDeallocator dealloc)
static ATTRIBUTE_NO_SANITIZE_INTEGER int xmlHashUpdateInternal(xmlHashTablePtr hash, const xmlChar *key, const xmlChar *key2, const xmlChar *key3, void *payload, xmlHashDeallocator dealloc, int update)
ATTRIBUTE_NO_SANITIZE_INTEGER int xmlHashRemoveEntry3(xmlHashTablePtr hash, const xmlChar *key, const xmlChar *key2, const xmlChar *key3, xmlHashDeallocator dealloc)
static void stubHashScannerFull(void *payload, void *data, const xmlChar *key, const xmlChar *key2 ATTRIBUTE_UNUSED, const xmlChar *key3 ATTRIBUTE_UNUSED)
static ATTRIBUTE_NO_SANITIZE_INTEGER xmlHashEntry * xmlHashFindEntry(const xmlHashTable *hash, const xmlChar *key, const xmlChar *key2, const xmlChar *key3, unsigned hashValue, int *pfound)
static int xmlFastStrEqual(const xmlChar *s1, const xmlChar *s2)
void * xmlHashLookup(xmlHashTablePtr hash, const xmlChar *key)
void * xmlHashLookup2(xmlHashTablePtr hash, const xmlChar *key, const xmlChar *key2)
int xmlHashRemoveEntry(xmlHashTablePtr hash, const xmlChar *key, xmlHashDeallocator dealloc)
void xmlHashScanFull3(xmlHashTablePtr hash, const xmlChar *key, const xmlChar *key2, const xmlChar *key3, xmlHashScannerFull scan, void *data)
static int xmlHashGrow(xmlHashTablePtr hash, unsigned size)
void * xmlHashQLookup(xmlHashTablePtr hash, const xmlChar *prefix, const xmlChar *name)
int xmlHashSize(xmlHashTablePtr hash)
int xmlHashRemoveEntry2(xmlHashTablePtr hash, const xmlChar *key, const xmlChar *key2, xmlHashDeallocator dealloc)
static ATTRIBUTE_NO_SANITIZE_INTEGER unsigned xmlHashQNameValue(unsigned seed, const xmlChar *prefix, const xmlChar *name, const xmlChar *prefix2, const xmlChar *name2, const xmlChar *prefix3, const xmlChar *name3)
void * xmlHashQLookup2(xmlHashTablePtr hash, const xmlChar *prefix, const xmlChar *name, const xmlChar *prefix2, const xmlChar *name2)
int xmlHashAddEntry(xmlHashTablePtr hash, const xmlChar *key, void *payload)
xmlHashTablePtr xmlHashCreate(int size)
void xmlHashScanFull(xmlHashTablePtr hash, xmlHashScannerFull scan, void *data)
int xmlHashUpdateEntry2(xmlHashTablePtr hash, const xmlChar *key, const xmlChar *key2, void *payload, xmlHashDeallocator dealloc)
int xmlHashUpdateEntry(xmlHashTablePtr hash, const xmlChar *key, void *payload, xmlHashDeallocator dealloc)
int xmlHashUpdateEntry3(xmlHashTablePtr hash, const xmlChar *key, const xmlChar *key2, const xmlChar *key3, void *payload, xmlHashDeallocator dealloc)
void xmlHashDefaultDeallocator(void *entry, const xmlChar *key ATTRIBUTE_UNUSED)
xmlHashTablePtr xmlHashCopy(xmlHashTablePtr hash, xmlHashCopier copy)
int xmlHashAddEntry2(xmlHashTablePtr hash, const xmlChar *key, const xmlChar *key2, void *payload)
int xmlHashAddEntry3(xmlHashTablePtr hash, const xmlChar *key, const xmlChar *key2, const xmlChar *key3, void *payload)
ATTRIBUTE_NO_SANITIZE_INTEGER void * xmlHashQLookup3(xmlHashTablePtr hash, const xmlChar *prefix, const xmlChar *name, const xmlChar *prefix2, const xmlChar *name2, const xmlChar *prefix3, const xmlChar *name3)
static ATTRIBUTE_NO_SANITIZE_INTEGER unsigned xmlHashValue(unsigned seed, const xmlChar *key, const xmlChar *key2, const xmlChar *key3, size_t *lengths)
xmlHashTablePtr xmlHashCreateDict(int size, xmlDictPtr dict)
void * xmlHashLookup3(xmlHashTablePtr hash, const xmlChar *key, const xmlChar *key2, const xmlChar *key3)
void xmlHashScan3(xmlHashTablePtr hash, const xmlChar *key, const xmlChar *key2, const xmlChar *key3, xmlHashScanner scan, void *data)
void(* xmlHashDeallocator)(void *payload, const xmlChar *name)
void *(* xmlHashCopier)(void *payload, const xmlChar *name)
void(* xmlHashScanner)(void *payload, void *data, const xmlChar *name)
void(* xmlHashScannerFull)(void *payload, void *data, const xmlChar *name, const xmlChar *name2, const xmlChar *name3)
XML_GLOBALS_PARSER XMLPUBFUN void xmlInitParser(void)
#define HASH_UPDATE(h1, h2, ch)
#define HASH_FINISH(h1, h2)
#define HASH_INIT(h1, h2, seed)
Character const *const prefix
XMLPUBFUN int xmlStrQEqual(const xmlChar *pref, const xmlChar *name, const xmlChar *str)