Bug in CommandObjectFrameVariable::DoExecute()

On line 708 of CommandObjectFrame.cpp, I’m looking at this code:

options.SetRootValueObjectName(name_cstr);

This code occurs inside the else block of an if/else. name_cstr is declared prior to the if/else block and initialized to nullptr, but is only ever set to something other than nullptr in the if branch.

So, this code is equivalent to

options.SetRootValueObjectName(nullptr);

Is this intended, and if not how would this bug manifest itself in terms of incorrect behavior?

On line 708 of CommandObjectFrame.cpp, I’m looking at this code:

options.SetRootValueObjectName(name_cstr);

This code occurs inside the else block of an if/else. name_cstr is declared prior to the if/else block and initialized to nullptr, but is only ever set to something other than nullptr in the if branch.

So, this code is equivalent to

options.SetRootValueObjectName(nullptr);

Is this intended,

Probably not

and if not how would this bug manifest itself in terms of incorrect behavior?

That I am not sure about… I tried a couple obvious things, but I couldn’t make them fail. It’s possible that some arcane combination of options would do it. OTOH, my hunch is that we could simply fix the bug. Trying a patch of the form

Index: source/Commands/CommandObjectFrame.cpp