diff options
Diffstat (limited to 'tools/lldb-mi/MICmdArgValListOfN.h')
| -rw-r--r-- | tools/lldb-mi/MICmdArgValListOfN.h | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/tools/lldb-mi/MICmdArgValListOfN.h b/tools/lldb-mi/MICmdArgValListOfN.h index 48ee77f79e72b..356b494c0898e 100644 --- a/tools/lldb-mi/MICmdArgValListOfN.h +++ b/tools/lldb-mi/MICmdArgValListOfN.h @@ -7,18 +7,6 @@ // //===----------------------------------------------------------------------===// -//++ -// File: MICmdArgValListOfN.h -// -// Overview: CMICmdArgValListOfN interface. -// -// Environment: Compilers: Visual C++ 12. -// gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1 -// Libraries: See MIReadmetxt. -// -// Copyright: None. -//-- - #pragma once // Third party headers: @@ -56,7 +44,7 @@ class CMICmdArgValListOfN : public CMICmdArgValListBase const ArgValType_e veType); // const VecArgObjPtr_t &GetExpectedOptions(void) const; - template <class T1, typename T2> bool GetExpectedOption(T2 &vrwValue) const; + template <class T1, typename T2> bool GetExpectedOption(T2 &vrwValue, const VecArgObjPtr_t::size_type vnAt = 0) const; // Overridden: public: @@ -76,6 +64,7 @@ class CMICmdArgValListOfN : public CMICmdArgValListBase // parsed from the command's options string. // Type: Template method. // Args: vrwValue - (W) Templated type return value. +// vnAt - (R) Value at the specific position. // T1 - The argument value's class type of the data hold in the list of options. // T2 - The type pf the variable which holds the value wanted. // Return: MIstatus::success - Functional succeeded. @@ -84,10 +73,13 @@ class CMICmdArgValListOfN : public CMICmdArgValListBase //-- template <class T1, typename T2> bool -CMICmdArgValListOfN::GetExpectedOption(T2 &vrwValue) const +CMICmdArgValListOfN::GetExpectedOption(T2 &vrwValue, const VecArgObjPtr_t::size_type vnAt) const { const VecArgObjPtr_t &rVecOptions(GetExpectedOptions()); - VecArgObjPtr_t::const_iterator it2 = rVecOptions.begin(); + if (rVecOptions.size() <= vnAt) + return MIstatus::failure; + + VecArgObjPtr_t::const_iterator it2 = rVecOptions.begin() + vnAt; if (it2 != rVecOptions.end()) { const T1 *pOption = static_cast<T1 *>(*it2); |
