From ec1ae74844ad36edb6a6c9c3417dba40bb8aa352 Mon Sep 17 00:00:00 2001 From: BogdanTheGeek Date: Fri, 15 Dec 2023 15:20:08 +0000 Subject: [PATCH] jobs: use compile time length helper --- source/jobs.c | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/source/jobs.c b/source/jobs.c index 36f3157f..fbe2ccc2 100644 --- a/source/jobs.c +++ b/source/jobs.c @@ -38,6 +38,13 @@ /** @cond DO_NOT_DOCUMENT */ +/** + * @brief Get the length of a string literal. + */ +#ifdef CONST_STRLEN +#undef CONST_STRLEN +#endif +#define CONST_STRLEN( x ) ( sizeof( ( x ) ) - 1U ) /** * @brief Table of topic API strings in JobsTopic_t order. @@ -282,7 +289,7 @@ JobsStatus_t Jobs_GetTopic( char * buffer, if( api >= JobsDescribeSuccess ) { ( void ) strnAppend( buffer, &start, length, - "+/", ( sizeof( "+/" ) - 1U ) ); + "+/", ( CONST_STRLEN( "+/" ) ) ); } ret = strnAppend( buffer, &start, length, @@ -717,7 +724,7 @@ size_t Jobs_StartNextMsg( const char * clientToken, { ( void ) strnAppend( buffer, &start, bufferSize, JOBS_API_CLIENTTOKEN, JOBS_API_CLIENTTOKEN_LENGTH ); ( void ) strnAppend( buffer, &start, bufferSize, clientToken, clientTokenLength ); - ( void ) strnAppend( buffer, &start, bufferSize, "\"}", sizeof( "\"}" ) - 1U ); + ( void ) strnAppend( buffer, &start, bufferSize, "\"}", ( CONST_STRLEN( "\"}" ) ) ); } return start; @@ -748,7 +755,7 @@ JobsStatus_t Jobs_Describe( char * buffer, ( void ) strnAppend( buffer, &start, length, jobId, jobIdLength ); ( void ) strnAppend( buffer, &start, length, - "/", ( sizeof( "/" ) - 1U ) ); + "/", ( CONST_STRLEN( "/" ) ) ); ret = strnAppend( buffer, &start, length, JOBS_API_DESCRIBE, JOBS_API_DESCRIBE_LENGTH ); @@ -788,7 +795,7 @@ JobsStatus_t Jobs_Update( char * buffer, ( void ) strnAppend( buffer, &start, length, jobId, jobIdLength ); ( void ) strnAppend( buffer, &start, length, - "/", ( sizeof( "/" ) - 1U ) ); + "/", ( CONST_STRLEN( "/" ) ) ); ret = strnAppend( buffer, &start, length, JOBS_API_UPDATE, JOBS_API_UPDATE_LENGTH ); @@ -821,11 +828,11 @@ size_t Jobs_UpdateMsg( JobCurrentStatus_t status, static const size_t jobStatusStringLengths[ 5U ] = { - sizeof( "QUEUED" ) - 1U, - sizeof( "IN_PROGRESS" ) - 1U, - sizeof( "FAILED" ) - 1U, - sizeof( "SUCCEEDED" ) - 1U, - sizeof( "REJECTED" ) - 1U + CONST_STRLEN( "QUEUED" ), + CONST_STRLEN( "IN_PROGRESS" ), + CONST_STRLEN( "FAILED" ), + CONST_STRLEN( "SUCCEEDED" ), + CONST_STRLEN( "REJECTED" ) }; size_t start = 0U; @@ -838,7 +845,7 @@ size_t Jobs_UpdateMsg( JobCurrentStatus_t status, ( void ) strnAppend( buffer, &start, bufferSize, jobStatusString[ status ], jobStatusStringLengths[ status ] ); ( void ) strnAppend( buffer, &start, bufferSize, JOBS_API_EXPECTED_VERSION, JOBS_API_EXPECTED_VERSION_LENGTH ); ( void ) strnAppend( buffer, &start, bufferSize, expectedVersion, expectedVersionLength ); - ( void ) strnAppend( buffer, &start, bufferSize, "\"}", sizeof( "\"}" ) - 1U ); + ( void ) strnAppend( buffer, &start, bufferSize, "\"}", ( CONST_STRLEN( "\"}" ) ) ); } return start; @@ -868,17 +875,17 @@ bool Jobs_IsJobUpdateStatus( const char * topic, static const size_t jobUpdateStatusStringLengths[ 2U ] = { - sizeof( "accepted" ) - 1U, - sizeof( "rejected" ) - 1U + CONST_STRLEN( "accepted" ), + CONST_STRLEN( "rejected" ) }; /* Max suffix size = max topic size - "$aws/" prefix */ - size_t suffixBufferLength = ( TOPIC_BUFFER_SIZE - sizeof( "$aws/" ) - 1U ); - char suffixBuffer[ TOPIC_BUFFER_SIZE - sizeof( "$aws/" ) - 1U ] = { '\0' }; + size_t suffixBufferLength = ( TOPIC_BUFFER_SIZE - CONST_STRLEN( "$aws/" ) ); + char suffixBuffer[ TOPIC_BUFFER_SIZE - CONST_STRLEN( "$aws/" ) ] = { '\0' }; size_t start = 0U; ( void ) strnAppend( suffixBuffer, &start, suffixBufferLength, jobId, jobIdLength ); - ( void ) strnAppend( suffixBuffer, &start, suffixBufferLength, "/update/", sizeof( "/update/" ) - 1U ); + ( void ) strnAppend( suffixBuffer, &start, suffixBufferLength, "/update/", ( CONST_STRLEN( "/update/" ) ) ); ( void ) strnAppend( suffixBuffer, &start, suffixBufferLength, jobUpdateStatusString[ expectedStatus ], jobUpdateStatusStringLengths[ expectedStatus ] ); return isThingnameTopicMatch( topic, topicLength, suffixBuffer, strnlen( suffixBuffer, suffixBufferLength ), thingName, thingNameLength ); @@ -898,7 +905,7 @@ size_t Jobs_GetJobId( const char * message, jsonResult = JSON_SearchConst( message, messageLength, "execution.jobId", - sizeof( "execution.jobId" ) - 1U, + CONST_STRLEN( "execution.jobId" ), jobId, &jobIdLength, NULL ); @@ -921,7 +928,7 @@ size_t Jobs_GetJobDocument( const char * message, jsonResult = JSON_SearchConst( message, messageLength, "execution.jobDocument", - sizeof( "execution.jobDocument" ) - 1U, + CONST_STRLEN( "execution.jobDocument" ), jobDoc, &jobDocLength, NULL );