diff options
Diffstat (limited to 'lldb/scripts/macros.swig')
-rw-r--r-- | lldb/scripts/macros.swig | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lldb/scripts/macros.swig b/lldb/scripts/macros.swig new file mode 100644 index 00000000000..e0756c2f179 --- /dev/null +++ b/lldb/scripts/macros.swig @@ -0,0 +1,33 @@ +%define STRING_EXTENSION_LEVEL(Class, Level) +%extend { + %nothreadallow; + std::string lldb:: ## Class ## ::__str__(){ + lldb::SBStream stream; + $self->GetDescription (stream, Level); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == 'n' || desc[desc_len-1] == 'r')) { + --desc_len; + } + return std::string(desc, desc_len); + } + %clearnothreadallow; +} +%enddef + +%define STRING_EXTENSION(Class) +%extend { + %nothreadallow; + std::string lldb:: ## Class ## ::__str__(){ + lldb::SBStream stream; + $self->GetDescription (stream); + const char *desc = stream.GetData(); + size_t desc_len = stream.GetSize(); + if (desc_len > 0 && (desc[desc_len-1] == 'n' || desc[desc_len-1] == 'r')) { + --desc_len; + } + return std::string(desc, desc_len); + } + %clearnothreadallow; +} +%enddef |