Skip to content

Commit

Permalink
Merge pull request #18547 from shamser/issue31630
Browse files Browse the repository at this point in the history
HPCC-31630 StatsScopeId::setScopeText not working for SSToperation scope type

Reviewed-by: Gavin Halliday <[email protected]>
Merged-by: Gavin Halliday <[email protected]>
  • Loading branch information
ghalliday authored Apr 18, 2024
2 parents 85b3b2b + ad1f7bc commit b2854f2
Showing 1 changed file with 25 additions and 30 deletions.
55 changes: 25 additions & 30 deletions system/jlib/jstats.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1633,6 +1633,26 @@ void StatsScopeId::setId(StatisticScopeType _scopeType, unsigned _id, unsigned _

bool StatsScopeId::setScopeText(const char * text, const char * * _next)
{
auto setScope = [&](StatisticScopeType _scopeType, const char *text, const char * *next)
{
if (!*text)
return false;
scopeType = _scopeType;
const char * endScopeNamePtr = strchr(text, ':');
if (endScopeNamePtr)
{
name.set(text, endScopeNamePtr-text);
if (next)
* next = endScopeNamePtr;
}
else
{
name.set(text);
if (next)
*next = text + strlen(text);
}
return true;
};
char * * next = (char * *)_next;
switch (*text)
{
Expand Down Expand Up @@ -1683,21 +1703,11 @@ bool StatsScopeId::setScopeText(const char * text, const char * * _next)
break;
case FunctionScopePrefix[0]:
if (MATCHES_CONST_PREFIX(text, FunctionScopePrefix))
{
setFunctionId(text+ strlen(FunctionScopePrefix));
if (_next)
*_next = text + strlen(text);
return true;
}
return setScope(SSTfunction, text+strlen(FunctionScopePrefix), _next);
break;
case FileScopePrefix[0]:
if (MATCHES_CONST_PREFIX(text, FileScopePrefix))
{
setFileId(text+strlen(FileScopePrefix));
if (_next)
*_next = text + strlen(text);
return true;
}
return setScope(SSTfile, text+strlen(FileScopePrefix), _next);
break;
case WorkflowScopePrefix[0]:
if (MATCHES_CONST_PREFIX(text, WorkflowScopePrefix) && isdigit(text[strlen(WorkflowScopePrefix)]))
Expand Down Expand Up @@ -1727,30 +1737,15 @@ bool StatsScopeId::setScopeText(const char * text, const char * * _next)
break;
case DFUWorkunitScopePrefix[0]:
if (MATCHES_CONST_PREFIX(text, DFUWorkunitScopePrefix))
{
setDfuWorkunitId(text+ strlen(DFUWorkunitScopePrefix));
if (_next)
*_next = text + strlen(text);
return true;
}
return setScope(SSTdfuworkunit, text+strlen(DFUWorkunitScopePrefix), _next);
break;
case SectionScopePrefix[0]:
if (MATCHES_CONST_PREFIX(text, SectionScopePrefix))
{
setSectionId(text+strlen(SectionScopePrefix));
if (_next)
*_next = text + strlen(text);
return true;
}
return setScope(SSTsection, text+strlen(SectionScopePrefix), _next);
break;
case OperationScopePrefix[0]:
if (MATCHES_CONST_PREFIX(text, OperationScopePrefix))
{
setOperationId(text+strlen(OperationScopePrefix));
if (_next)
*_next = text + strlen(text);
return true;
}
return setScope(SSToperation, text+strlen(OperationScopePrefix), _next);
break;
case '\0':
setId(SSTglobal, 0);
Expand Down

0 comments on commit b2854f2

Please sign in to comment.