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);