Files
clang-p2996/lldb/scripts/interface/SBStringList.i
Pavel Labath 4da5a1dbab modify-python-lldb.py: clean up __iter__ and __len__ support
Summary:
Instead of modifying the swig-generated code, just add the appropriate
methods to the interface files in order to get the swig to do the
generation for us.

This is a straight-forward move from the python script to the interface
files. The single class which has nontrivial handling in the script
(SBModule) has been left for a separate patch.

For the cases where I did not find any tests exercising the
iteration/length methods (i.e., no tests failed after I stopped emitting
them), I tried to add basic tests for that functionality.

Reviewers: zturner, jingham, amccarth

Subscribers: jdoerfert, lldb-commits

Differential Revision: https://reviews.llvm.org/D60119

llvm-svn: 357572
2019-04-03 11:48:38 +00:00

56 lines
1.2 KiB
C++

//===-- SWIG Interface for SBStringList -------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
namespace lldb {
class SBStringList
{
public:
SBStringList ();
SBStringList (const lldb::SBStringList &rhs);
~SBStringList ();
bool
IsValid() const;
explicit operator bool() const;
void
AppendString (const char *str);
void
AppendList (const char **strv, int strc);
void
AppendList (const lldb::SBStringList &strings);
uint32_t
GetSize () const;
const char *
GetStringAtIndex (size_t idx);
void
Clear ();
%pythoncode%{
def __iter__(self):
'''Iterate over all strings in a lldb.SBStringList object.'''
return lldb_iter(self, 'GetSize', 'GetStringAtIndex')
def __len__(self):
'''Return the number of strings in a lldb.SBStringList object.'''
return self.GetSize()
%}
};
} // namespace lldb