1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-05 15:55:57 +03:00

Optimize sqlite3_get/set_clientdata() for the presumably common case of a static string pointer.

FossilOrigin-Name: 84e38341aeab4fd51690e8536d0101d00e3fb11cc50ebcff05ed219c98328872
This commit is contained in:
stephan
2023-09-02 08:04:56 +00:00
parent 3823208d5b
commit 21d4f0cc7b
3 changed files with 12 additions and 10 deletions

View File

@@ -3725,7 +3725,7 @@ void *sqlite3_get_clientdata(sqlite3 *db, const char *zName){
DbClientData *p;
sqlite3_mutex_enter(db->mutex);
for(p=db->pDbData; p; p=p->pNext){
if( strcmp(p->zName, zName)==0 ){
if( zName==p->zName || strcmp(p->zName, zName)==0 ){
void *pResult = p->pData;
sqlite3_mutex_leave(db->mutex);
return pResult;
@@ -3747,7 +3747,9 @@ int sqlite3_set_clientdata(
DbClientData *p, **pp;
sqlite3_mutex_enter(db->mutex);
pp = &db->pDbData;
for(p=db->pDbData; p && strcmp(p->zName,zName); p=p->pNext){
for(p=db->pDbData;
p && (zName!=p->zName && strcmp(p->zName,zName));
p=p->pNext){
pp = &p->pNext;
}
if( p ){