aboutsummaryrefslogtreecommitdiff
path: root/source/DataFormatters/TypeSynthetic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/DataFormatters/TypeSynthetic.cpp')
-rw-r--r--source/DataFormatters/TypeSynthetic.cpp24
1 files changed, 15 insertions, 9 deletions
diff --git a/source/DataFormatters/TypeSynthetic.cpp b/source/DataFormatters/TypeSynthetic.cpp
index 13c1c7508b68..b150b2bb6ee3 100644
--- a/source/DataFormatters/TypeSynthetic.cpp
+++ b/source/DataFormatters/TypeSynthetic.cpp
@@ -68,18 +68,24 @@ size_t
TypeFilterImpl::FrontEnd::GetIndexOfChildWithName (const ConstString &name)
{
const char* name_cstr = name.GetCString();
- for (size_t i = 0; i < filter->GetCount(); i++)
+ if (name_cstr)
{
- const char* expr_cstr = filter->GetExpressionPathAtIndex(i);
- if (expr_cstr)
+ for (size_t i = 0; i < filter->GetCount(); i++)
{
- if (*expr_cstr == '.')
- expr_cstr++;
- else if (*expr_cstr == '-' && *(expr_cstr+1) == '>')
- expr_cstr += 2;
+ const char* expr_cstr = filter->GetExpressionPathAtIndex(i);
+ if (expr_cstr)
+ {
+ if (*expr_cstr == '.')
+ expr_cstr++;
+ else if (*expr_cstr == '-' && *(expr_cstr+1) == '>')
+ expr_cstr += 2;
+ }
+ if (expr_cstr)
+ {
+ if (!::strcmp(name_cstr, expr_cstr))
+ return i;
+ }
}
- if (!::strcmp(name_cstr, expr_cstr))
- return i;
}
return UINT32_MAX;
}