pH 24838 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3HashClear(Hash *pH){ pH 24841 ext/sqlite3/libsqlite/sqlite3.c assert( pH!=0 ); pH 24842 ext/sqlite3/libsqlite/sqlite3.c elem = pH->first; pH 24843 ext/sqlite3/libsqlite/sqlite3.c pH->first = 0; pH 24844 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pH->ht); pH 24845 ext/sqlite3/libsqlite/sqlite3.c pH->ht = 0; pH 24846 ext/sqlite3/libsqlite/sqlite3.c pH->htsize = 0; pH 24852 ext/sqlite3/libsqlite/sqlite3.c pH->count = 0; pH 24872 ext/sqlite3/libsqlite/sqlite3.c Hash *pH, /* The complete hash table */ pH 24888 ext/sqlite3/libsqlite/sqlite3.c else { pH->first = pNew; } pH 24891 ext/sqlite3/libsqlite/sqlite3.c pNew->next = pH->first; pH 24892 ext/sqlite3/libsqlite/sqlite3.c if( pH->first ){ pH->first->prev = pNew; } pH 24894 ext/sqlite3/libsqlite/sqlite3.c pH->first = pNew; pH 24905 ext/sqlite3/libsqlite/sqlite3.c static int rehash(Hash *pH, unsigned int new_size){ pH 24913 ext/sqlite3/libsqlite/sqlite3.c if( new_size==pH->htsize ) return 0; pH 24929 ext/sqlite3/libsqlite/sqlite3.c sqlite3_free(pH->ht); pH 24930 ext/sqlite3/libsqlite/sqlite3.c pH->ht = new_ht; pH 24931 ext/sqlite3/libsqlite/sqlite3.c pH->htsize = new_size = sqlite3MallocSize(new_ht)/sizeof(struct _ht); pH 24933 ext/sqlite3/libsqlite/sqlite3.c for(elem=pH->first, pH->first=0; elem; elem = next_elem){ pH 24936 ext/sqlite3/libsqlite/sqlite3.c insertElement(pH, &new_ht[h], elem); pH 24946 ext/sqlite3/libsqlite/sqlite3.c const Hash *pH, /* The pH to be searched */ pH 24954 ext/sqlite3/libsqlite/sqlite3.c if( pH->ht ){ pH 24956 ext/sqlite3/libsqlite/sqlite3.c h = strHash(pKey) % pH->htsize; pH 24957 ext/sqlite3/libsqlite/sqlite3.c pEntry = &pH->ht[h]; pH 24962 ext/sqlite3/libsqlite/sqlite3.c elem = pH->first; pH 24963 ext/sqlite3/libsqlite/sqlite3.c count = pH->count; pH 24980 ext/sqlite3/libsqlite/sqlite3.c Hash *pH, /* The pH containing "elem" */ pH 24988 ext/sqlite3/libsqlite/sqlite3.c pH->first = elem->next; pH 24993 ext/sqlite3/libsqlite/sqlite3.c if( pH->ht ){ pH 24994 ext/sqlite3/libsqlite/sqlite3.c pEntry = &pH->ht[h]; pH 25002 ext/sqlite3/libsqlite/sqlite3.c pH->count--; pH 25003 ext/sqlite3/libsqlite/sqlite3.c if( pH->count==0 ){ pH 25004 ext/sqlite3/libsqlite/sqlite3.c assert( pH->first==0 ); pH 25005 ext/sqlite3/libsqlite/sqlite3.c assert( pH->count==0 ); pH 25006 ext/sqlite3/libsqlite/sqlite3.c sqlite3HashClear(pH); pH 25014 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void *sqlite3HashFind(const Hash *pH, const char *pKey){ pH 25018 ext/sqlite3/libsqlite/sqlite3.c assert( pH!=0 ); pH 25020 ext/sqlite3/libsqlite/sqlite3.c elem = findElementWithHash(pH, pKey, &h); pH 25038 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void *sqlite3HashInsert(Hash *pH, const char *pKey, void *data){ pH 25043 ext/sqlite3/libsqlite/sqlite3.c assert( pH!=0 ); pH 25045 ext/sqlite3/libsqlite/sqlite3.c elem = findElementWithHash(pH,pKey,&h); pH 25049 ext/sqlite3/libsqlite/sqlite3.c removeElementGivenHash(pH,elem,h); pH 25061 ext/sqlite3/libsqlite/sqlite3.c pH->count++; pH 25062 ext/sqlite3/libsqlite/sqlite3.c if( pH->count>=10 && pH->count > 2*pH->htsize ){ pH 25063 ext/sqlite3/libsqlite/sqlite3.c if( rehash(pH, pH->count*2) ){ pH 25064 ext/sqlite3/libsqlite/sqlite3.c assert( pH->htsize>0 ); pH 25065 ext/sqlite3/libsqlite/sqlite3.c h = strHash(pKey) % pH->htsize; pH 25068 ext/sqlite3/libsqlite/sqlite3.c insertElement(pH, pH->ht ? &pH->ht[h] : 0, new_elem); pH 38556 ext/sqlite3/libsqlite/sqlite3.c static void (*winDlSym(sqlite3_vfs *pVfs,void *pH,const char *zSym))(void){ pH 38559 ext/sqlite3/libsqlite/sqlite3.c proc = osGetProcAddressA((HANDLE)pH, zSym); pH 38561 ext/sqlite3/libsqlite/sqlite3.c (void*)pH, zSym, (void*)proc)); pH 140798 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3Fts3HashClear(Fts3Hash *pH){ pH 140801 ext/sqlite3/libsqlite/sqlite3.c assert( pH!=0 ); pH 140802 ext/sqlite3/libsqlite/sqlite3.c elem = pH->first; pH 140803 ext/sqlite3/libsqlite/sqlite3.c pH->first = 0; pH 140804 ext/sqlite3/libsqlite/sqlite3.c fts3HashFree(pH->ht); pH 140805 ext/sqlite3/libsqlite/sqlite3.c pH->ht = 0; pH 140806 ext/sqlite3/libsqlite/sqlite3.c pH->htsize = 0; pH 140809 ext/sqlite3/libsqlite/sqlite3.c if( pH->copyKey && elem->pKey ){ pH 140815 ext/sqlite3/libsqlite/sqlite3.c pH->count = 0; pH 140891 ext/sqlite3/libsqlite/sqlite3.c Fts3Hash *pH, /* The complete hash table */ pH 140901 ext/sqlite3/libsqlite/sqlite3.c else { pH->first = pNew; } pH 140904 ext/sqlite3/libsqlite/sqlite3.c pNew->next = pH->first; pH 140905 ext/sqlite3/libsqlite/sqlite3.c if( pH->first ){ pH->first->prev = pNew; } pH 140907 ext/sqlite3/libsqlite/sqlite3.c pH->first = pNew; pH 140920 ext/sqlite3/libsqlite/sqlite3.c static int fts3Rehash(Fts3Hash *pH, int new_size){ pH 140928 ext/sqlite3/libsqlite/sqlite3.c fts3HashFree(pH->ht); pH 140929 ext/sqlite3/libsqlite/sqlite3.c pH->ht = new_ht; pH 140930 ext/sqlite3/libsqlite/sqlite3.c pH->htsize = new_size; pH 140931 ext/sqlite3/libsqlite/sqlite3.c xHash = ftsHashFunction(pH->keyClass); pH 140932 ext/sqlite3/libsqlite/sqlite3.c for(elem=pH->first, pH->first=0; elem; elem = next_elem){ pH 140935 ext/sqlite3/libsqlite/sqlite3.c fts3HashInsertElement(pH, &new_ht[h], elem); pH 140945 ext/sqlite3/libsqlite/sqlite3.c const Fts3Hash *pH, /* The pH to be searched */ pH 140954 ext/sqlite3/libsqlite/sqlite3.c if( pH->ht ){ pH 140955 ext/sqlite3/libsqlite/sqlite3.c struct _fts3ht *pEntry = &pH->ht[h]; pH 140958 ext/sqlite3/libsqlite/sqlite3.c xCompare = ftsCompareFunction(pH->keyClass); pH 140973 ext/sqlite3/libsqlite/sqlite3.c Fts3Hash *pH, /* The pH containing "elem" */ pH 140981 ext/sqlite3/libsqlite/sqlite3.c pH->first = elem->next; pH 140986 ext/sqlite3/libsqlite/sqlite3.c pEntry = &pH->ht[h]; pH 140994 ext/sqlite3/libsqlite/sqlite3.c if( pH->copyKey && elem->pKey ){ pH 140998 ext/sqlite3/libsqlite/sqlite3.c pH->count--; pH 140999 ext/sqlite3/libsqlite/sqlite3.c if( pH->count<=0 ){ pH 141000 ext/sqlite3/libsqlite/sqlite3.c assert( pH->first==0 ); pH 141001 ext/sqlite3/libsqlite/sqlite3.c assert( pH->count==0 ); pH 141002 ext/sqlite3/libsqlite/sqlite3.c fts3HashClear(pH); pH 141007 ext/sqlite3/libsqlite/sqlite3.c const Fts3Hash *pH, pH 141014 ext/sqlite3/libsqlite/sqlite3.c if( pH==0 || pH->ht==0 ) return 0; pH 141015 ext/sqlite3/libsqlite/sqlite3.c xHash = ftsHashFunction(pH->keyClass); pH 141018 ext/sqlite3/libsqlite/sqlite3.c assert( (pH->htsize & (pH->htsize-1))==0 ); pH 141019 ext/sqlite3/libsqlite/sqlite3.c return fts3FindElementByHash(pH,pKey,nKey, h & (pH->htsize-1)); pH 141027 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void *sqlite3Fts3HashFind(const Fts3Hash *pH, const void *pKey, int nKey){ pH 141030 ext/sqlite3/libsqlite/sqlite3.c pElem = sqlite3Fts3HashFindElem(pH, pKey, nKey); pH 141050 ext/sqlite3/libsqlite/sqlite3.c Fts3Hash *pH, /* The hash table to insert into */ pH 141061 ext/sqlite3/libsqlite/sqlite3.c assert( pH!=0 ); pH 141062 ext/sqlite3/libsqlite/sqlite3.c xHash = ftsHashFunction(pH->keyClass); pH 141065 ext/sqlite3/libsqlite/sqlite3.c assert( (pH->htsize & (pH->htsize-1))==0 ); pH 141066 ext/sqlite3/libsqlite/sqlite3.c h = hraw & (pH->htsize-1); pH 141067 ext/sqlite3/libsqlite/sqlite3.c elem = fts3FindElementByHash(pH,pKey,nKey,h); pH 141071 ext/sqlite3/libsqlite/sqlite3.c fts3RemoveElementByHash(pH,elem,h); pH 141078 ext/sqlite3/libsqlite/sqlite3.c if( (pH->htsize==0 && fts3Rehash(pH,8)) pH 141079 ext/sqlite3/libsqlite/sqlite3.c || (pH->count>=pH->htsize && fts3Rehash(pH, pH->htsize*2)) pH 141081 ext/sqlite3/libsqlite/sqlite3.c pH->count = 0; pH 141084 ext/sqlite3/libsqlite/sqlite3.c assert( pH->htsize>0 ); pH 141087 ext/sqlite3/libsqlite/sqlite3.c if( pH->copyKey && pKey!=0 ){ pH 141098 ext/sqlite3/libsqlite/sqlite3.c pH->count++; pH 141099 ext/sqlite3/libsqlite/sqlite3.c assert( pH->htsize>0 ); pH 141100 ext/sqlite3/libsqlite/sqlite3.c assert( (pH->htsize & (pH->htsize-1))==0 ); pH 141101 ext/sqlite3/libsqlite/sqlite3.c h = hraw & (pH->htsize-1); pH 141102 ext/sqlite3/libsqlite/sqlite3.c fts3HashInsertElement(pH, &pH->ht[h], new_elem);