[Lldb-commits] [PATCH] D47992: [lldb-mi] Clean up and update a few MI commands.
Greg Clayton via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Jun 21 11:44:57 PDT 2018
clayborg added a comment.
In https://reviews.llvm.org/D47992#1139691, @apolyakov wrote:
> I didn't committed patch https://reviews.llvm.org/D48295 yet, so I think if we change `HandleSBError` handlers from
> `std::function<bool/void()>` to `std::function<bool/boid(CMICmdBase *)>` we'll be able to create anonymous namespace and declare there a function that takes a pointer to current command class(`this` pointer) instead if defining
>
> auto successHandler = [this] {
> // CODETAG_DEBUG_SESSION_RUNNING_PROG_RECEIVED_SIGINT_PAUSE_PROGRAM
> if (!CMIDriver::Instance().SetDriverStateRunningDebugging()) {
> const CMIUtilString &rErrMsg(CMIDriver::Instance().GetErrorDescription());
> this->SetError(CMIUtilString::Format(
> MIRSRC(IDS_CMD_ERR_SET_NEW_DRIVER_STATE),
> this->m_cmdData.strMiCmd.c_str(),
> rErrMsg.c_str()));
> return MIstatus::failure;
> }
> return MIstatus::success;
>
>
> 3 times in one file. It will reduce duplicating of code but I still think, is it worth it?
Maybe add a command class that the 3 commands can inherit from and add a this code as a method that the other 3 commands can call? If this is specific to execution, it might consolidate the code nicely?
https://reviews.llvm.org/D47992
More information about the lldb-commits
mailing list