32#if !defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION)
33#define HASH_RANDOMIZATION
68#ifdef HASH_RANDOMIZATION
86#ifdef HASH_RANDOMIZATION
90 value += 30 * (*name);
91 while ((ch = *
name++) != 0) {
97 while ((ch = *
name2++) != 0) {
103 while ((ch = *
name3++) != 0) {
121#ifdef HASH_RANDOMIZATION
125 value += 30 * (*prefix);
127 value += 30 * (*name);
129 if (prefix !=
NULL) {
130 while ((ch = *prefix++) != 0) {
136 while ((ch = *
name++) != 0) {
141 if (prefix2 !=
NULL) {
142 while ((ch = *prefix2++) != 0) {
148 while ((ch = *
name2++) != 0) {
153 if (prefix3 !=
NULL) {
154 while ((ch = *prefix3++) != 0) {
160 while ((ch = *
name3++) != 0) {
190#ifdef HASH_RANDOMIZATION
237 unsigned long nbElem = 0;
247 oldsize =
table->size;
248 oldtable =
table->table;
249 if (oldtable ==
NULL)
254 table->table = oldtable;
266 for (
i = 0;
i < oldsize;
i++) {
267 if (oldtable[
i].
valid == 0)
275 for (
i = 0;
i < oldsize;
i++) {
276 iter = oldtable[
i].
next;
307 "xmlHashGrow : from %d to %d, %d elems\n", oldsize,
size, nbElem);
326 int inside_table = 0;
332 nbElems =
table->nbElems;
333 for(
i = 0; (
i <
table->size) && (nbElems > 0);
i++) {
334 iter = &(
table->table[
i]);
335 if (iter->
valid == 0)
534 unsigned long key,
len = 0;
615 entry->payload = userdata;
693 insert->payload = userdata;
702 insert->payload = userdata;
713 insert->payload = userdata;
722 insert->payload = userdata;
745 entry->payload = userdata;
786 return(
entry->payload);
793 return(
entry->payload);
832 return(
entry->payload);
887 if (
table->table[
i].valid == 0)
889 iter = &(
table->table[
i]);
896 if (nb !=
table->nbElems) {
898 if (iter == &(
table->table[
i])) {
899 if (
table->table[
i].valid == 0)
902 iter = &(
table->table[
i]);
964 if (
table->table[
i].valid == 0)
966 iter = &(
table->table[
i]);
1009 if (
table->table[
i].valid == 0)
1011 iter = &(
table->table[
i]);
1037 return(
table->nbElems);
1101 if (
table->table[
key].valid == 0) {
static const WCHAR name3[]
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
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(arg)
#define memcpy(s1, s2, n)
static unsigned __int64 next
XMLPUBFUN const xmlChar *XMLCALL xmlDictLookup(xmlDictPtr dict, const xmlChar *name, int len)
XMLPUBFUN int XMLCALL xmlDictOwns(xmlDictPtr dict, const xmlChar *str)
XMLPUBFUN void XMLCALL xmlDictFree(xmlDictPtr dict)
XMLPUBFUN int XMLCALL xmlDictReference(xmlDictPtr dict)
XMLPUBVAR xmlMallocFunc xmlMalloc
XMLPUBVAR xmlFreeFunc xmlFree
XMLPUBVAR void * xmlGenericErrorContext
XMLPUBVAR xmlGenericErrorFunc xmlGenericError
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)
void * xmlHashQLookup(xmlHashTablePtr table, const xmlChar *prefix, const xmlChar *name)
static void stubHashScannerFull(void *payload, void *data, const xmlChar *name, const xmlChar *name2 ATTRIBUTE_UNUSED, const xmlChar *name3 ATTRIBUTE_UNUSED)
int xmlHashAddEntry(xmlHashTablePtr table, const xmlChar *name, void *userdata)
int xmlHashUpdateEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, void *userdata, xmlHashDeallocator f)
int xmlHashSize(xmlHashTablePtr table)
int xmlHashUpdateEntry(xmlHashTablePtr table, const xmlChar *name, void *userdata, xmlHashDeallocator f)
void * xmlHashQLookup2(xmlHashTablePtr table, const xmlChar *prefix, const xmlChar *name, const xmlChar *prefix2, const xmlChar *name2)
int xmlHashUpdateEntry3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, void *userdata, xmlHashDeallocator f)
void xmlHashScan3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, xmlHashScanner f, void *data)
xmlHashEntry * xmlHashEntryPtr
void * xmlHashLookup(xmlHashTablePtr table, const xmlChar *name)
void xmlHashScan(xmlHashTablePtr table, xmlHashScanner f, void *data)
static int xmlHashGrow(xmlHashTablePtr table, int size)
xmlHashTablePtr xmlHashCopy(xmlHashTablePtr table, xmlHashCopier f)
int xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, xmlHashDeallocator f)
void xmlHashScanFull3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, xmlHashScannerFull f, void *data)
void * xmlHashLookup2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2)
int xmlHashAddEntry3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, void *userdata)
int xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name, xmlHashDeallocator f)
void xmlHashScanFull(xmlHashTablePtr table, xmlHashScannerFull f, void *data)
static unsigned long xmlHashComputeKey(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3)
xmlHashTablePtr xmlHashCreate(int size)
static unsigned long xmlHashComputeQKey(xmlHashTablePtr table, const xmlChar *prefix, const xmlChar *name, const xmlChar *prefix2, const xmlChar *name2, const xmlChar *prefix3, const xmlChar *name3)
void xmlHashFree(xmlHashTablePtr table, xmlHashDeallocator f)
void * xmlHashQLookup3(xmlHashTablePtr table, const xmlChar *prefix, const xmlChar *name, const xmlChar *prefix2, const xmlChar *name2, const xmlChar *prefix3, const xmlChar *name3)
int xmlHashRemoveEntry3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3, xmlHashDeallocator f)
void * xmlHashLookup3(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3)
int xmlHashAddEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, void *userdata)
void xmlHashDefaultDeallocator(void *entry, const xmlChar *name ATTRIBUTE_UNUSED)
xmlHashTablePtr xmlHashCreateDict(int size, xmlDictPtr dict)
struct _xmlHashEntry * next
struct _xmlHashEntry * table
xmlHashScanner hashscanner
XMLPUBFUN xmlChar *XMLCALL xmlStrdup(const xmlChar *cur)
XMLPUBFUN int XMLCALL xmlStrQEqual(const xmlChar *pref, const xmlChar *name, const xmlChar *str)
XMLPUBFUN int XMLCALL xmlStrEqual(const xmlChar *str1, const xmlChar *str2)