diff --git a/xwords4/android/jni/utilwrapper.c b/xwords4/android/jni/utilwrapper.c index 6f328e09f..0f7194c49 100644 --- a/xwords4/android/jni/utilwrapper.c +++ b/xwords4/android/jni/utilwrapper.c @@ -441,14 +441,13 @@ and_dutil_getUserQuantityString( XW_DUtilCtxt* duc, XWEnv xwe, } static void -and_dutil_storePtr( XW_DUtilCtxt* duc, XWEnv xwe, const XP_UCHAR* keys[], +and_dutil_storePtr( XW_DUtilCtxt* duc, XWEnv xwe, const XP_UCHAR* key, const void* data, XP_U32 len ) { DUTIL_CBK_HEADER( "store", "(Ljava/lang/String;[B)V" ); - XP_ASSERT( NULL == keys[1] ); jbyteArray jdata = makeByteArray( env, len, data ); - jstring jkey = (*env)->NewStringUTF( env, keys[0] ); + jstring jkey = (*env)->NewStringUTF( env, key ); (*env)->CallVoidMethod( env, dutil->jdutil, mid, jkey, jdata ); @@ -471,12 +470,11 @@ loadToByteArray( XW_DUtilCtxt* duc, XWEnv xwe, const XP_UCHAR* key ) } static void -and_dutil_loadPtr( XW_DUtilCtxt* duc, XWEnv xwe, const XP_UCHAR* keys[], +and_dutil_loadPtr( XW_DUtilCtxt* duc, XWEnv xwe, const XP_UCHAR* key, void* data, XP_U32* lenp ) { - XP_ASSERT( NULL == keys[1] ); JNIEnv* env = xwe; - jbyteArray jvalue = loadToByteArray( duc, env, keys[0] ); + jbyteArray jvalue = loadToByteArray( duc, env, key ); jsize len = 0; if ( jvalue != NULL ) { len = (*env)->GetArrayLength( env, jvalue ); diff --git a/xwords4/common/device.c b/xwords4/common/device.c index 74afc77dc..4300a3cf8 100644 --- a/xwords4/common/device.c +++ b/xwords4/common/device.c @@ -113,8 +113,7 @@ load( XW_DUtilCtxt* dutil, XWEnv xwe ) dutil->devCtxt = state = XP_CALLOC( dutil->mpool, sizeof(*state) ); XWStreamCtxt* stream = mkStream( dutil ); - const XP_UCHAR* keys[] = { KEY_DEVSTATE, NULL }; - dutil_loadStream( dutil, xwe, keys, stream ); + dutil_loadStream( dutil, xwe, KEY_DEVSTATE, stream ); if ( 0 < stream_getSize( stream ) ) { state->devCount = stream_getU16( stream ); @@ -152,8 +151,7 @@ dvcStoreLocked( XW_DUtilCtxt* dutil, XWEnv xwe, DevCtxt* state ) XWStreamCtxt* stream = mkStream( dutil ); stream_putU16( stream, state->devCount ); stream_putU8( stream, state->mqttQOS ); - const XP_UCHAR* keys[] = { KEY_DEVSTATE, NULL }; - dutil_storeStream( dutil, xwe, keys, stream ); + dutil_storeStream( dutil, xwe, KEY_DEVSTATE, stream ); stream_destroy( stream ); } @@ -174,7 +172,6 @@ dvc_store( XW_DUtilCtxt* dutil, XWEnv xwe ) static void getMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, XP_Bool forceNew, MQTTDevID* devID ) { - const XP_UCHAR* keys[] = { MQTT_DEVID_KEY, NULL }; #ifdef BOGUS_ALL_SAME_DEVID XP_USE(forceNew); MQTTDevID bogusID = 0; @@ -184,9 +181,9 @@ getMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, XP_Bool forceNew, MQTTDevID* devID MQTTDevID tmp = 0; XP_U32 len = sizeof(tmp); - dutil_loadPtr( dutil, xwe, keys, &tmp, &len ); + dutil_loadPtr( dutil, xwe, MQTT_DEVID_KEY, &tmp, &len ); if ( len != sizeof(tmp) || 0 != XP_MEMCMP( &bogusID, &tmp, sizeof(tmp) ) ) { - dutil_storePtr( dutil, xwe, keys, &bogusID, sizeof(bogusID) ); + dutil_storePtr( dutil, xwe, MQTT_DEVID_KEY, &bogusID, sizeof(bogusID) ); } *devID = bogusID; @@ -195,7 +192,7 @@ getMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, XP_Bool forceNew, MQTTDevID* devID MQTTDevID tmp = 0; XP_U32 len = sizeof(tmp); if ( !forceNew ) { - dutil_loadPtr( dutil, xwe, keys, &tmp, &len ); + dutil_loadPtr( dutil, xwe, MQTT_DEVID_KEY, &tmp, &len ); } /* XP_LOGFF( "len: %d; sizeof(tmp): %zu", len, sizeof(tmp) ); */ @@ -221,7 +218,7 @@ getMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, XP_Bool forceNew, MQTTDevID* devID } XP_LOGFF( "average bits set: %d", total / NUM_RUNS ); - dutil_storePtr( dutil, xwe, keys, &tmp, sizeof(tmp) ); + dutil_storePtr( dutil, xwe, MQTT_DEVID_KEY, &tmp, sizeof(tmp) ); # ifdef DEBUG XP_UCHAR buf[32]; @@ -245,8 +242,7 @@ dvc_getMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, MQTTDevID* devID ) void dvc_setMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, const MQTTDevID* devID ) { - const XP_UCHAR* keys[] = { MQTT_DEVID_KEY, NULL }; - dutil_storePtr( dutil, xwe, keys, devID, sizeof(*devID) ); + dutil_storePtr( dutil, xwe, MQTT_DEVID_KEY, devID, sizeof(*devID) ); } void @@ -813,16 +809,10 @@ dvc_onWebSendResult( XW_DUtilCtxt* dutil, XWEnv xwe, XP_U32 resultKey, tmp = cJSON_GetObjectItem( result, "atNext" ); if ( !!tmp ) { XP_U32 atNext = tmp->valueint; - { - const XP_UCHAR* keys1[] = { LAST_REG_KEY, NULL }; - dutil_storePtr( dutil, xwe, keys1, &atNext, - sizeof(atNext) ); - } - { - const XP_UCHAR* keys2[] = { KEY_GITREV, NULL }; - dutil_storePtr( dutil, xwe, keys2, GITREV, - XP_STRLEN(GITREV) ); - } + dutil_storePtr( dutil, xwe, LAST_REG_KEY, &atNext, + sizeof(atNext) ); + dutil_storePtr( dutil, xwe, KEY_GITREV, GITREV, + XP_STRLEN(GITREV) ); } tmp = cJSON_GetObjectItem( result, "qos" ); @@ -969,8 +959,7 @@ storePhoniesData( XW_DUtilCtxt* dutil, XWEnv xwe, DevCtxt* dc ) XP_ASSERT( pdc1 == pdc ); } - const XP_UCHAR* keys[] = { KEY_LEGAL_PHONIES, NULL }; - dutil_storeStream( dutil, xwe, keys, stream ); + dutil_storeStream( dutil, xwe, KEY_LEGAL_PHONIES, stream ); stream_destroy( stream ); } @@ -981,8 +970,7 @@ loadPhoniesData( XW_DUtilCtxt* dutil, XWEnv xwe, DevCtxt* dc ) XP_ASSERT ( !dc->pd ); XWStreamCtxt* stream = mkStream( dutil ); - const XP_UCHAR* keys[] = { KEY_LEGAL_PHONIES, NULL }; - dutil_loadStream( dutil, xwe, keys, stream ); + dutil_loadStream( dutil, xwe, KEY_LEGAL_PHONIES, stream ); XP_U8 flags; if ( stream_gotU8( stream, &flags ) && PD_VERSION_1 == flags ) { @@ -1197,16 +1185,10 @@ registerIf( XW_DUtilCtxt* dutil, XWEnv xwe ) { XP_U32 atNext = 0; XP_U32 len = sizeof(atNext); - { - const XP_UCHAR* keys1[] = { LAST_REG_KEY, NULL }; - dutil_loadPtr( dutil, xwe, keys1, &atNext, &len ); - } + dutil_loadPtr( dutil, xwe, LAST_REG_KEY, &atNext, &len ); XP_UCHAR gitrev[128]; len = VSIZE(gitrev); - { - const XP_UCHAR* keys2[] = { KEY_GITREV, NULL }; - dutil_loadPtr( dutil, xwe, keys2, gitrev, &len ); - } + dutil_loadPtr( dutil, xwe, KEY_GITREV, gitrev, &len ); if ( len >= VSIZE(gitrev) ) { len = VSIZE(gitrev) - 1; } diff --git a/xwords4/common/dutil.c b/xwords4/common/dutil.c index a5e370473..f765ab458 100644 --- a/xwords4/common/dutil.c +++ b/xwords4/common/dutil.c @@ -30,26 +30,26 @@ #include "xwmutex.h" static void -super_dutil_storeStream( XW_DUtilCtxt* duc, XWEnv xwe, const XP_UCHAR* keys[], +super_dutil_storeStream( XW_DUtilCtxt* duc, XWEnv xwe, const XP_UCHAR* key, XWStreamCtxt* data ) { const void* ptr = stream_getPtr( data ); XP_U16 len = stream_getSize( data ); - dutil_storePtr( duc, xwe, keys, (void*)ptr, len ); + dutil_storePtr( duc, xwe, key, (void*)ptr, len ); } static void super_dutil_loadStream( XW_DUtilCtxt* duc, XWEnv xwe, - const XP_UCHAR* keys[], XWStreamCtxt* inOut ) + const XP_UCHAR* key, XWStreamCtxt* inOut ) { /* get the size */ XP_U32 len = 0; - dutil_loadPtr( duc, xwe, keys, NULL, &len ); + dutil_loadPtr( duc, xwe, key, NULL, &len ); /* load if it exists */ if ( 0 < len ) { void* buf = XP_MALLOC( duc->mpool, len ); - dutil_loadPtr( duc, xwe, keys, buf, &len ); + dutil_loadPtr( duc, xwe, key, buf, &len ); stream_putBytes( inOut, buf, len ); XP_FREEP( duc->mpool, &buf ); diff --git a/xwords4/common/dutil.h b/xwords4/common/dutil.h index ae2a66d13..6664257fc 100644 --- a/xwords4/common/dutil.h +++ b/xwords4/common/dutil.h @@ -55,16 +55,16 @@ typedef struct _DUtilVtable { XP_U16 stringCode, XP_U16 quantity ); void (*m_dutil_storeStream)( XW_DUtilCtxt* duc, XWEnv xwe, - const XP_UCHAR* keys[], + const XP_UCHAR* key, XWStreamCtxt* stream ); void (*m_dutil_loadStream)( XW_DUtilCtxt* duc, XWEnv xwe, - const XP_UCHAR* keys[], + const XP_UCHAR* key, XWStreamCtxt* inOut ); void (*m_dutil_storePtr)( XW_DUtilCtxt* duc, XWEnv xwe, - const XP_UCHAR* keys[], + const XP_UCHAR* key, const void* data, XP_U32 len); void (*m_dutil_loadPtr)( XW_DUtilCtxt* duc, XWEnv xwe, - const XP_UCHAR* keys[], + const XP_UCHAR* key, void* data, XP_U32* lenp ); # ifdef XWFEATURE_DEVICE void (*m_dutil_forEach)( XW_DUtilCtxt* duc, XWEnv xwe, diff --git a/xwords4/common/knownplyr.c b/xwords4/common/knownplyr.c index 70bcf6695..933a6144b 100644 --- a/xwords4/common/knownplyr.c +++ b/xwords4/common/knownplyr.c @@ -69,8 +69,7 @@ loadStateLocked( XW_DUtilCtxt* dutil, XWEnv xwe ) dutil->kpCtxt = state = XP_CALLOC( dutil->mpool, sizeof(*state) ); XWStreamCtxt* stream = mem_stream_make_raw( MPPARM(dutil->mpool) dutil_getVTManager(dutil) ); - const XP_UCHAR* keys[] = { KNOWN_PLAYERS_KEY, NULL }; - dutil_loadStream( dutil, xwe, keys, stream ); + dutil_loadStream( dutil, xwe, KNOWN_PLAYERS_KEY, stream ); if ( 0 < stream_getSize( stream ) ) { XP_U8 vers = stream_getU8( stream ); stream_setVersion( stream, vers ); @@ -106,8 +105,7 @@ saveState( XW_DUtilCtxt* dutil, XWEnv xwe, KPState* state ) dll_map( &state->players->links, saveProc, NULL, stream ); - const XP_UCHAR* keys[] = { KNOWN_PLAYERS_KEY, NULL }; - dutil_storeStream( dutil, xwe, keys, stream ); + dutil_storeStream( dutil, xwe, KNOWN_PLAYERS_KEY, stream ); stream_destroy( stream ); state->dirty = XP_FALSE; } diff --git a/xwords4/common/smsproto.c b/xwords4/common/smsproto.c index ccf0245e5..f6b4702b3 100644 --- a/xwords4/common/smsproto.c +++ b/xwords4/common/smsproto.c @@ -126,8 +126,7 @@ smsproto_init( MPFORMAL XWEnv xwe, XW_DUtilCtxt* dutil ) MPASSIGN( state->mpool, mpool ); XP_U32 siz = sizeof(state->nNextID); - const XP_UCHAR* keys[] = { KEY_NEXTID, NULL, }; - dutil_loadPtr( state->dutil, xwe, keys, &state->nNextID, &siz ); + dutil_loadPtr( state->dutil, xwe, KEY_NEXTID, &state->nNextID, &siz ); XP_LOGF( "%s(): loaded nextMsgID: %d", __func__, state->nNextID ); restorePartials( state, xwe ); @@ -706,8 +705,7 @@ savePartials( SMSProto* state, XWEnv xwe ) if ( state->lastStoredSize == 2 && newSize == 2 ) { XP_LOGFF( "not storing empty again" ); } else { - const XP_UCHAR* keys[] = { KEY_PARTIALS, NULL, }; - dutil_storeStream( state->dutil, xwe, keys, stream ); + dutil_storeStream( state->dutil, xwe, KEY_PARTIALS, stream ); state->lastStoredSize = newSize; } @@ -721,8 +719,7 @@ restorePartials( SMSProto* state, XWEnv xwe ) { XWStreamCtxt* stream = mkStream( state ); - const XP_UCHAR* keys[] = { KEY_PARTIALS, NULL, }; - dutil_loadStream( state->dutil, xwe, keys, stream ); + dutil_loadStream( state->dutil, xwe, KEY_PARTIALS, stream ); if ( stream_getSize( stream ) >= 1 && PARTIALS_FORMAT == stream_getU8( stream ) ) { int nFromPhones = stream_getU8( stream ); @@ -883,8 +880,7 @@ static int nextMsgID( SMSProto* state, XWEnv xwe ) { int result = ++state->nNextID % 0x000000FF; - const XP_UCHAR* keys[] = { KEY_NEXTID, NULL, }; - dutil_storePtr( state->dutil, xwe, keys, &state->nNextID, + dutil_storePtr( state->dutil, xwe, KEY_NEXTID, &state->nNextID, sizeof(state->nNextID) ); LOG_RETURNF( "%d", result ); return result; diff --git a/xwords4/common/stats.c b/xwords4/common/stats.c index 8c46aa350..de5ff849f 100644 --- a/xwords4/common/stats.c +++ b/xwords4/common/stats.c @@ -171,8 +171,7 @@ storeCountsLocked( XW_DUtilCtxt* dutil, XWEnv xwe ) } } - const XP_UCHAR* keys[] = { STATS_KEY, NULL }; - dutil_storeStream( dutil, xwe, keys, stream ); + dutil_storeStream( dutil, xwe, STATS_KEY, stream ); stream_destroy( stream ); } @@ -186,8 +185,7 @@ loadCountsLocked( XW_DUtilCtxt* dutil, XWEnv xwe ) ss->statsVals = statsVals; XWStreamCtxt* stream = mkStream( dutil ); - const XP_UCHAR* keys[] = { STATS_KEY, NULL }; - dutil_loadStream( dutil, xwe, keys, stream ); + dutil_loadStream( dutil, xwe, STATS_KEY, stream ); XP_U8 version; if ( stream_gotU8( stream, &version ) ) { diff --git a/xwords4/linux/lindutil.c b/xwords4/linux/lindutil.c index 903be7d53..392653acf 100644 --- a/xwords4/linux/lindutil.c +++ b/xwords4/linux/lindutil.c @@ -52,9 +52,9 @@ static const XP_UCHAR* linux_dutil_getUserString( XW_DUtilCtxt* duc, XWEnv xwe, static const XP_UCHAR* linux_dutil_getUserQuantityString( XW_DUtilCtxt* duc, XWEnv xwe, XP_U16 code, XP_U16 quantity ); -static void linux_dutil_storePtr( XW_DUtilCtxt* duc, XWEnv xwe, const XP_UCHAR* keys[], +static void linux_dutil_storePtr( XW_DUtilCtxt* duc, XWEnv xwe, const XP_UCHAR* key, const void* data, XP_U32 len ); -static void linux_dutil_loadPtr( XW_DUtilCtxt* duc, XWEnv xwe, const XP_UCHAR* keys[], +static void linux_dutil_loadPtr( XW_DUtilCtxt* duc, XWEnv xwe, const XP_UCHAR* key, void* data, XP_U32* lenp ); static void linux_dutil_forEach( XW_DUtilCtxt* duc, XWEnv xwe, const XP_UCHAR* keys[], @@ -580,36 +580,34 @@ linux_dutil_getUserQuantityString( XW_DUtilCtxt* duc, XWEnv xwe, XP_U16 code, static void linux_dutil_storePtr( XW_DUtilCtxt* duc, XWEnv XP_UNUSED(xwe), - const XP_UCHAR* keys[], + const XP_UCHAR* key, const void* data, const XP_U32 len ) { - XP_ASSERT( keys[1] == NULL ); LaunchParams* params = (LaunchParams*)duc->closure; sqlite3* pDb = params->pDb; gchar* b64 = g_base64_encode( data, len); - gdb_store( pDb, keys[0], b64 ); + gdb_store( pDb, key, b64 ); g_free( b64 ); } static void linux_dutil_loadPtr( XW_DUtilCtxt* duc, XWEnv XP_UNUSED(xwe), - const XP_UCHAR* keys[], + const XP_UCHAR* key, void* data, XP_U32* lenp ) { - XP_ASSERT( NULL == keys[1] ); LaunchParams* params = (LaunchParams*)duc->closure; sqlite3* pDb = params->pDb; gint buflen = 0; - FetchResult res = gdb_fetch( pDb, keys[0], NULL, NULL, &buflen ); + FetchResult res = gdb_fetch( pDb, key, NULL, NULL, &buflen ); if ( res == BUFFER_TOO_SMALL ) { /* expected: I passed 0 */ if ( 0 == *lenp ) { *lenp = buflen; } else { gchar* tmp = XP_MALLOC( duc->mpool, buflen ); gint tmpLen = buflen; - res = gdb_fetch( pDb, keys[0], NULL, tmp, &tmpLen ); + res = gdb_fetch( pDb, key, NULL, tmp, &tmpLen ); XP_ASSERT( buflen == tmpLen ); XP_ASSERT( res == SUCCESS ); XP_ASSERT( tmp[buflen-1] == '\0' ); @@ -627,7 +625,7 @@ linux_dutil_loadPtr( XW_DUtilCtxt* duc, XWEnv XP_UNUSED(xwe), *lenp = 0; /* doesn't exist */ } - XP_LOGFF( "(key=%s) => len: %d", keys[0], *lenp ); + XP_LOGFF( "(key=%s) => len: %d", key, *lenp ); } static void