trivial API change

any key concatenation should be in common/ code
This commit is contained in:
Eric House 2024-11-01 08:18:06 -07:00
parent 6314fd8a01
commit f4c080cdf7
8 changed files with 44 additions and 74 deletions

View file

@ -441,14 +441,13 @@ and_dutil_getUserQuantityString( XW_DUtilCtxt* duc, XWEnv xwe,
} }
static void 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 ) const void* data, XP_U32 len )
{ {
DUTIL_CBK_HEADER( "store", "(Ljava/lang/String;[B)V" ); DUTIL_CBK_HEADER( "store", "(Ljava/lang/String;[B)V" );
XP_ASSERT( NULL == keys[1] );
jbyteArray jdata = makeByteArray( env, len, data ); 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 ); (*env)->CallVoidMethod( env, dutil->jdutil, mid, jkey, jdata );
@ -471,12 +470,11 @@ loadToByteArray( XW_DUtilCtxt* duc, XWEnv xwe, const XP_UCHAR* key )
} }
static void 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 ) void* data, XP_U32* lenp )
{ {
XP_ASSERT( NULL == keys[1] );
JNIEnv* env = xwe; JNIEnv* env = xwe;
jbyteArray jvalue = loadToByteArray( duc, env, keys[0] ); jbyteArray jvalue = loadToByteArray( duc, env, key );
jsize len = 0; jsize len = 0;
if ( jvalue != NULL ) { if ( jvalue != NULL ) {
len = (*env)->GetArrayLength( env, jvalue ); len = (*env)->GetArrayLength( env, jvalue );

View file

@ -113,8 +113,7 @@ load( XW_DUtilCtxt* dutil, XWEnv xwe )
dutil->devCtxt = state = XP_CALLOC( dutil->mpool, sizeof(*state) ); dutil->devCtxt = state = XP_CALLOC( dutil->mpool, sizeof(*state) );
XWStreamCtxt* stream = mkStream( dutil ); XWStreamCtxt* stream = mkStream( dutil );
const XP_UCHAR* keys[] = { KEY_DEVSTATE, NULL }; dutil_loadStream( dutil, xwe, KEY_DEVSTATE, stream );
dutil_loadStream( dutil, xwe, keys, stream );
if ( 0 < stream_getSize( stream ) ) { if ( 0 < stream_getSize( stream ) ) {
state->devCount = stream_getU16( stream ); state->devCount = stream_getU16( stream );
@ -152,8 +151,7 @@ dvcStoreLocked( XW_DUtilCtxt* dutil, XWEnv xwe, DevCtxt* state )
XWStreamCtxt* stream = mkStream( dutil ); XWStreamCtxt* stream = mkStream( dutil );
stream_putU16( stream, state->devCount ); stream_putU16( stream, state->devCount );
stream_putU8( stream, state->mqttQOS ); stream_putU8( stream, state->mqttQOS );
const XP_UCHAR* keys[] = { KEY_DEVSTATE, NULL }; dutil_storeStream( dutil, xwe, KEY_DEVSTATE, stream );
dutil_storeStream( dutil, xwe, keys, stream );
stream_destroy( stream ); stream_destroy( stream );
} }
@ -174,7 +172,6 @@ dvc_store( XW_DUtilCtxt* dutil, XWEnv xwe )
static void static void
getMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, XP_Bool forceNew, MQTTDevID* devID ) getMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, XP_Bool forceNew, MQTTDevID* devID )
{ {
const XP_UCHAR* keys[] = { MQTT_DEVID_KEY, NULL };
#ifdef BOGUS_ALL_SAME_DEVID #ifdef BOGUS_ALL_SAME_DEVID
XP_USE(forceNew); XP_USE(forceNew);
MQTTDevID bogusID = 0; MQTTDevID bogusID = 0;
@ -184,9 +181,9 @@ getMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, XP_Bool forceNew, MQTTDevID* devID
MQTTDevID tmp = 0; MQTTDevID tmp = 0;
XP_U32 len = sizeof(tmp); 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) ) ) { 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; *devID = bogusID;
@ -195,7 +192,7 @@ getMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, XP_Bool forceNew, MQTTDevID* devID
MQTTDevID tmp = 0; MQTTDevID tmp = 0;
XP_U32 len = sizeof(tmp); XP_U32 len = sizeof(tmp);
if ( !forceNew ) { 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) ); */ /* 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 ); 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 # ifdef DEBUG
XP_UCHAR buf[32]; XP_UCHAR buf[32];
@ -245,8 +242,7 @@ dvc_getMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, MQTTDevID* devID )
void void
dvc_setMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, const MQTTDevID* devID ) dvc_setMQTTDevID( XW_DUtilCtxt* dutil, XWEnv xwe, const MQTTDevID* devID )
{ {
const XP_UCHAR* keys[] = { MQTT_DEVID_KEY, NULL }; dutil_storePtr( dutil, xwe, MQTT_DEVID_KEY, devID, sizeof(*devID) );
dutil_storePtr( dutil, xwe, keys, devID, sizeof(*devID) );
} }
void void
@ -813,16 +809,10 @@ dvc_onWebSendResult( XW_DUtilCtxt* dutil, XWEnv xwe, XP_U32 resultKey,
tmp = cJSON_GetObjectItem( result, "atNext" ); tmp = cJSON_GetObjectItem( result, "atNext" );
if ( !!tmp ) { if ( !!tmp ) {
XP_U32 atNext = tmp->valueint; XP_U32 atNext = tmp->valueint;
{ dutil_storePtr( dutil, xwe, LAST_REG_KEY, &atNext,
const XP_UCHAR* keys1[] = { LAST_REG_KEY, NULL }; sizeof(atNext) );
dutil_storePtr( dutil, xwe, keys1, &atNext, dutil_storePtr( dutil, xwe, KEY_GITREV, GITREV,
sizeof(atNext) ); XP_STRLEN(GITREV) );
}
{
const XP_UCHAR* keys2[] = { KEY_GITREV, NULL };
dutil_storePtr( dutil, xwe, keys2, GITREV,
XP_STRLEN(GITREV) );
}
} }
tmp = cJSON_GetObjectItem( result, "qos" ); tmp = cJSON_GetObjectItem( result, "qos" );
@ -969,8 +959,7 @@ storePhoniesData( XW_DUtilCtxt* dutil, XWEnv xwe, DevCtxt* dc )
XP_ASSERT( pdc1 == pdc ); XP_ASSERT( pdc1 == pdc );
} }
const XP_UCHAR* keys[] = { KEY_LEGAL_PHONIES, NULL }; dutil_storeStream( dutil, xwe, KEY_LEGAL_PHONIES, stream );
dutil_storeStream( dutil, xwe, keys, stream );
stream_destroy( stream ); stream_destroy( stream );
} }
@ -981,8 +970,7 @@ loadPhoniesData( XW_DUtilCtxt* dutil, XWEnv xwe, DevCtxt* dc )
XP_ASSERT ( !dc->pd ); XP_ASSERT ( !dc->pd );
XWStreamCtxt* stream = mkStream( dutil ); XWStreamCtxt* stream = mkStream( dutil );
const XP_UCHAR* keys[] = { KEY_LEGAL_PHONIES, NULL }; dutil_loadStream( dutil, xwe, KEY_LEGAL_PHONIES, stream );
dutil_loadStream( dutil, xwe, keys, stream );
XP_U8 flags; XP_U8 flags;
if ( stream_gotU8( stream, &flags ) && PD_VERSION_1 == 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 atNext = 0;
XP_U32 len = sizeof(atNext); XP_U32 len = sizeof(atNext);
{ dutil_loadPtr( dutil, xwe, LAST_REG_KEY, &atNext, &len );
const XP_UCHAR* keys1[] = { LAST_REG_KEY, NULL };
dutil_loadPtr( dutil, xwe, keys1, &atNext, &len );
}
XP_UCHAR gitrev[128]; XP_UCHAR gitrev[128];
len = VSIZE(gitrev); len = VSIZE(gitrev);
{ dutil_loadPtr( dutil, xwe, KEY_GITREV, gitrev, &len );
const XP_UCHAR* keys2[] = { KEY_GITREV, NULL };
dutil_loadPtr( dutil, xwe, keys2, gitrev, &len );
}
if ( len >= VSIZE(gitrev) ) { if ( len >= VSIZE(gitrev) ) {
len = VSIZE(gitrev) - 1; len = VSIZE(gitrev) - 1;
} }

View file

@ -30,26 +30,26 @@
#include "xwmutex.h" #include "xwmutex.h"
static void 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 ) XWStreamCtxt* data )
{ {
const void* ptr = stream_getPtr( data ); const void* ptr = stream_getPtr( data );
XP_U16 len = stream_getSize( 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 static void
super_dutil_loadStream( XW_DUtilCtxt* duc, XWEnv xwe, super_dutil_loadStream( XW_DUtilCtxt* duc, XWEnv xwe,
const XP_UCHAR* keys[], XWStreamCtxt* inOut ) const XP_UCHAR* key, XWStreamCtxt* inOut )
{ {
/* get the size */ /* get the size */
XP_U32 len = 0; XP_U32 len = 0;
dutil_loadPtr( duc, xwe, keys, NULL, &len ); dutil_loadPtr( duc, xwe, key, NULL, &len );
/* load if it exists */ /* load if it exists */
if ( 0 < len ) { if ( 0 < len ) {
void* buf = XP_MALLOC( duc->mpool, 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 ); stream_putBytes( inOut, buf, len );
XP_FREEP( duc->mpool, &buf ); XP_FREEP( duc->mpool, &buf );

View file

@ -55,16 +55,16 @@ typedef struct _DUtilVtable {
XP_U16 stringCode, XP_U16 stringCode,
XP_U16 quantity ); XP_U16 quantity );
void (*m_dutil_storeStream)( XW_DUtilCtxt* duc, XWEnv xwe, void (*m_dutil_storeStream)( XW_DUtilCtxt* duc, XWEnv xwe,
const XP_UCHAR* keys[], const XP_UCHAR* key,
XWStreamCtxt* stream ); XWStreamCtxt* stream );
void (*m_dutil_loadStream)( XW_DUtilCtxt* duc, XWEnv xwe, void (*m_dutil_loadStream)( XW_DUtilCtxt* duc, XWEnv xwe,
const XP_UCHAR* keys[], const XP_UCHAR* key,
XWStreamCtxt* inOut ); XWStreamCtxt* inOut );
void (*m_dutil_storePtr)( XW_DUtilCtxt* duc, XWEnv xwe, void (*m_dutil_storePtr)( XW_DUtilCtxt* duc, XWEnv xwe,
const XP_UCHAR* keys[], const XP_UCHAR* key,
const void* data, XP_U32 len); const void* data, XP_U32 len);
void (*m_dutil_loadPtr)( XW_DUtilCtxt* duc, XWEnv xwe, void (*m_dutil_loadPtr)( XW_DUtilCtxt* duc, XWEnv xwe,
const XP_UCHAR* keys[], const XP_UCHAR* key,
void* data, XP_U32* lenp ); void* data, XP_U32* lenp );
# ifdef XWFEATURE_DEVICE # ifdef XWFEATURE_DEVICE
void (*m_dutil_forEach)( XW_DUtilCtxt* duc, XWEnv xwe, void (*m_dutil_forEach)( XW_DUtilCtxt* duc, XWEnv xwe,

View file

@ -69,8 +69,7 @@ loadStateLocked( XW_DUtilCtxt* dutil, XWEnv xwe )
dutil->kpCtxt = state = XP_CALLOC( dutil->mpool, sizeof(*state) ); dutil->kpCtxt = state = XP_CALLOC( dutil->mpool, sizeof(*state) );
XWStreamCtxt* stream = mem_stream_make_raw( MPPARM(dutil->mpool) XWStreamCtxt* stream = mem_stream_make_raw( MPPARM(dutil->mpool)
dutil_getVTManager(dutil) ); dutil_getVTManager(dutil) );
const XP_UCHAR* keys[] = { KNOWN_PLAYERS_KEY, NULL }; dutil_loadStream( dutil, xwe, KNOWN_PLAYERS_KEY, stream );
dutil_loadStream( dutil, xwe, keys, stream );
if ( 0 < stream_getSize( stream ) ) { if ( 0 < stream_getSize( stream ) ) {
XP_U8 vers = stream_getU8( stream ); XP_U8 vers = stream_getU8( stream );
stream_setVersion( stream, vers ); stream_setVersion( stream, vers );
@ -106,8 +105,7 @@ saveState( XW_DUtilCtxt* dutil, XWEnv xwe, KPState* state )
dll_map( &state->players->links, saveProc, NULL, stream ); dll_map( &state->players->links, saveProc, NULL, stream );
const XP_UCHAR* keys[] = { KNOWN_PLAYERS_KEY, NULL }; dutil_storeStream( dutil, xwe, KNOWN_PLAYERS_KEY, stream );
dutil_storeStream( dutil, xwe, keys, stream );
stream_destroy( stream ); stream_destroy( stream );
state->dirty = XP_FALSE; state->dirty = XP_FALSE;
} }

View file

@ -126,8 +126,7 @@ smsproto_init( MPFORMAL XWEnv xwe, XW_DUtilCtxt* dutil )
MPASSIGN( state->mpool, mpool ); MPASSIGN( state->mpool, mpool );
XP_U32 siz = sizeof(state->nNextID); XP_U32 siz = sizeof(state->nNextID);
const XP_UCHAR* keys[] = { KEY_NEXTID, NULL, }; dutil_loadPtr( state->dutil, xwe, KEY_NEXTID, &state->nNextID, &siz );
dutil_loadPtr( state->dutil, xwe, keys, &state->nNextID, &siz );
XP_LOGF( "%s(): loaded nextMsgID: %d", __func__, state->nNextID ); XP_LOGF( "%s(): loaded nextMsgID: %d", __func__, state->nNextID );
restorePartials( state, xwe ); restorePartials( state, xwe );
@ -706,8 +705,7 @@ savePartials( SMSProto* state, XWEnv xwe )
if ( state->lastStoredSize == 2 && newSize == 2 ) { if ( state->lastStoredSize == 2 && newSize == 2 ) {
XP_LOGFF( "not storing empty again" ); XP_LOGFF( "not storing empty again" );
} else { } else {
const XP_UCHAR* keys[] = { KEY_PARTIALS, NULL, }; dutil_storeStream( state->dutil, xwe, KEY_PARTIALS, stream );
dutil_storeStream( state->dutil, xwe, keys, stream );
state->lastStoredSize = newSize; state->lastStoredSize = newSize;
} }
@ -721,8 +719,7 @@ restorePartials( SMSProto* state, XWEnv xwe )
{ {
XWStreamCtxt* stream = mkStream( state ); XWStreamCtxt* stream = mkStream( state );
const XP_UCHAR* keys[] = { KEY_PARTIALS, NULL, }; dutil_loadStream( state->dutil, xwe, KEY_PARTIALS, stream );
dutil_loadStream( state->dutil, xwe, keys, stream );
if ( stream_getSize( stream ) >= 1 if ( stream_getSize( stream ) >= 1
&& PARTIALS_FORMAT == stream_getU8( stream ) ) { && PARTIALS_FORMAT == stream_getU8( stream ) ) {
int nFromPhones = stream_getU8( stream ); int nFromPhones = stream_getU8( stream );
@ -883,8 +880,7 @@ static int
nextMsgID( SMSProto* state, XWEnv xwe ) nextMsgID( SMSProto* state, XWEnv xwe )
{ {
int result = ++state->nNextID % 0x000000FF; int result = ++state->nNextID % 0x000000FF;
const XP_UCHAR* keys[] = { KEY_NEXTID, NULL, }; dutil_storePtr( state->dutil, xwe, KEY_NEXTID, &state->nNextID,
dutil_storePtr( state->dutil, xwe, keys, &state->nNextID,
sizeof(state->nNextID) ); sizeof(state->nNextID) );
LOG_RETURNF( "%d", result ); LOG_RETURNF( "%d", result );
return result; return result;

View file

@ -171,8 +171,7 @@ storeCountsLocked( XW_DUtilCtxt* dutil, XWEnv xwe )
} }
} }
const XP_UCHAR* keys[] = { STATS_KEY, NULL }; dutil_storeStream( dutil, xwe, STATS_KEY, stream );
dutil_storeStream( dutil, xwe, keys, stream );
stream_destroy( stream ); stream_destroy( stream );
} }
@ -186,8 +185,7 @@ loadCountsLocked( XW_DUtilCtxt* dutil, XWEnv xwe )
ss->statsVals = statsVals; ss->statsVals = statsVals;
XWStreamCtxt* stream = mkStream( dutil ); XWStreamCtxt* stream = mkStream( dutil );
const XP_UCHAR* keys[] = { STATS_KEY, NULL }; dutil_loadStream( dutil, xwe, STATS_KEY, stream );
dutil_loadStream( dutil, xwe, keys, stream );
XP_U8 version; XP_U8 version;
if ( stream_gotU8( stream, &version ) ) { if ( stream_gotU8( stream, &version ) ) {

View file

@ -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, static const XP_UCHAR* linux_dutil_getUserQuantityString( XW_DUtilCtxt* duc, XWEnv xwe, XP_U16 code,
XP_U16 quantity ); 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 ); 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 ); void* data, XP_U32* lenp );
static void linux_dutil_forEach( XW_DUtilCtxt* duc, XWEnv xwe, static void linux_dutil_forEach( XW_DUtilCtxt* duc, XWEnv xwe,
const XP_UCHAR* keys[], const XP_UCHAR* keys[],
@ -580,36 +580,34 @@ linux_dutil_getUserQuantityString( XW_DUtilCtxt* duc, XWEnv xwe, XP_U16 code,
static void static void
linux_dutil_storePtr( XW_DUtilCtxt* duc, XWEnv XP_UNUSED(xwe), 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 ) const void* data, const XP_U32 len )
{ {
XP_ASSERT( keys[1] == NULL );
LaunchParams* params = (LaunchParams*)duc->closure; LaunchParams* params = (LaunchParams*)duc->closure;
sqlite3* pDb = params->pDb; sqlite3* pDb = params->pDb;
gchar* b64 = g_base64_encode( data, len); gchar* b64 = g_base64_encode( data, len);
gdb_store( pDb, keys[0], b64 ); gdb_store( pDb, key, b64 );
g_free( b64 ); g_free( b64 );
} }
static void static void
linux_dutil_loadPtr( XW_DUtilCtxt* duc, XWEnv XP_UNUSED(xwe), linux_dutil_loadPtr( XW_DUtilCtxt* duc, XWEnv XP_UNUSED(xwe),
const XP_UCHAR* keys[], const XP_UCHAR* key,
void* data, XP_U32* lenp ) void* data, XP_U32* lenp )
{ {
XP_ASSERT( NULL == keys[1] );
LaunchParams* params = (LaunchParams*)duc->closure; LaunchParams* params = (LaunchParams*)duc->closure;
sqlite3* pDb = params->pDb; sqlite3* pDb = params->pDb;
gint buflen = 0; 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 ( res == BUFFER_TOO_SMALL ) { /* expected: I passed 0 */
if ( 0 == *lenp ) { if ( 0 == *lenp ) {
*lenp = buflen; *lenp = buflen;
} else { } else {
gchar* tmp = XP_MALLOC( duc->mpool, buflen ); gchar* tmp = XP_MALLOC( duc->mpool, buflen );
gint tmpLen = 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( buflen == tmpLen );
XP_ASSERT( res == SUCCESS ); XP_ASSERT( res == SUCCESS );
XP_ASSERT( tmp[buflen-1] == '\0' ); 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 */ *lenp = 0; /* doesn't exist */
} }
XP_LOGFF( "(key=%s) => len: %d", keys[0], *lenp ); XP_LOGFF( "(key=%s) => len: %d", key, *lenp );
} }
static void static void